201771030123- Wang Shuang ingeniería de software experimento dos eventos individuales - "sistema de información epidemia del estudiante de la Universidad del Noroeste normal" informe del proyecto

proyecto contenido
Por supuesto enlace del blog de clase https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
Este trabajo requiere de enlace https://www.cnblogs.com/nwnu-daizh/p/12416880.html
Mis objetivos de aprendizaje curso (1) proceso de desarrollo de software de control de proyecto personal.
(2) métodos maestros de funcionamiento Github la publicación de los proyectos de software.
Este trabajo me ayudó a lograr los objetivos de aprendizaje en qué áreas Familiarizados con el proceso de planificación de proyectos de software personal de acuerdo con PSP
proyecto de enlace de repositorio de Github https://github.com/JzyWs/wangS.git

Tarea 2: PSP procesa junto con el desarrollo de proyectos individuales

Antecedentes del proyecto de desarrollo:

     2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工作;在全国范围内调配口罩、防护服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其他省份调集物资保障武汉市民日常生活。

   值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减少发热病人之间的相互交叉感染具有重要的作用,患者在家通过互联网向在线医生问诊,减少了病毒传播或感染的风险;谣言粉碎对于公众采取理性态度看待疫情的发展具有重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具有重要作用。此外,还有新型肺炎确诊患者同行程查询工具,用户只需要输入自己所乘坐交通工具的时间和班次,就可以确认是否与被确诊感染者同行,提前做好自我隔离和就诊工作。在疫情防控中,中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。

   为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各类人员基本情况、所在区域及活动轨迹及健康状况的信息收集。师生通过我校企业微信服务大厅访问该系统进行远程信息填报。

Requisitos para el desarrollo del proyecto:

Los primeros requerimientos de desarrollo:
un archivo de datos, ahorrando 100 días 2.000 profesores / estudiantes toda la información de la inmunización, por favor diseñan un programa de línea de comandos que admite consultas en persona algún día la situación de la epidemia, algún tipo de datos Semana consulta estadísticas epidémicas / mes, y muestra los resultados estadísticos del histograma.

análisis de las necesidades: 1

  • requisitos no funcionales
    ahora como la nueva epidemia de coronavirus, todas las escuelas de la ciudad han acordado retrasar la hora de inicio, pero a pesar del tiempo de retardo, pero la escuela también la esperanza de que podemos volver a la escuela tan pronto como sea posible, por lo que antes se nos requiere para llenar las escuelas en una epidemia diaria informes. Después de todo rellenado, la esperanza puede ver claramente la situación de los estudiantes de acuerdo a las necesidades de la escuela, por lo que ahora puede simular un pequeño cuadro resumen epidemia, operado por 100 días de 2000 la información personal para obtener una columna hecha de acuerdo con varios requisitos Fig.
  • Requisitos funcionales
    • Consultas de situación de la epidemia en el día a alguien
    • estadísticas epidémicas consultar algunas semanas de datos / mes, y mostrar los resultados como un histograma

2: Diseño Funcional

análisis de necesidades y funciones del proyecto a ser alcanzados por los diferentes proyectos que he hecho para lograr las siguientes funciones:
- a la pregunta 100 días de la situación de la epidemia de un estudiante por el número de estudiante, y un histograma.
- capaz de consultar el día 2.000 estudiantes de la situación de la epidemia, y una pantalla de histograma.

3: Diseño e Implementación

  • Dos archivos: test2, test3, dos documentos tienen una clase magistral fueron: Barchart
    - (Nota: Desde que estoy en el proceso de lectura de los datos hasta la fecha tienen no obstáculos, y tratar de muchas maneras todavía no podía resolver, en el seguimiento el informe mostrará a cabo donde se encuentra el problema. modo de separar los dos archivos para lograr lo anterior requisitos de diseño funcionales para lograr .test2 segunda función, implementado utilizando la primera función de archivo test.xls.test3, utilizando el TEST1.XLS archivo)
    • Jxl.jar-- de usar para leer los datos del archivo de Excel.
      • Libro de trabajo del libro = Workbook.getWorkbook (nuevo archivo ( "D: \ TEST1.XLS")); - importante en la lectura de la declaración en Excel
      • . String name = sheet.getCell (x, y) .getContents () trim (); - archivo de Excel para la lectura de la fila Y, los datos de columna de x
    • Usar la gnujaxp.jar, jcommon.jar, jfreechart.jar-- para la producción de un histograma.
      • gráfico JFreeChart = ChartFactory.createBarChart3D (); - para la construcción de un gráfico de barras, un gráfico de barras de los parámetros de contenido para llenar
      • CategoryPlot parcela = chart.getCategoryPlot (); - el objeto para obtener el área del gráfico.
3.1: Diseño ideas específicas
首先数据准备,需要编写小程序来随机产生2000姓名及性别和其他信息,将数据存于Excel文件中(注意:保存的Excel文件后缀名为.xls),这样数据就准备好了。接下来就开始进行实验,将数据按行读取,在读的过程中就判断各项内容,如“是否出现疑似症状情况”内容为“是”,设置临时变量count1自增1。这样再遍历完整个文件之后就完成了各项内容的统计,将统计的几个临时变量传给Dateset中作为数据,接下来就可实现这一天的2000个人的疫情统计柱状图。
其次,跟上述思想相似,一开始输入需要查询的学生的学号,通过在遍历文件的过程中将输入的变量与读取的学号列进行匹配,如果相等就输出信息,并且同时统计各项内容数据,方法同上。这样就可在命令行窗口看到该学生100天的疫情情况,也可以看到这100天内的情况统计柱状图。

4: Ejecutar la prueba

  • Las principales categorías son las siguientes:

Test2 carreras en situación epidémica BarChart estadísticas se pueden lograr de un día de 2000 estudiantes, los resultados de la prueba son los siguientes:


En primer lugar, se puede ver en la ventana de la consola se puede ver datos específicos en los diversos proyectos estadísticos, y en segundo lugar, el uso de Java interfaz gráfica de usuario ha hecho que estos histogramas de datos.

Test3 ejecutar la consulta se puede lograr BarChart 100 días a la situación de la epidemia del estudiante y dibuja un histograma, los resultados son los siguientes:


Se puede ver el número de estudiantes de la escuela puede llegar a los 100 días de la situación de la epidemia y el gráfico de barras en la forma de la entrada de línea de comandos.

5: el código principal

/*
该主要代码是用于从Excel中边读数据边进行统计得到柱状图所需要的数据的过程
*/
private static CategoryDataset getDataSet() throws ParseException
    {
    int count1=0;
        int count2=0;
        int count3=0;
        int count4=0;
        Scanner sc = new Scanner(System.in);
        try {
            Workbook book = Workbook.getWorkbook(new File("D:\\test1.xls"));
            Sheet sheet =book.getSheet(0);
            int rows =sheet.getRows();
            int cols =sheet.getColumns();
            System.out.println("请输入学号:");
            String Id = sc.nextLine();
            for(int i=1;i<rows;i++)
            {
                String id = sheet.getCell(0, i).getContents().trim();
                if(id.equals(Id))
                {
                    String name =sheet.getCell(1, i).getContents().trim();
                    String sex =sheet.getCell(2, i).getContents().trim();
                    String date =sheet.getCell(3, i).getContents().trim();
                    String a1 =sheet.getCell(4, i).getContents();
                    String a2 =sheet.getCell(5, i).getContents();
                    String a3 =sheet.getCell(6, i).getContents();
                    String a4 =sheet.getCell(7, i).getContents();
                    System.out.println(id+"   "+name+"    "+sex+"  "+date+"    "+a1+"  "+a2+"   "+a3+"   "+a4);
                    if(a1.equals("是"))
                        count1++;
                    if(a2.equals("是"))
                        count2++;
                    if(a3.equals("是"))
                        count3++;
                    if(a4.equals("是"))
                        count4++;
                }
            }
            
            
        } catch (BiffException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(count1, "是否在武汉", "是否在武汉");
        dataset.addValue(count2, "是否湖北(不含武汉)", "是否湖北(不含武汉)");
        dataset.addValue(count3, "是否有疫情疑似症状", "是否有疫情疑似症状");
        dataset.addValue(count4, "是否已确认被感染", "是否已确认被感染");
        return dataset;
    }

6: Se encontraron problemas

Durante el experimento, tengo un problema me encontré con varios, y algunos han sido resueltos, y algunos aún no han sido resueltos.

1: Leer archivos de Excel

Aquí, todos sabemos que este se utiliza para leer archivos de Excel, pero no se dio cuenta al principio del tipo de archivo debe ser leído test.xls, y el sufijo por defecto cuando se utilizó Excel de ahorrar es test.xlsx, porque inicialmente no prestar atención, resulta en un fracaso para leer el archivo. Detrás después del registro en línea para saber cuando se opera jxl archivo .xls de Excel se ha de leer, lo cual es una gran parte de su descuido, el futuro va a prestar más atención a algunos de los detalles.

2: conversión de tipo de datos

Estas tres cuestiones son después de leer el archivo de Excel se pueden utilizar para juzgar si soy igual a la variable no coincide con el primer pensamiento es de diferentes tipos de datos, para comparar el mismo tipo de cadena, a fin de utilizar un molde, se dos tipos de conversión, no importa qué tipo de conversión no son factibles a otro, incluso si no hay error de sintaxis no es un error, pero aún no hay resultados. Por cheque en línea y, a continuación, pedir a los estudiantes de primer y segunda pregunta que se han resuelto, el primer problema es la necesidad de leer este String id = sheet.getCell datos de la línea (0, i) .getContents () .trim (); detrás .trim () se convierte en tipo String de los datos, de modo que después de Id ID y se puede comparar la entrada; segundo problema es porque necesito para determinar el contenido de "Sí", una empecé el "Sí" convertir esto en un tipo de cadena tipo char, o viceversa. Aunque esto no es un error, pero no conseguimos los resultados que quiero saber después después de una investigación para determinar si los dos no puede ser igual "==" para determinar la necesidad de utilizar a1.equals ( "Sí") tal declaración para determinar . Estos dos problemas han sido resueltos, pero el tercer problema sigue sin resolverse, sin importar el tipo o convertir varios métodos se han intentado, aún no resuelto, lo que resulta en función experimental no se consigue por semana / mes para dibujar un histograma. En un estudio posterior también nos falta para completar este proyecto y mejorar sus conocimientos!

7: Resumen Experimento

En este experimento, debido a que el proceso de aprendizaje de la PSP y PSP usar el proceso para cumplir estrictamente la implementación del software dentro del proceso, creo que es una experiencia nueva, aprender más conscientes de la importancia de esta clase de ingeniería de software y un plan de desarrollo del proyecto y estimar la importancia que, PSP hará que la gente hace el proceso idea más clara y específica de todo el proyecto, en definitiva, PSP realmente me enseñó a ser el desarrollo de software más estandarizada. En segundo lugar, la cosecha en este experimento también leer archivos de Excel, y un histograma con el método Java! Pero, por desgracia, no podíamos ser más completa implementación del proyecto que deben alcanzarse dentro de una función de tiempo limitado. En un estudio posterior trabajará más duro, la esperanza será mejor y mejor!

8: Pantalla PSP

PSP2.1 RESUMEN tiempo de planificación necesarios (horas) completado El tiempo real requerido para completar (horas)
Planificación plan 3 4
Estimar Se estima que la tarea requiere mucho tiempo y planificación en general los pasos de trabajo 100 150
Desarrollo desarrollar 150 160
Análisis análisis de necesidades (incluyendo el aprendizaje de nuevas tecnologías) 3 3
diseño Spec Generar documentos de diseño 2 2
Revisión de diseño la revisión del diseño (y sus colegas revisaron los documentos de diseño) 0 0
codificación Estándar Especificaciones de códigos (desarrollo de normas apropiadas para el desarrollo actual) 2 2
Diseño diseño específico 10 15
Codificación codificación específica 300 290
Revisión de código Revisión del código 10 12
Prueba Prueba (autocomprobación, modificar el código, enviar modificaciones) 15 14
la presentación de informes informe 6 6
Medida del tamaño cargas de trabajo informáticas 3 42
Postmortem y Procesos Plan de Mejora Más tarde se resume, y un plan de mejora de procesos 2 3

9: Cargar proyectos a Github

Supongo que te gusta

Origin www.cnblogs.com/JZYWS/p/12511836.html
Recomendado
Clasificación