201771010113-李婷華 實驗二 我的項目—《西北師範大學學生疫情上報系統》項目報告

項目 內容
課程班級博客連接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
這個做業要求連接 http://www.javashuo.com/article/p-meyvhbuv-mp.html
個人課程學習目標 (1)掌握軟件項目我的開發流程;(2)掌握Github發佈軟件項目的操做方法。
這個做業在哪些方面幫助我實現學習目標 我的項目的開發以及使用GitHub方面
項目Github的倉庫連接地址 https://github.com/1957877441/System
##任務1:陳述學生疫情每日上報子系統使用體驗;
  這個系統剛開發出來使用的第一天是不完善的,網絡擁堵進不去,到了次日使用的時候,這個問題已經解決了,可是仍是有問題,就是每次一樣的數據都須要用戶手動輸入進去,到目前爲止,這個小問題也已經解決了,沒有變化的數據會保留下來,不須要再去一次次輸入了。就是有個小小的遺憾,沒有提醒功能,用戶總是會忘記打卡。總的來講這個系統仍是不錯的,以表單的方式簡單作了一個系統,功能也隨着用戶的使用在不斷的完善,感謝開發人員的辛苦付出。
##任務2:總結詳細閱讀《構建之法》第1-2章、結合第2章2.3節所述PSP流程,開發一款你本身心目中的西北師範大學學生疫情每日填報系統。
###1、項目實施過程:
####一、需求分析
  2019年12月末,中國武漢發生新型冠狀病毒(2019-nCoV) 感染的肺炎疫情,爲遏制疫情蔓延,有效切斷病毒傳播途徑,在中央政府指導下,各級政府部分採起了一系列防控措施:2020年1月23日10時起對武漢「封城」,全國31個省市也相繼實施了嚴格的防控措施;全國各省市向武漢和湖北派遣醫療隊參與救治工做;在全國範圍內調配口罩、防禦服、藥品等急需的醫療資源支援武漢;指導和督促全國範圍內擁有醫療物資生產資質的企業儘快恢復生產能力;定向撥付專項財政資金用於疾病防控;從其餘省份調集物資保障武漢市民平常生活。
  值得一提的是,中國互聯網企業在這次疫情防控中發揮了社會治理方面的重要做用。以騰訊爲例,圍繞應對疫情管控需求開發了十一款產品。其中疫情在線問診功能,對於減小發熱病人之間的相互交叉感染具備重要的做用,患者在家經過互聯網向在線醫生問診,減小了病毒傳播或感染的風險;謠言粉碎對於公衆採起理性態度看待疫情的發展具備重要意義。滴滴出行還在武漢專門組建車隊,服務於醫護人員的通勤,這在實施交通管制的武漢具備重要做用。此外,還有新型肺炎確診患者同行程查詢工具,用戶只須要輸入本身所乘坐交通工具的時間和班次,就能夠確認是否與被確診感染者同行,提早作好自我隔離和就診工做。在疫情防控中,中國互聯網企業不只發展壯大,在承擔社會責任方面也愈來愈成熟。
  爲有效配合防控機構有關疫情信息的採集、統計與排查,我校開發了教職工/學生疫情上報系統,該系統由教職工疫情每日上報、學生疫情每日上報、二級部門疫情每日彙總表、疫情防控填報統計四個子系統組成。實現對我校各種人員基本狀況、所在區域及活動軌跡及健康情況的信息收集。師生經過我校企業微信服務大廳訪問該系統進行遠程信息填報。
參考文獻:
1.中國抗擊新型冠狀病毒:進展和影響[EB/OL].(2020-02-01)/[2020-03-04]. http://cn.chinadaily.com.cn/a/202002/01/WS5e358d1fa3107bb6b579c92b.html
#####《西北師範大學學生疫情上報系統》的用戶需求:
  爲配合防控機構採集疫情信息,對學校各種人員的基本狀況、所在區域及活動軌跡及健康情況進行收集,開發此疫情上報系統。用戶的需求以下:
  管理員可以登錄系統,對普通用戶的信息進行增刪查等功能,能夠查看與疫情相關的信息生成的柱狀圖。

####二、功能設計 #####項目開發要求:html

  • 第一類開發要求:   有一個數據文件,保存了100天2000個教職工/學生的全部防疫信息,請設計一個命令行程序, 支持查詢某人在某一天的疫情狀況,查詢某種數據的周/月的疫情統計狀況,並用柱狀圖顯示統計結果。
  • 第二類開發要求:   一、系統可採集學生疫情有效信息;   二、系統支持用戶在線使用;   三、每日只可填報一次,提交後沒法修改,每日十點疫情信息填報截止;   四、各學院指定負責人登陸系統,可查看本學院學生填報的彙總數據,可點擊查看學生聯繫方式、班主任聯繫方式,學院負責人覈實本院全部學生數據後,將數據提交給學校防控辦;   五、學校防控辦指定負責人登陸《西北師範大學疫情防控信息統計》子系統,可瀏覽全部學生填報彙總數據清單,經過【導出】可獲取疫情數據的EXCEL文件。
  • 個人選擇: <span style="color:red">第一類開發</span>

#####基本功能:java

  • 存儲學校中學生/教職工的基本信息、所在區域、每日的健康狀況;
  • 查詢某人在某一天的疫情狀況;
  • 查詢某種數據的周/月的疫情統計狀況,並用柱狀圖顯示統計結果。

#####擴展功能:git

  • 管理員能夠登陸系統;
  • 管理員能夠添加用戶信息;
  • 管理員能夠刪除用戶信息。

####三、設計實現github

  • 數據存儲: 以前想的是讀入一個「.txt」的數據文件,後來仔細考慮以後,以爲用數據庫來存儲更好一點,以便後期對項目進行改進。 本項目用到了兩張表:
    • manager(uid,uname,upass,type)其中,uid是管理員的工號,uname是管理員的登陸名,upass是管理員的登陸密碼,type是登陸權限,type=1表示是管理員,type=2則表示普通用戶登陸。

  • user(academy,grade,date,name,phone,province,city,region,IsReturn,IsSuspect,IsInfect)其中,academy表示的是用戶所在學院,grade爲用戶所在年級,且grade能夠爲空,爲空時user表可用來表示職工信息,date表示用戶的上報日期,name表示用戶的姓名,phone表示用戶的聯繫電話,province表示用戶所在省,city表示用戶所在市,region表示用戶所在區,IsReturn表示用戶是否返校,IsSuspect表示用戶是否有疑似症狀,IsInfect表示用戶是否確診。

  • 項目程序的設計 項目用到了五個包:
    • com.tjl.bean 用戶類 該包用來封裝用戶類,有兩個類:User.java和Manager.java。
    • com.tjl.controller 控制層 該包中有Control.java,該類中有系統的入口,控制業務邏輯。
    • com.tjl.dao 對數據庫訪問的實現類 ManagerDao.java這個接口來實現管理員的增刪查等操做。 ManagerDao_Imp.java是ManagerDao.java這個接口的實現類。 Selectbar.java用來實現柱狀圖。
    • com.tjl.jdbc 數據庫鏈接 JDBCUtils.java這個類用於JDBC工具類的封裝,鏈接、釋放數據庫資源。
    • com.tjl.view 視圖包 View.java包含各種視圖菜單。 此外,我用瞭如下函數:
    • managerMenuView()函數:管理員菜單視圖
    • addMenuView()函數:管理員添加普通用戶信息
    • deleteMenuView()函數:管理員刪除普通用戶信息
    • selectMenuView()函數:查看用戶的信息
    • barMenuView()函數:查看疫情狀況生成的柱狀圖

####四、測試運行 #####基本功能sql

  • 查詢功能:
    • 按照學院進行查詢

  • 按照所在地查詢

  • 按照是否有疑似症狀查詢

  • 按照是否返校查詢

  • 查看確診人員的柱狀圖

  • 查看所在地是武漢的柱狀圖

  • 查看各個學院某一天的確診狀況 數據庫

  • 查看某個學院某周的確診狀況柱狀圖,下圖是查詢的計工院的 編程

#####擴展功能:微信

  • 管理員登陸系統:

  • 管理員添加用戶信息

  • 管理員能夠刪除用戶信息。

####五、代碼展現網絡

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils {
	private static String driver;
	private static String url;
	private static String username;
	private static String password;
	// 靜態語句塊
	static {
		InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
//		建立Property類型的對象
		Properties p = new Properties();
//		加載流文件
		try {
			p.load(is);
			driver = p.getProperty("driver");
			url = p.getProperty("url");
			username = p.getProperty("username");
			password = p.getProperty("password");
			// 加載Mysql驅動
			Class.forName(driver);
//			System.out.println("驅動加載成功");
		} catch (Exception e) {
			// TODO 自動生成的 catch 塊
			e.printStackTrace();
		}

	}

//	得到鏈接對象的方法
	public static Connection getConnection() {
		try {
//			System.out.println("數據庫鏈接成功");
			return DriverManager.getConnection(url, username, password);
		} catch (SQLException e) {
			// TODO 自動生成的 catch 塊
			e.printStackTrace();
			System.out.println("數據庫鏈接失敗");
		}
		return null;
	}

//	釋放資源的方法
	public static void close(Connection con, Statement st, ResultSet rs) {
		try {
			if (rs != null) {
				rs.close();
				rs = null;
			}
			if (st != null) {
				st.close();
				st = null;
			}
			if (con != null) {
				con.close();
				con = null;
			}
		} catch (SQLException e) {
			// TODO 自動生成的 catch 塊
			e.printStackTrace();
		}
	}
}

  之因此展現數據庫鏈接部分的代碼,是由於我以爲這個方法雖然簡單,可是在沒有掌握以前實現起來仍是有必定困難的。模塊化

####六、總結   我編寫的代碼封裝成了不一樣的包,每一個包負責一部分,一個類實現一個特定的功能。經過Control.java來調用其餘相應的函數來實現整個項目的功能。每一個包中有不一樣的模塊來是想相應的功能,實現了簡單的模塊化功能,可是程序稍微有點問題,在查看柱狀圖的時候,須要調用兩次,柱狀圖纔會顯示出來,在後期,我會改進這些問題。

####七、展現PSP ||||| |:--|:--|:--|:--| |PSP2.1|任務內容|計劃共完成須要的時間(min)|實際完成須要的時間(min)| |Planning|計劃|8|7| |·Estimate|· 估計這個任務須要多少時間,並規劃大體工做步驟|8|7| |Development|開發|480|2880| |·· Analysis|需求分析 (包括學習新技術)|30|35| |·Design Spec|生成設計文檔|5|30| |·Design Review| 設計複審 (和同事審覈設計文檔)|0|0| |·Coding Standard|代碼規範 (爲目前的開發制定合適的規範)|10|10| |·Design|具體設計|300|450| |·Coding|具體編碼|600|2700| |·Code Review|代碼複審|60|120| |·Test|測試(自我測試,修改代碼,提交修改)|30|60| |Reporting|報告|60|100| |··Test Report|測試報告|50|110| |·Size Measurement|計算工做量|5|7| |·Postmortem & Process Improvement Plan|過後總結 ,並提出過程改進計劃|8|20|

###2、經驗分享:   經過作項目發現本身有好多的問題,很久不寫代碼了,有點生疏,關於java編程的好多東西都忘了,就連一些快捷鍵也忘得差很少了,相信好多人跟我有同樣的感覺。在本次的項目中,我也學習到了不少知識,重溫了java編程,也學會了生成柱狀圖的方法。感受仍是作項目的經驗太少了,以致於在寫程序的時候花費了大量的時間。在本次作項目的時候發現了本身的編程能力仍是很弱的,瞭解的技術方法也不多,在從此的學習中,須要花費大量的時間去嘗試作一些項目,我還學到一個不錯的方法,就是咱們在寫程序的時候,能夠給每一個方法寫一個測試類,這樣就便於項目的檢查了。動動腦子,動動手,仍是收穫很大的。能力不足的時候不能退縮,要用於迎難而上。遇到不會的就要不斷的學習去解決而不是把問題放着。

相關文章
相關標籤/搜索