201771030123-王双ソフトウェア工学実験2つの個々のイベント - 「西北師範大学の学生の流行報告システム」プロジェクトレポート

プロジェクト コンテンツ
コースクラスのブログのリンク https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
このジョブは、リンクが必要です https://www.cnblogs.com/nwnu-daizh/p/12416880.html
私のコース学習目標 (1)個人的なプロジェクト管理ソフトウェア開発プロセス。
(2)動作のGithub公開ソフトウェアプロジェクトのマスター方法。
この仕事は私がどのような分野での目標を達成するため学習に役立っ PSPに従い、個人的なソフトウェアプロジェクトの計画プロセスに精通
Githubのリポジトリリンクプロジェクト https://github.com/JzyWs/wangS.git

タスク2:PSPは、個々のプロジェクトの開発と併せて処理し

プロジェクト開発の背景:

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

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

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

プロジェクト開発の要件:

最初の開発要件:
データファイル、100日2000教職員/学生、すべての予防接種情報の保存には、コマンドラインプログラムを設計してくださいその人でサポートクエリ1日流行状況、クエリデータの週のいくつかの種類流行の統計/月、およびディスプレイ統計結果のヒストグラム。

1:ニーズ分析

  • 非機能要件は、
    新しいコロナウイルスの流行として、すべての都市の学校は開始時間を遅らせることに合意したが、遅延時間にもかかわらず、しかし、学校はまた、我々は日々流行に私たちは、学校に記入する必要があるので、前に、できるだけ早く学校に戻ることができますことを願っていますレポート。すべてが記入した後、あなたが今、小さな流行サマリー表をシミュレートすることができますので、希望が明確に、学校の要件に応じて、学生の状況を見ることができ、柱状を取得するために2000個人情報の100日間は、様々な要件に応じて作られました図。
  • 機能要件
    • 誰かの日に流行状況を照会します
    • 流行の統計は、いくつかのデータ週/月照会し、ヒストグラムとして結果を表示します

2:機能設計

:私は以下の機能を実現するために行っているさまざまなプロジェクトによって達成されるように分析し、プロジェクトの機能を必要とする
学生の数、およびヒストグラムによって学生の流行状況の100日を照会します- 。
-流行状況の2000学生の一日を照会することができ、およびヒストグラム表示。

3:設計と実装

  • 二つのファイル:test2は、TEST3、二つの文書のマスタークラスを持ってはいた:棒グラフ
    - (注:私は今までにデータの読み出し処理でおりますので、フォローアップでは、障害を持っていない、まだ解決できなかった多くの方法を試してみてください報告書は、どこに問題が嘘を表示します。そう.test2第2の機能を実現するための機能設計要件以上を達成するために2つのファイルを分離し、)ファイルTEST1.XLSを使用して、最初の関数test.xls.test3ファイルを使用して実装
    • Jxl.jar--は、Excelファイルからデータを読み取るために使用します。
      • ワークブックブック= Workbook.getWorkbook(新しいファイル( "D:\ TEST1.XLS")); - Excelで文を読んで重要
      • 。文字列名= sheet.getCell(x、y)は.getContents()(トリム); - 行yを読み取るためのExcelファイル、Xの列データ
    • ヒストグラムの生産のためのjfreechart.jar-- gnujaxp.jar、jcommon.jarを、使用してください。
      • JFreeChartチャート= ChartFactory.createBarChart3D(); - 棒グラフ、充填する内容パラメータの棒グラフを構築します
      • CategoryPlotプロット= chart.getCategoryPlot(); - グラフ領域を得るためのオブジェクト。
3.1:デザインの特定のアイデア
首先数据准备,需要编写小程序来随机产生2000姓名及性别和其他信息,将数据存于Excel文件中(注意:保存的Excel文件后缀名为.xls),这样数据就准备好了。接下来就开始进行实验,将数据按行读取,在读的过程中就判断各项内容,如“是否出现疑似症状情况”内容为“是”,设置临时变量count1自增1。这样再遍历完整个文件之后就完成了各项内容的统计,将统计的几个临时变量传给Dateset中作为数据,接下来就可实现这一天的2000个人的疫情统计柱状图。
其次,跟上述思想相似,一开始输入需要查询的学生的学号,通过在遍历文件的过程中将输入的变量与读取的学号列进行匹配,如果相等就输出信息,并且同时统计各项内容数据,方法同上。这样就可在命令行窗口看到该学生100天的疫情情况,也可以看到这100天内的情况统计柱状图。

4:テストを実行します

  • 次のように主なカテゴリは次のとおりです。

Test2をはBarChartコントロール統計の流行状況は、2000人の生徒の一日を実現することができるで実行、次のように、テスト結果は以下のとおりです。


まず第一に、あなたは、様々な統計的プロジェクトに固有のデータを見ることができ、そして第二に、使用してJavaのグラフィカル・ユーザー・インターフェースは、データのこれらのヒストグラムをしたコンソールウィンドウに表示することができます。

次のようにtest3には、クエリがBarChartコントロール100日に学生の流行状況を達成し、ヒストグラムを描画することができます実行し、テスト結果は以下のとおりです。


あなたは学校の学生の数は流行状況とコマンドライン入力の形で棒グラフの100日を取得することができます見ることができます。

5:メインコード

/*
该主要代码是用于从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:問題が発生しました

実験中、私はいくつか遭遇した問題があり、一部は解決されている、といくつかは、まだ解決されていません。

1:Excelファイルを読み取り

ここでは、これはExcelファイルを読み込むために使用されていることをすべて知っているが、我々は保存するためにExcelを使用したとき、私は、ファイルの種類の始まりはTest.xlsをを読まれるべきで気づく、およびデフォルトのサフィックスませんでしたが、私ので、test.xlsxです最初にファイルを読み取りに失敗した結果として、注意を払っていません。背後の後に動作しJXLエクセルの.xlsファイルが自分の不注意の大部分である、読みするときに知っているオンラインチェック、将来は詳細の一部にもっと注意を払うだろう。

2:データ型変換

これらの3つの問題は、Excelファイルを読み込んだ後、そのキャストを使用し、文字列に同じタイプを比較するために、異なるデータ型のものであり、私が最初に考えと一致していない変数に等しいだかどうかを裁判官になります使用されますされています変換の二つのタイプ、どのような変換の関係なくは何の構文エラーは、エラーが、まだ何もありませんではないない場合でも、他に実行可能ではありません。その後、オンラインチェック、および最初の学生と私は解決された2番目の質問を尋ねることによって、最初の問題は、この文字列ID =ライン(0、I).getContents()のsheet.getCellデータを読む必要があります.trim(); .trim後ろ()は同上のIDの後に入力を比較できるように、データの文字列型に変換され、Iが「YES」の内容を決定する必要があるため、第二の問題は、A私は「はい」char型の文字列型にこれを変換する、またはその逆を開始しました。これはエラーではありませんが、が、我々は、2つの等しくない「==」を決定する(「はい」)、このような文をa1.equalsを使用する必要性を決定することができるかどうかを判断するために照会した後の後、私が知りたいの結果を取得できませんでした。これら2つの問題が解決されているが、第三の問題は、まだタイプに関係なく、解決されていないか、または様々な方法は、ヒストグラムを描画するために週/月で達成されていない実験的な機能で、その結果、まだ解決していない、試されている変換します。その後の研究でも、我々はこのプロジェクトを完了し、彼らの知識を向上させるために必要な!

7:実験の概要

この実験ではPSPとPSPを学習するプロセスは、厳密には、プロセス内のソフトウェアの実装を強制することは新しい経験だと思う、ソフトウェアエンジニアリングとプロジェクト開発計画のこのクラスの重要性をより認識して学習へのプロセスを使用しているため、そして、PSPは、人々が短い中で、プロジェクト全体のより明確かつ具体的なアイデアのプロセスを行うようになりますどのように重要な推定、PSPは本当に多くの標準化されたソフトウェア開発であることを教えてくれました。第二に、この実験では収穫もExcelファイルを読み込み、Java言語のメソッドを持つヒストグラム!しかし残念ながら、我々は、プロジェクトのより完全な実装では、限られた時間関数内で達成することができませんでした。その後の研究では希望が良くなります、懸命に働くでしょう!

8:表示PSP

PSP2.1 概要 計画時に必要な(時間)に完了 (時間)を完了するために必要な実際の時間
プランニング 計画 3 4
推計 これは、タスクは、一般的に作業工程に多くの時間と計画が必要と推定しました 100 150
開発 開発 150 160
分析 (新しい技術を学ぶ含む)ニーズ分析 3 3
デザインスペック 設計ドキュメントの生成 2 2
デザインレビュー デザインレビュー(と同僚が設計文書を見直し) 0 0
標準コーディング コードの仕様(現在の開発のための適切な規範の開発) 2 2
設計 具体的な設計 10 15
コーディング 具体的なコーディング 300 290
コードレビュー コードレビュー 10 12
テスト 検査(セルフテスト、コードを変更し、変更を提出) 15 14
報告 レポート 6 6
サイズ測定 コンピューティングワークロード 3 42
死後&プロセス改善計画 その後まとめ、およびプロセス改善計画 2 3

9:Githubのにアップロードプロジェクト

おすすめ

転載: www.cnblogs.com/JZYWS/p/12511836.html
おすすめ