• 201271050130-滕江南 实验二 个人项目—《西北师范大学学生疫情上报系统》项目报告


    项 目 内 容
    课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
    这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12416880.html
    我的课程学习目标 (1)掌握软件项目个人开发流程(2)掌握Github发布软件项目的操作方法。
    这个作业在哪些方面帮助我实现学习目标 (1)提高了独立完成作业的能力(2)学会了Github基本操作(3)学会了数据库的基本操作(4)提升了JAVA编程能力
    项目Github的仓库链接地址 https://github.com/jiangnanteng0413/Epidemic-monitoring-tjn

    任务1:陈述学生疫情每日上报子系统使用体验
      疫情每日上报系统的主要是为了记录学校教职工、学生每日的身体状况和行为动态,方便学校收集大数据掌握情况,为学校开学学生返校提供了科学依据。这个系统在使用之初,存在几个问题:1.集中时间段大量用户进入,造成系统奔溃,无法载入的问题,目前这个情况已得到了改善。2.上报的内容每天都要重复填写,比较繁琐,目前这个情况已得到改善,系统保存前一天上报的内容,在此情况下修改即可。本人的建议:1.设置闹钟提醒,在规定时间的前10分钟提醒,可开设闹铃或者推送消息,提醒用户完成情况上报。2.界面优化,填写内容简洁明了,完成填写后可显示内容,确认无误后提交。由于疫情突然,在短时间内完成这个系统,开发人员都十分辛苦。在第一时间完成,并能保障全校范围内的正常使用,觉得非常不容易,为背后的开发人员的辛勤劳动、无私付出点赞!希望我们能早日攻克难关,相聚在美丽的“西施”校园。

    任务2:我选择第一类开发任务:有一个数据文件,保存了100天 2000 个员工的所有防疫的信息,请设计一个命令行的程序,支持查询某员工在某一天的疫情情况,查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果。
           
    1.需求分析(5分)

      2019 年 12 月,武汉发生新型冠状病毒(2019-nCoV)疫情,为阻止疫情进一步蔓延,中国政府于2020 年 1 月 23 日对武汉采取了隔离措施,包括北京、上海等 31个省市也相继实施了严格的防控措施。
                                        ----引用自《中国抗击新型冠状病毒:进展和影响》
      当前,疫情防控工作到了最吃劲的关键阶段。为准确高 效采集和统计全校师生员工新冠肺炎疫情防控相关信息,进一步夯实疫情防控工作基础,坚决打赢校园疫情防控阻击战,学校组织力量开发了师生健康打卡系统。
                                        ----引用自《关于试运行西北师范大学师生健康打卡系统的通知》

      学校教职工、学生分布范围较广,使得采集的疫情数据复杂,难度较大。通过系统构建的上报平台,将数据整合,然后进行统计分析,为进一步掌握学校疫情情况提供科学依据。数据是平台的血液,动态的数据现时更新才能体现平台的生命力。用户通过系统客户端界面填写相关信息,与此同时后台数据库同步更新,并将其存储起来,进行统计分析。后台通过数据整合,可进行筛选排查,生成相应图表,优化疫情数据的可视性。

    2.功能设计
      基本功能:
        (1)采集学生信息;
        (2)查询学生信息;
        (3)可生成柱状图。
      扩展功能:
        (1)提取重点关注的人员信息,每日监控;
        (2)向负责人发送重点关注人员的信息。
         
    3.设计实现


         
    4.测试运行




         
    5.粘贴自己觉得比较独特的或满意的代码片段,用博客园代码控件来显示。

    ` package 疫情;

    import java.sql.;
    import javax.swing.
    ;
    import java.awt.;
    import java.awt.event.
    ;
    import java.awt.Color;
    public class LLogin {

     public static void main(String[] args) {  
            new loginFrame();   
        }  	  
    } 
    
    class loginFrame extends JFrame implements ActionListener{  
        Box box1,box2,baseBox;  
        JLabel userName,userPwd,tubiao;  
        JTextField nameField;  
        JPasswordField pwdField;  
        JButton button;  
        JTabbedPane choose;  
        JPanel panel1,panel2;  
        loginFrame(){  
            setBackground(Color.white);  
            userName=new JLabel("账号",JLabel.CENTER);  
            userPwd=new JLabel("密码",JLabel.CENTER);  
            nameField=new JTextField(8);  
            pwdField=new JPasswordField(8);  
            panel1=new JPanel();  
            panel2=new JPanel();  
            choose=new JTabbedPane();  
            choose.add("登录界面",panel1);  
            panel1.setLayout(new GridLayout(2,2));  
            panel1.add(userName);panel1.add(nameField);  
            panel1.add(userPwd);panel1.add(pwdField);  
            add(choose,BorderLayout.CENTER);  
            button=new JButton("登陆");  
            add(button,BorderLayout.SOUTH);  
            button.addActionListener(this);  
            //小图标
            ImageIcon tubiao=new ImageIcon("H:/Java:学生信息成绩管理系统/StudentSystem/src/疫情/层云.jpeg"); 
            setIconImage(tubiao.getImage());  
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            setVisible(true);  
            setBounds(200,100,500,200);  
            setTitle("疫情信息管理系统");  
            validate();  
        }  
    
    
        public void actionPerformed(ActionEvent e){  
            String name,pwd;  
            name=nameField.getText();  
            pwd=pwdField.getText();  
            try{  
              Class.forName("com.mysql.jdbc.Driver"); //加载数据库驱动 
               
            }  
            catch(ClassNotFoundException ex){  
            System.out.println(ex);  
            }  
            try{  
                Connection con;  
                Statement sql;  
                ResultSet rs;  
                String url,userName,userPwd;  
                 // 连接数据库的语句
              url =  "jdbc:mysql://localhost:3306/studentinfo?useUnicode=true&characterEncoding=utf-8";
            
                userName="root";  
                userPwd="root";  
                con=DriverManager.getConnection(url,userName,userPwd);  
                sql=con.createStatement();  
                rs=sql.executeQuery("select * from login where name ='"+name+"' and pwd='"+pwd+"'");  
                int q=0;  
                
                while(rs.next()){  
                    q++;  
                  
                }  
                if(q>0){  
                    JOptionPane.showMessageDialog(this, "登陆成功!","消息对话框",JOptionPane.WARNING_MESSAGE);  
                    this.dispose();  
                    new CommFrame();    
                      
                }  
                else  
                    JOptionPane.showMessageDialog(this, "账号或者密码错误!","消息对话框",JOptionPane.WARNING_MESSAGE);  
            }  
            catch(SQLException exp){  
                System.out.println(exp);  
            }        
        }  
    

    6.总结:你设计的程序如何实现软件设计的“模块化”原则。
      本人表示很遗憾没有按照要求完成任务,设想是分成信息采集,信息查询,图表生成三个模块 实现软件设计。目前只能做到简单的信息采集和信息查询功能。      
    7.展示PSP,这个环节重要的是让自己看到自己的估计和实际消耗时间,哪个环节耗时最多,哪个环节估计和实践相差巨大?为什么?(5分)

    PSP 任务内容 计划共完成需要的时间(min) 实际完成需要的时间
    Planning 估计这个任务需要多少时间,并规划大致工作步骤 45 30
    Deveploment 开发 3000 4000
    Analysis 需求分析 (包括学习新技术) 2000 2000
    Design Spec 生成设计文档 0 0
    Design Review 设计复审 (和同事审核设计文档) 0 0
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 180 180
    Design 具体设计 300 300
    Coding 具体编码 300 800
    Code Review 代码复审 120 120
    Test 测试(自我测试,修改代码,提交修改) 180 180
    Reporting 报告 120 180
    Test Report 测试报告 60 60
    Size Measurement 计算工作量 60 60
    Postmortem & Process Improvement Plan 事后总结 ,并提出过程改进计划 60 60

      开发过程是花了大量时间,按照计划是用JAVA语言和SQL实现系统功能。由于个人没有学习过数据库,编程能力比较弱,所以整个项目做起来特别吃力。过程中安装了SQL 2008R,通过视频学习了数据库的基本操作,实现了数据库中的数据导入,但是没有实现数据库和系统界面的连接。界面做的很简单,只能实现信息输入和显示,没有按照任务要求完成本次实验。
    8.如果所有的环节你都认真做了,那么,此处你应该会有很多经验愿意与大家分享。
      从刚开始上课的时候,就是觉得这是不可能完成任务,但还是硬着头皮看视频学习,想着能做多少做多少,尽力去完成。虽然完成的结果不咋样,但是前后十几天每天都在为了这个项目学习,感觉还是很充实。好几次想要放弃,但还好坚持下来,只能自我安慰:学习过程更重要,继续坚持终将收获成功的果实。

  • 相关阅读:
    10-JavaScript 条件语句
    9-JavaScript 比较
    8-JavaScript 运算符
    6-JavaScript 事件
    Sum Problem 重定向文件的使用
    Calculate A + B.
    Vue中computed的本质及与methods的区别
    外部文件使用django的models
    DjangoURL反向解析
    字符串格式化的方式
  • 原文地址:https://www.cnblogs.com/tjnkxh/p/12418223.html
Copyright © 2020-2023  润新知