我的畢業設計就叫畢業設計管理系統的設計與實現,哈哈
目錄
1.摘要
畢業設計是本科教育的最後一個環節,整個過程包括課題擬定與審覈、師生雙選、開題報告、文檔審覈、中期檢查、畢業答辯等多個環節,是一項系統而複雜的工作。開發一個適合本校的畢業設計管理系統,不僅能夠極大地減少教務管理人員的工作量,還能較大地提高學生和教師的效率。本系統採用B/S模式,主要開發工具爲Eclipse(Oxygen.1a Release),用到的編程語言有Java、JavaScript和JSP,數據庫採用MySQL 5.7,服務器則用的Apache Tomcat 9.0。前端頁面的編寫基於bootstrap,整個項目基於SSM框架。
2.需求分析
系統的組織架構如圖所示,三種用戶根據自己不同的權限對課題、文檔、成績、公告、任務五種數據信息進行處理,不同用戶角色再根據這些數據信息進行交互通過課題進行交互,並且圍繞着文檔進行數據的傳遞和處理等。
系統的功能模塊如圖所示,每個模塊各有幾個子功能模塊。
本系統包含三種用戶:學生、教師和管理員。通過本系統,學生可以獲取指導教師和管理員發佈的相關教學信息和教學資源;教師可以進行畢設進度的日常管理,發佈任務、上傳資料、審覈文檔等;管理員可以進行系統的管理和維護,並對教師、學生、課題和文檔進行管理,確保系統的正常運行。系統總共分爲3個模塊:
1.學生模塊
學生登錄系統後進入該模塊,在該模塊中,學生能夠修改個人資料和登錄密碼,選擇感興趣的課題及導師,下載導師上傳的相關參考資料,上傳自己已經完成的文檔,查看發佈的公告、任務和自己的階段成績等。
2.教師模塊
教師登錄系統後進入該模塊,在該模塊中,教師能夠修改個人資料和登錄密碼,選擇學生,上傳擬好的課題題目給管理員審覈,發佈階段任務,上傳相關資料給學生參考,下載學生上傳的階段文檔並審覈和打分,查看公告及發佈新公告等。
3.管理員模塊
管理員登錄系統後進入該模塊,在該模塊中,管理員可以增刪查改導師和學生的信息,審覈教師上傳的課題,發佈公告,查看各種信息,查看各種數據分析的結果和圖表。
3.數據庫設計
數據分析:
本系統的主要數據表爲存儲學生、教師、文檔、課題數據集的四個表。其餘表大多作爲外鍵關聯用於完善四張表的信息。
概念設計:
數據庫主要圍繞學生、教師、 課題、文檔4個實體進行數據處理。即系統只要處理好這4個實體的數據,就可以完成系統的絕大部分功能並讓畢業設計管理的整個流程順利進行下去。其餘的數據表則是圍繞這4個實體相應展開,進行一些擴展和補充,以完善整個數據庫的結構並加快數據庫對請求的響應速度。
重要E-R圖:
數據庫文檔處理的E-R如圖所示
數據庫文檔處理的E-R如圖所示。
表列表:
數據庫中一共設計了15張表,和學生相關的表有6張(包括學生信息、開題報告、文檔成績、畢設進度、學生疑問等),和教師相關的表有4張(包括教師信息、任務書、階段任務、課題申報等),文檔有1張表,課題涉及2張表,還有2張表屬於公共信息表,用於進行一些補充以完善數據庫。數據庫的表清單如下表。
序號 |
物理表名 |
中文名稱 |
1 |
t_announcement |
公告表 |
2 |
t_department |
學院表 |
3 |
t_doubt |
疑問表 |
4 |
t_major |
專業表 |
5 |
t_student |
學生表 |
6 |
t_student_opening_report_task_book |
學生開題報告表 |
7 |
t_student_progress |
學生進度通知填寫表 |
8 |
t_student_score |
學生成績表 |
9 |
t_teacher |
教師表 |
10 |
t_teacher_opening_report_task_book |
教師開題報告表 |
11 |
t_teacher_progress_notification |
教師階段任務表 |
12 |
t_thesis_information |
文檔提交表 |
13 |
t_thesis_title |
教師提交課題表 |
14 |
t_topic |
選題信息表 |
15 |
t_user |
用戶表 |
數據字典:
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
context |
公告內容 |
varchar |
否 |
否 |
|
3 |
inputMan |
發佈人 |
varchar |
否 |
否 |
|
4 |
lastModifyTime |
上次修改時間 |
datetime |
否 |
否 |
|
疑問表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
studentId |
學生id |
int |
否 |
是 |
是 |
3 |
studentDoubt |
學生疑問 |
varchar |
否 |
否 |
|
4 |
answer |
疑問解答 |
varchar |
否 |
否 |
|
學生表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
studentNo |
學生學號 |
varchar |
否 |
否 |
|
3 |
studentName |
學生姓名 |
varchar |
否 |
否 |
|
4 |
sex |
性別 |
varchar |
否 |
否 |
|
5 |
majorId |
專業id |
int |
否 |
是 |
是 |
6 |
grade |
年級 |
varchar |
否 |
否 |
|
7 |
inputMan |
錄入人 |
varchar |
否 |
否 |
|
8 |
lastModifyTime |
上次修改時間 |
datetime |
否 |
否 |
|
9 |
phone |
電話 |
varchar |
否 |
否 |
|
學生開題報告表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
|
1 |
id |
|
int |
是 |
是 |
|
|
2 |
studentId |
學生id |
int |
否 |
是 |
是 |
|
3 |
OpenResport |
學生開題報告 |
varchar |
否 |
否 |
|
|
4 |
TaskBook |
學生任務書 |
varchar |
否 |
否 |
|
|
5 |
description |
描述 |
varchar |
否 |
否 |
|
|
6 |
completion |
完成情況 |
int |
否 |
否 |
|
|
學生成績表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
studentId |
學生id |
int |
否 |
是 |
是 |
3 |
thesisResult |
分數結果 |
int |
否 |
否 |
|
4 |
inputMan |
打分人 |
varchar |
否 |
否 |
|
5 |
rank |
分數等級 |
char |
否 |
否 |
|
6 |
status |
狀態 |
int |
否 |
否 |
|
7 |
condition |
審覈資格 |
int |
否 |
否 |
|
導師表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
teacherNo |
教師編號 |
varchar |
否 |
否 |
|
3 |
teacherName |
教師姓名 |
varchar |
否 |
否 |
|
4 |
departmentId |
所屬學院id |
int |
否 |
是 |
是 |
5 |
sex |
性別 |
varchar |
否 |
否 |
|
6 |
inputMan |
錄入人 |
varchar |
否 |
否 |
|
7 |
lastModifyTime |
上次修改時間 |
datetime |
否 |
否 |
|
8 |
phone |
電話 |
varchar |
否 |
否 |
|
教師開題報告表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
teacherId |
教師id |
varchar |
否 |
是 |
是 |
3 |
openingReport |
開題報告 |
varchar |
否 |
否 |
|
4 |
taskBook |
任務書 |
datetime |
否 |
否 |
|
5 |
description |
描述 |
|
否 |
否 |
|
6 |
thesisTitleId |
課題id |
|
否 |
是 |
是 |
教師階段任務表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
context |
任務內容 |
varchar |
否 |
否 |
|
3 |
inputMan |
發佈人 |
varchar |
否 |
否 |
|
4 |
inputTime |
發佈時間 |
datetime |
否 |
否 |
|
5 |
studentId |
學生id |
int |
否 |
是 |
是 |
6 |
teacherId |
教師id |
int |
否 |
是 |
是 |
7 |
state |
狀態 |
int |
否 |
否 |
|
8 |
time |
任務時間 |
int |
否 |
否 |
|
文檔提交表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
studentId |
學生id |
int |
否 |
是 |
是 |
3 |
thesisText |
文檔信息 |
varchar |
否 |
否 |
|
4 |
status |
文檔狀態 |
int |
否 |
否 |
|
5 |
description |
描述 |
varchar |
否 |
否 |
|
選題信息表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
thesisName |
課題名稱 |
varchar |
否 |
否 |
|
3 |
teacherId |
教師id |
int |
否 |
是 |
是 |
4 |
submitTime |
提交時間 |
datetime |
否 |
否 |
|
5 |
status |
狀態 |
int |
否 |
否 |
|
6 |
inputMan |
提交人 |
varchar |
否 |
否 |
|
7 |
description |
課題描述 |
varchar |
否 |
否 |
|
學院表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
departmentName |
學院名稱 |
varchar |
否 |
否 |
|
3 |
description |
學院描述 |
varchar |
否 |
否 |
|
專業表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
majorName |
專業名稱 |
varchar |
否 |
否 |
|
3 |
departmentId |
所屬學院id |
int |
否 |
是 |
是 |
4 |
description |
專業描述 |
varchar |
否 |
否 |
|
學生進度通知填寫表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
progressId |
階段id |
int |
否 |
是 |
是 |
3 |
context |
階段任務內容 |
varchar |
否 |
否 |
|
教師提交課題表
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
thesisName |
課題名稱 |
varchar |
否 |
否 |
|
3 |
teacherId |
教師id |
int |
否 |
是 |
是 |
4 |
submitTime |
提交時間 |
datetime |
否 |
否 |
|
5 |
status |
狀態 |
int |
否 |
否 |
|
6 |
inputMan |
提交人 |
varchar |
否 |
否 |
|
7 |
description |
課題描述 |
varchar |
否 |
否 |
|
序號 |
列名 |
中文名稱 |
數據類型 |
主鍵 |
非空 |
外鍵 |
1 |
id |
|
int |
是 |
是 |
|
2 |
userNo |
用戶賬號 |
varchar |
否 |
否 |
|
3 |
password |
密碼 |
int |
否 |
否 |
|
4 |
permission |
用戶權限 |
char(1) |
否 |
否 |
|
4.功能模塊的設計與實現
本系統依據學生、導師、管理員三種不同用戶角色的需求,分爲了三個大的功能模塊,三種用戶角色在各自的模塊進行操作,可以通過課題進行與其他兩種用戶角色之間的交互,並且圍繞着文檔進行各種數據(用戶信息、文檔信息、課題信息)的傳遞和處理等,這就形成了系統的體系結構,管理員發佈課題給學生,學生選擇課題呈現給導師,導師自擬課題向管理員申報,如圖所示。
同時三種用戶可對五種數據信息進行不同的處理(增刪查改的權限不同),表現在系統上就是擁有不同的功能模塊,所以分爲三個大的模塊,每個模塊有相應的小的功能模塊,系統的功能結構如圖。
5.項目截圖
學生模塊部分頁面
教師模塊部分頁面
管理員模塊部分頁面
6.項目源碼
項目源碼已上傳,https://download.csdn.net/download/ace_2/11818569
下載好像需要積分,需要源碼的可以關注公衆號“編程江湖”,回覆“畢業設計管理系統”領取源碼。
也提供CSDN其他資源的下載服務。
後續會放到github上
這是我大學寫的,現在看來好多地方比較糙,還有些小問題。不過編程思想是體現出來了的,邏輯也比較清晰,學生看還是沒啥問題的。有問題可以找我交流哦。
截圖: