實驗二 我的項目報告 <學生疫情管理系統>html
項目git |
內容github |
課程班級博客連接編程 |
https://edu.cnblogs.com/campus/xbsf/nwnu2020SE微信 |
這個做業要求連接函數 |
https://www.cnblogs.com/nwnu-daizh/p/12416880.html工具 |
個人課程學習目標學習 |
(1)掌握軟件項目我的開發流程。測試 (2)掌握Github發佈軟件項目的操做方法。編碼 |
這個做業在哪些方面幫助我實現學習目標 |
首先經過進行需求分析,界面設計,代碼編寫等這幾部分工做讓我對開發系統有了很大的收穫。其次是經過博客做業的編寫以及構造之法的 瞭解也讓我有 了很大的收穫
|
項目Github的倉庫連接地址 |
https://github.com/yanzhidandang/-.git |
一,實驗內容和步驟
1,項目開發背景及需求分析
(1) 需求分析
2019年12月末,中國武漢發生新型冠狀病毒(2019-nCoV) 感染的肺炎疫情,爲遏制疫情蔓延,有效切斷病毒傳播途徑,在中央政府指導下,各級政府部分採起了一系列防控措施: 2020年1 月23 日10時起對武漢「封城」,全國 31個省市也相繼實施了嚴格的防控措施;全國各省市向武漢和湖北派遣醫療隊參與救治工做;在全國範圍內調配口罩、防禦服、藥品等急需的醫療資源支援武漢;指導和督促全國範圍內擁有醫療物資生產資質的企業儘快恢復生產能力;定向撥付專項財政資金用於疾病防控;從其餘省份調集物資保障武漢市民平常生活。
值得一提的是,中國互聯網企業在這次疫情防控中發揮了社會治理方面的重要做用。以騰訊爲例,圍繞應對疫情管控需求開發了十一款產品。其中疫情在線問診功能,對於減小發熱病人之間的相互交叉感染具備重要的做用,患者在家經過互聯網向在線醫生問診,減小了病毒傳播或感染的風險;謠言粉碎對於公衆採起理性態度看待疫情的發展具備重要意義。滴滴出行還在武漢專門組建車隊,服務於醫護人員的通勤,這在實施交通管制的武漢具備重要做用。此外,還有新型肺炎確診患者同行程查詢工具,用戶只須要輸入本身所乘坐交通工具的時間和班次,就能夠確認是否與被確診感染者同行,提早作好自我隔離和就診工做。在疫情防控中,中國互聯網企業不只發展壯大,在承擔社會責任方面也愈來愈成熟。
爲有效配合防控機構有關疫情信息的採集、統計與排查,我校開發了教職工/學生疫情上報系統,該系統由教職工疫情每日上報、學生疫情每日上報、二級部門疫情每日彙總表、疫情防控填報統計四個子系統組成。實現對我校各種人員基本狀況、所在區域及活動軌跡及健康情況的信息收集。師生經過我校企業微信服務大廳訪問該系統進行遠程信息填報。
(2). 功能設計
a,首先是題要求
第一類開發要求:
有一個數據文件,保存了100天 2000 個教職工/學生的全部防疫信息,請設計一個命令行程序, 支持查詢某人在某一天的疫情狀況, 查詢某種數據的周/月的疫情統計狀況,並用柱狀圖顯示統計結果。
第二類開發要求:
1. 系統可採集學生疫情有效信息;
2. 系統支持用戶在線使用;
3. 每日只可填報一次,提交後沒法修改,每日十點疫情信息填報截止;
4. 各學院指定負責人登陸系統,可查看本學院學生填報的彙總數據,可點擊查看學生聯繫方式、班主任聯繫方式,學院負責人覈實本院全部學生數據後,將數據提交給學校防控辦;
5. 學校防控辦指定負責人登陸《西北師範大學疫情防控信息統計》子系統,可瀏覽全部學生填報彙總數據清單,經過【導出】可獲取疫情數據的EXCEL文件(這一部分沒有實現)。
b,經過題目要求分析所要進行的開發 系統的功能;
首先是在疫情期間採集學生的信息,我所設計的系統所採集的信息有,學號,姓名,性別,本身的聯繫方式,是否留校,是否感染,當前所在地區以及是否接觸嚴重疫區人員和當日是否有發熱等症狀。系統支持在線使用,系統還包括經過學號來查詢某個學生的狀況,或者修改,刪除,添加,保存等一系統功能。經過瀏覽學生信息能夠查看學生的全部信息。
(3) 設計實現
我使用c語言來實現的,主要經過設計運行界面,以及錄入學生疫情信息,瀏覽 學生疫情信息,查詢學生疫情信息,刪除學生疫情信息,添加學生 疫情信息,修改學生疫情信息,保存學生疫情 信息八個塊來構成 整個系統的。
(4) 測試運行
代碼運行過程展現:
(5).關鍵代碼片斷
如下部分代碼是初始化窗口和界面部分代碼,相比其餘部分較難的一部分,裏面運用了循環以及switch等語句。
//1:初始化窗口和界面 initWindow(title); initMenu(); do{//循環 printf("請選擇菜單(1-8):\n"); //清除緩衝區的內容 fflush(stdin); scanf("%c",&result); //清除緩衝區的內容 fflush(stdin); if(result>='1'&&result<='8'){ switch(result){ case '1': //判斷是否錄入學生信息 while(1) { addStudent(stu);//調用添加學生信息的函數 printf("是否繼續錄入學生信息(y/n):"); scanf("%c",&choice); if(choice=='n'){ break; } } break; case '2': display(stu);//調用顯示信息的函數 printf("\n"); break; case '3': find(stu);//調用查詢信息的函數 break; case '4': del(stu); break; case '5': case '6': case '7': Save(stu); break; default:printf("謝謝使用!"); } } else printf("輸入有誤!"); }while(result!='8'); }
(6). 總結:主要經過設計運行界面,以及錄入學生疫情信息,瀏覽 學生疫情信息,查詢學生疫情信息,刪除學生疫情信息,添加學生 疫情信息,修改學生疫情信息,保存學生疫情 信息八個塊來構成 整個系統的。
2,疫情每日上報的系統使用體驗
經過每日在西師易通進行每日的疫情上報,也有很大的感觸,首先天然是以爲計算機編程在人們生活中的重要性,由於有了計算機編程哪怕在當前這種狀況下,照樣能夠統計學生天天的情況 健康與否等等 ,其次呢,經過從一開始的疫情上報一直但如今系統 中間也有了更新,從一開始要本身填寫全部信息,到後面爲了方便,打開以後就有以前填的全部的信息,若是從在不同的狀況也能夠進行修改,若是在狀況同樣的時候爲了節省時間,能夠直接提交以前所填的信息,而此次的做業也是開發一個關於學生信息上報的系統,而我在此次的系統開發過程當中也借鑑了不少學校系統上的信息,好比須要採集學生的哪些信息,都是借鑑的學校的系統上的問題。
3,簡述閱讀《構建之法》第1-2章、第2章2.3節所述PSP流程
PSP流程實際上就是開發系統的流程,它主要包括三個階段,計劃,開發和報告 三個階段,
(1)計劃 階段:就是對他進行背景調查,需求分析,以及所要涉及到的因素,包括每一個階段所須要的時間等信息;
(2)開發 階段:就是對所要開發的項目涉及,而且找到合適的代碼規範,進行具體的代碼設計,以及進行測試運行等 工做;
(3)報告階段:經過項目開發的過程來完成項目報告,對項目進行總結,改進,,以及報告工做量。而且對本身的設計開發過程心得進行總結。
PSP2.1 |
任務內容 |
計劃共完成須要的時間(min) |
實際完成須要的時間(min) |
Planning |
計劃 |
8 |
6 |
· Estimate |
· 估計這個任務須要多少時間,並規劃大體工做步驟 |
8 |
6 |
Development |
開發 |
420 |
800 |
·· Analysis |
需求分析 (包括學習新技術) |
30 |
60 |
· Design Spec |
· 生成設計文檔 |
20 |
30 |
· Design Review |
· 設計複審 (和同事審覈設計文檔) |
50 |
100 |
· Coding Standard |
代碼規範 (爲目前的開發制定合適的規範) |
15 |
25 |
· Design |
具體設計 |
30 |
100 |
· Coding |
具體編碼 |
200 |
350 |
· Code Review |
· 代碼複審 |
40 |
50 |
· Test |
· 測試(自我測試,修改代碼,提交修改) |
35 |
85 |
Reporting |
報告 |
30 |
30 |
·· Test Report |
· 測試報告 |
10 |
10 |
· Size Measurement |
計算工做量 |
10 |
10 |
· Postmortem & Process Improvement Plan |
· 過後總結 ,並提出過程改進計劃 |
10 |
10 |
由於本身的能力不夠本次設計所花的時間仍是很長,尤爲在開發的部分。
4,源代碼提交到Github帳號中(完成)
在往github中上傳代碼參考這篇博客而且向已經提交的同窗請教的。
5,實驗總結:
本次實驗是我的項目的實驗,是經過本身進行設計開發一個疫情上報系統的實驗,相比前一個實驗來講算是難度上有了一個大的提高,也更具備挑戰了。本次實驗我是 用c 語言來完成的,由於本身自己基礎比較薄弱,因此用了兩天時間將代碼刪刪改改基本實現了項目的 要求,至於不完美的地方我將在課後經過查找資料,向同窗老師請教不斷學習和鞏固的,也但願在之後的實驗中我能夠有一點一點 的進步。