• 201771010107-冯志霞 实验二 个人项目-《西北师范大学学生疫情上报系统》项目报告


    项目 内容
    课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
    本次作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12416880.html
    我的课程学习目标 学会采用PSP方式学习软件工程
    这个作业在哪些方面帮助我们实现学习目标 了解软件开发的一般流程,学会用PSP的方式开发软件,掌握基础技术的应用
    项目Github的仓库地址 https://github.com/fengzhixia17393162576/softwareE

    1.实验目的与要求

    (1)掌握软件项目个人开发流程
    (2)掌握Github发布软件项目的操作方法

    2.实验内容和步骤

    任务一:陈述学生每日上报子系统使用体验;

    经过较长时间体验学生疫情上报系统,得到的体验感如下:

    • 系统在后期改善之后可以保存学生之前填过的信息,方便用户填写
    • 系统没有提醒打卡的功能,也没有补卡的功能。
    • 系统设计的很简单,对于一般性调查我觉得都还不错

    任务二:总结详细阅读《构建之法》第1-2章,结合第二章2.3节所描述的PSP流程,开发一款你自己心目中的西北师范大学学生疫情上报系统。
    我选择第二类开发要求:
    1.系统可采集学生疫情有效信息
    2.系统支持用户在线使用
    3.每日可填写一次,提交后无法修改,每日疫情信息在10点截至
    4.学院指定负责人登陆系统,可查看本院学生填报的汇总数据,可点击查看学生联系方式。班主任联系方式,学院负责人何时本院所有学生数据后,将数据提交给学校方防控办
    5.学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件
    r任务三:完成个人项目报告作业

    需求分析

    1.疫情期间学生不能及时到达学校,为了了解学生实时的安全状况,学校打算开发一个在线学生疫情统计的系统,针对这个项目进行开发。
    2、需要编写学生提交的表单,提交完数据需要转向的页面,负责人登录的表单,负责人可以查看学生提交信息统计的数据等等。

    功能设计

    • 采集学生每天的疫情信息,每人每天只能上交一次,并且无法修改
    • 指定负责人(管理员)可查看所有学生填报信息
    • 管理员进入后台,可将学生疫情导出到EXCEL
    • 管理员可对学生疫情表进行增删改查
    • 提交页面能够合理的验证,例如输入不在指定范围内的字符,填写不完整等页面将会提示无法上交

    实现过程

    1.采用eclipse IDE,sql server2014等开发工具,使用jsp,servlet,javabean等技术,采用MVC开发模式进行的
    2.主要的类包括:
    (1)com.interface 该类实现在数据库中增删改查数据
    (2)com.web该类实现客户端的数据提交到数据库;
    (3)com.model该类实现每个字段名的实例化;
    (4)com.Util该类实现对数据库的连接操作
    3.主要的JSP页面
    (1)index.jsp:实现学生提交信息数据的页面
    (2)main.jsp:实现再次预览,确定提交的页面
    (3)Excel.jsp:实现将数据库中的数据导出到excel的页面
    (4)adminLogin.jsp:实现负责人登录的也页面
    4.功能展示
    开发需要的类

    学生提交信息的页面

    提交完信息要预览确定的页面

    数据从前端提交到数据库的页面

    负责人登录查看统计结果的页面

    将数据库中的数据导出到excel的页面

    5.代码展示

    这里粘贴的是利用servlet从表单获取数据并且将提交数据到SQLserver的部分

    package com.web;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.Interface.LiteratureInterface;
    import com.Util.DbUtil;
    import com.model.Literature;
    
    public class PublishServlet extends HttpServlet {
        DbUtil db=new DbUtil();
    
        private static final long serialVersionUID = 1L;
    
        public PublishServlet() {
            super();
        }
    
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
        }
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
        }
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");  
            response.setContentType("text/html;charset=UTF-8");
    
            String Institute=request.getParameter("Institute");
            String Banji=request.getParameter("Banji");
            String Writer=request.getParameter("Writer");
            String Telephone=request.getParameter("Telephone");
            String Province=request.getParameter("Province");
            String City=request.getParameter("City");
            String Abroad=request.getParameter("Abroad");
            String Hubeiji=request.getParameter("Hubeiji");
            String Wuhanyiqu=request.getParameter("Wuhanyiqu");
            String Hubeiyiqu=request.getParameter("Hubeiyiqu");
            String Atwuhan=request.getParameter("Atwuhan");
            String Athubei=request.getParameter("Athubei");
            String Fanxiao=request.getParameter("Fanxiao");
            String Symptom=request.getParameter("Symptom");
            String Infect=request.getParameter("Infect");
            String Qita=request.getParameter("Qita");
            Literature literature=new Literature();
            literature.setInstitute(Institute);
            literature.setBanji(Banji);
            literature.setWriter(Writer);
            literature.setTelephone(Telephone);
            literature.setProvince(Province);
            literature.setCity(City);
            literature.setAbroad(Abroad);
            literature.setHubeiji(Hubeiji);
            literature.setWuhanyiqu(Wuhanyiqu);
            literature.setHubeiyiqu(Hubeiyiqu);
            literature.setAtwuhan(Atwuhan);
            literature.setAthubei(Athubei);
            literature.setFanxiao(Fanxiao);
            literature.setSymptom(Symptom);
            literature.setInfect(Infect);
            literature.setQita(Qita);
    
            LiteratureInterface literatureInter=new LiteratureInterface();
            literatureInter.addLiterature(literature);
    
            request.getRequestDispatcher("test.jsp").forward(request, response);
        }
    }
    
    

    6.展示PSP

    PSP任务内容计划共完成需要的时间(min)实际完成需要的时间(min)
    Planning计划3030
    Estimate估计这个任务需要多少时间,并规划大致工作时间10001500
    Development开发10002000
    Analysis需求分析(包括学习新技术)5001000
    Design Spec生成设计文档3030
    Design Review设计复审(和同事审核设计文档)3030
    Coding Standard代码规范10080
    Design具体设计100150
    Coding具体编码500800
    Code Review代码复审3030
    Test测试(自我测试,修改代码,提交修改)500300
    Reporting报告10080
    Test Reporting测试报告3030
    Size Measurement计算工作量3080
    Postmortern & Process Improvement Plan事后总结,并提出过程改进计划20003000
    任务三:完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中

    7.总结思考

    本次实验其实不难,但是对我来说我是基础知识没掌握牢固,再加上平时不做项目,不进行开发,所以所有的知识点都显得特别生涩,功能想得出来,可是没办法实现,不知道该从何查起,但是这几天的学习加起来,收获还是有的。开发项目的时候采用《构建之法》里面的PSP流程,主要帮助我的时间管理方面,后续会一直采用这个方式进行学习。

  • 相关阅读:
    VS2005在使用membership的时候,如何连接Access数据库?
    今天想开始写计划的项目,可是就是静不下心来,乱糟糟的!
    今天想开始写计划的项目,可是就是静不下心来,乱糟糟的!
    有钱真好
    网页左边和上面的空隙如何设置成为0
    vim 配色方案(目测有上百个)
    Git 远程仓库的管理和使用
    vim 使用图
    Python 编程挑战
    python 网络爬虫
  • 原文地址:https://www.cnblogs.com/fzx201626/p/12504919.html
Copyright © 2020-2023  润新知