1 功能要求
- 添加學生功能:姓名、學號、性別、年齡,學號自動生成且學號唯一。
- 添加學生成績功能:假設每個人都選修了數學、Java與體育。但輸入成績的時候,一般是給所有學生輸入某一門課程的成績。
- 根據學生學號查找學生成績,並在界面上顯示姓名、學號和成績,學號不存在的給出提示信息。
- 根據學生姓名(支持模糊匹配)查找學生成績,並在界面上顯示姓名、學號和成績,如果有多個相同姓名學生存在,一起顯示出來,姓名不存在的給出提示信息。
- 生成學生學習情況報表:報表包含學號、姓名、各科目成績及對應的該科目班級平均值,總成績以及班級總成績平均值。最后以總成績平均值降序在圖形界面輸出,並可將該排序結果按照輸出至"成績表.txt"文件或者excel文件(輸出到Excel文件為特別加分項,可以使用POI技術)。
- 支持分別對所有學生各科成績畫出柱狀分布圖(可選)。
- 支持對學生信息的修改與刪除(要在文件或數據庫中有所體現),不能修改學號。
- 測試:支持隨機生成10萬個學生及其姓名、學號、成績放入文本文件,以進行測試。(學號不能相同,每顆的成績以80分為中心成正態分本)。
- 支持用戶登錄、驗證操作。
2 團隊名稱、團隊成員介紹、任務分配,團隊成員課程設計博客鏈接(以表格形式呈現),標明組長。
團隊成員 | 學號 | 任務分配 |
---|---|---|
李悅(組長) | 201921123002 | 數據庫和數據表的建立和管理,dao模式,測試代碼 |
農艷潔 | 201921123005 | GUI界面設計,代碼整合 |
孫瑋羚 | 201921123006 | poi技術導出數據生成excel文件,JFreeChart導出柱狀圖,打包成exe可執行文件 |
3 本項目的git地址。
4 項目git提交記錄截圖(要體現出每個人的提交記錄及提交說明)。
5 項目功能架構圖、主要功能流程圖
項目功能架構圖
6 面向對象設計包圖、類圖。如果類太多,可僅列出主要類。
7 項目運行截圖或屏幕錄制
開始運行
教師登錄
查看學生信息
添加
刪除
查找
修改
導出柱狀圖
導出Excel
8 項目關鍵代碼分模塊描述。
8.1 poi技術生成excel文件
從數據庫中提取出各班的數據,放入集合,進行統計,然后生成excel文件
8.2 生成條形圖
JFreeChart建立數據源集合后將所需展示信息統計后進行添加展示
8.3 查找學生信息(模糊查找)
數據庫中提供了模糊查詢語句,select語句中添加like,%可表示任意字符,'like % X%'會查詢出所有所有攜帶X的記錄;
8.4 如何自動生成學號
Student類在第一次被調用的時候,就執行查找數據庫中最大的學號,然后保存到學生類的靜態屬性nextId中。每次調用Student的無參構造方法生成一個學生時,就自動將nextId學號分配給stuId,然后nextId自增,達到自動生成學號的目的。
8.5 測試代碼
調用random的nextGaussian()方法,結合公式Math.sqrt(10)*r.nextGaussian()+80,生成以80為均值的正態分布隨機數,實現成績隨機生成。
9 項目代碼掃描結果及改正。
覆寫方法沒有用@Override注釋:
修改:
10 項目總結(包括不足與展望、想要進一步完成的任務)
本次課程設計對我們而言是一次非常難忘的經歷,雖然其過程非常的痛苦與煎熬,但是經過小組所有成員的共同努力及互相幫助下,這次大作業總算基本完成了。本次課設存在的不足還有很多,比如圖形界面設計的界面切換還不是很流暢,每個界面的寬高不一致;對於學生成績管理系統來說,我們實現的功能還不算多,只是基本完成了要求的功能,並沒有增加功能。總體來說,本次課程設計給我們的收獲很多,不僅讓我們更深刻認識到團隊合作的重要性,也提高了我們的思考能力,讓我們以后會懂得去思考問題,解決問題。