【正文】
archar 255 消息內(nèi)容 Msgform Varchar 255 發(fā)件人 ID Msgtitle Varchar 255 消息主題 Msgto Varchar 255 收件人 ID Sendtime Datetime 0 發(fā)送時(shí)間 ⑦ 文件信息 文件表( File)用于存儲(chǔ)用戶上傳的附件信息,字段包括:文件引用記錄 ID、文件組、上傳者 ID、類別、上傳時(shí)間、在服務(wù)器上的名稱、文件名稱等。 表 Bulletin表結(jié)構(gòu) 列名 類型 長度 約束 備注 Id Int 11 主鍵,自增 自動(dòng) ID Title Varchar 100 非空 公告主題 Content Varchar 20200 公告內(nèi)容 Date DateTime 發(fā)布時(shí)間 Click Int 11 點(diǎn)擊次數(shù) Filegroup Varchar 30 通知附件 ⑥ 站內(nèi)信消息 站內(nèi)通信消息表 (Message)存儲(chǔ)了教師與選課學(xué)生之間的交流信息,主要字段包括:消息 ID、消息內(nèi)容,是否已讀,發(fā)件人 ID,收件人 ID 和發(fā)送時(shí)間信息。 表 Topic 表結(jié)構(gòu) 列名 類型 長度 約束 備注 Id Int 11 主鍵,自增 自動(dòng) ID Tid Int 11 非空,外鍵() 出題教師 ID Title Varchar 100 畢業(yè)設(shè)計(jì)題目 Selected Bit 1 是否已被選 Year Int 11 當(dāng)前學(xué)生界數(shù),本屆是 2020 fileGroup Varchar 30 參考資料文件組 表 SelectedTopic 表結(jié)構(gòu) 列名 類型 長度 約束 備注 Id Int 11 主鍵,自增 自動(dòng) ID StuID Varchar 13 非空,外鍵 () 選題學(xué)生的 ID TopicID Int 11 非空,外鍵 () 所選題目 Tid Int 11 非空,外鍵 () 開題教師 ID selYear Int 11 選題屆 Finaltitle Varchar 100 學(xué)生最終確定題目 TScore Int 11 教師評分 GScore Int 11 答辯小組評分 ⑤ 公告 公告表( Bulletin)用于存儲(chǔ)教務(wù)員所發(fā)布的公告的信息,主要存儲(chǔ)的字段包括:公告的 ID、內(nèi)容和發(fā)布的時(shí)間、被點(diǎn)擊次數(shù)、用于提供下載的附件等。 選題表( SelectedTopic)用于存儲(chǔ)學(xué)生已選的題目的信息,主要字段包括:學(xué)生學(xué)號(hào),題目的 ID,出題教師 ID,選題學(xué)生屆數(shù),學(xué)生最終確定的題目和答辯小組評分和教師評分。題目表中字段包括:論文題目,出題教師 ID,論文對應(yīng)屆數(shù),是否被選以及參考資料 對應(yīng)的文件組。 表 User 表結(jié)構(gòu) 列名 類型 長度 約束 備注 Userid Varchar 20 主鍵 用戶 ID Username Varchar 20 非空 用戶名字 Password Varchar 32 非空 密碼 Type Varchar 20 非空 類型 _grant Bit 1 非空 是否能授權(quán) Enable Bit 1 非空 是否可用 lastLoginTime Datetime 0 最后登錄時(shí)間 lastLoginAddress Varchar 30 最后登陸 IP 地址 lastLogoutTime Datetime 0 最后登出時(shí)間 表 role 表結(jié)構(gòu) 列名 類型 長度 約束 備注 Id Int 11 主鍵 自增主鍵 Rolename Varchar 20 非空 角色名稱 _desc Varchar 50 角色描述 Level Int 2 非空 角色級別 表 Userrole 表結(jié)構(gòu) 列名 類型 長度 約束 備注 Id Int 11 主鍵 Userid Varchar 20 外鍵 () 用戶 ID Roleid Int 11 外鍵 () ④ 畢業(yè)設(shè)計(jì)題目及論文選題 題目表( Topic)用于存儲(chǔ)教師提供的所有可選題目。表結(jié)構(gòu)參見表 。表結(jié)構(gòu)參見表 。表結(jié)構(gòu)參見表 。 ③ 用戶信息存儲(chǔ) 用戶表主要包括用戶 Id、用戶名稱、密碼、類型、最后登錄時(shí)間等字段。 教師表( Teacher)用于存儲(chǔ)出題教師的號(hào)碼、姓名、性別等身份信息,表結(jié)構(gòu)參見表 。 (2) 數(shù)據(jù)庫表設(shè)計(jì) ① 學(xué)生和教師的信息 表 Student 表結(jié)構(gòu) 列名 類型 長度 約束 備注 Id Varchar 13 主鍵 學(xué)號(hào) Grade Int 11 非空 年級,如 2020 : U se rS t ru t s 2 A ct i o nS e cu ri t yI n t e rc e p t o r1 : re q u e st () 1 . 1 : i n t e rc e p t ()1 . 1 . 1 : i n vo ke () Name Varchar 10 學(xué)生姓名 Sex Varchar 1 男,女 MajorID Int 11 外鍵 () 專業(yè)號(hào) ClassID Varchar 20 外鍵 () 班級號(hào) Email Varchar 30 Phone Varchar 20 MinorID Int 11 外鍵 () 表 Teacher 表結(jié)構(gòu) 列名 類型 長度 約束 備注 Id Int 11 主鍵 教師號(hào) Name Varchar 10 教師姓名 Sex Varchar 1 男,女 MajorID Int 11 外鍵 () 專業(yè)號(hào) Desc_ Varchar 202000 Email Varchar 30 Phone Varchar 20 學(xué)生表( Student)用于存儲(chǔ)學(xué)生的學(xué)號(hào)、年級、姓名、性別、專業(yè)代碼、班級代碼、郵箱地址、電話號(hào)碼等相關(guān)身份信息,表結(jié)構(gòu)參見表 。 (1) 數(shù)據(jù)庫系統(tǒng) MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典 MySQL AB 公司開發(fā),目前屬于Oracle公司。設(shè)計(jì)優(yōu)良的數(shù)據(jù)庫對于系統(tǒng)的運(yùn)行效率有著極大的提高。 SecurityAdmin工作流程如圖 所示。當(dāng)執(zhí)行方法時(shí),攔截器會(huì)獲取 action類中相關(guān)方法的注解,由此可以判斷當(dāng)前用戶是否有權(quán)限執(zhí)行該方法。該類放在 。主要通過自定義的攔截器 SecurityAdmin 完成。登陸之后,用戶可以修改個(gè)人的一些非關(guān)鍵信息,如 地址,同時(shí),用戶可重置密碼,重置密碼的操作,也將由 UserAction操作。該類主要方法如表 所述。為減少服務(wù)器的開銷,當(dāng)初始運(yùn)行系統(tǒng)時(shí),我們通過公共類讀取文件中的參數(shù)。 表 ChooseTopicAction類主要方法描述 方法名 參數(shù) 返回值 功能描述 Input 無 String, Struts 2 的 result 名稱 為學(xué)生分頁顯示題目列表 list 無 String, Struts 2 的 result 名稱 獲取并顯示題目的參考資料列表 choose 無 String, Struts 2 的 result 名稱 判斷題目是否可選并完成選題 cancel 無 String, Struts 2 的 result 名稱 學(xué)生取消選題 myTopic 無 String, Struts 2 的 result 名稱 學(xué)生查看自己的選題 : 學(xué)生 : 教師 : T o p i c : Se l e ct e d Su b j e ct : O p e n i n g re p o rt1 : C re a t e ()2 : L i st ()3 : Se l e ct Su b j e ct ()3 . 1 : C re a t e ()3 . 2 : C h a n g e St a t u s( )4 : L i st ()5 : L i st () 業(yè)務(wù)邏輯類 TopicService 的主要方法描述如表 所示。 圖 學(xué)生選題過程 其中 ChooseTopicAction主要的方法包括: input()、 list ()、 choose ()、 cancel ()、myTopic()五個(gè)方法。 圖 出題教師添加畢業(yè)設(shè)計(jì)題目時(shí)序圖 教師在出題完畢之后,學(xué)生可以進(jìn)行選題操作。上傳題目時(shí)會(huì)上傳題目的參考資料,在邏輯處理層 TopicService 中,進(jìn)入另外一條處理通道,調(diào)用文件處理服務(wù),將文檔保存在服 務(wù)器上。除此之 外,一些公用的如加密解密的工具類,則放在 的包中。 圖 部分實(shí)體類關(guān)系 (2) 業(yè)務(wù)類 根據(jù) Action、 service、 DAO 三層分類的不同,我們將業(yè)務(wù)代碼主要分為三類,用于接收用戶業(yè)務(wù)請求的代碼屬于 Action類,主要放在 。 Entity類 (實(shí)體類 )放于 包內(nèi)。系統(tǒng)中主要的實(shí)體類有:用戶( User)、所有題目( Topic)、學(xué)生( Student)、教師( Teacher)、院系( Department)、角色( Role)、專業(yè)( Major)、開題報(bào)告( OpeningReport)、已選題目( SelectedTopic)、論文( Paper)。 類設(shè)計(jì) 本系統(tǒng)主要分 Entity類 (實(shí)體類 )和 Bean類(業(yè)務(wù)管理類)兩部分。 教師管理界面: 圖 教師管理界面 教務(wù)員在此界面中,對教師信息進(jìn)行操作,包括: 通過教師 ID、姓名、專業(yè)進(jìn)行模糊查詢; 點(diǎn)擊“修改”鏈接,進(jìn)入教師信息修改頁面對教師信息進(jìn)行修改; 點(diǎn)擊“刪除”鏈接,將該條教師的信息刪除; 點(diǎn)擊“添加新教師”鏈接,進(jìn)入教師新增頁面,新增一條教師信息。 教務(wù)員發(fā)布通知頁面: 圖 教務(wù)員發(fā)布通知 教務(wù)員在此 頁面進(jìn)行通知的編輯和發(fā)布,同時(shí)也可以在通知中添加附件。 教師查看開題報(bào)告界面: 圖 教師出題界面 出題教師可以在此頁面點(diǎn)擊“開題報(bào)告”對選題學(xué)生的開題報(bào)告進(jìn)行瀏覽,并提出整改意見。此日期范圍由教務(wù)員修改。 教師出題界面: 圖 教師出題界面 教師登錄后,可以在出題時(shí)間段內(nèi)進(jìn)行出題操作,出題時(shí)可以同時(shí)上傳題目的參考文檔,為保證系統(tǒng)效率,文檔大小必須小于 5M,如果文件過多,則必須打成壓縮包上傳。 分頁欄可以動(dòng)態(tài)設(shè)置每一頁顯示的數(shù)據(jù)條數(shù)。 學(xué)生選題時(shí),點(diǎn)擊“選中”標(biāo)志,再點(diǎn)擊“選題”按鈕,進(jìn)行選題操作。 點(diǎn)擊參考資料的下載鏈接,可以下載該題目的參考資料。教師在“題目管理”模塊可以進(jìn)行“添加題目”、查看“我的題目”、“ 預(yù)置學(xué)生”的操作;學(xué)生在“題目管理”模塊可以進(jìn)行“選擇題目”和查看“已選題目”操作;教務(wù)員擁有“教務(wù)員專區(qū)”模塊,可以進(jìn)行系統(tǒng)參數(shù)配置,教師及學(xué)生信息維護(hù)管理,通知的發(fā)布等。系統(tǒng)界面如圖 所示。 系統(tǒng)的界面設(shè)計(jì) ( 1)未登錄時(shí)主頁面: 系統(tǒng)主要分為三個(gè)區(qū)域。 查看通知:用戶無需登錄可以看到通知的列表。 ④ 系統(tǒng)通知 發(fā)布通知:管理員可以發(fā)布新通知,在通知管理頁面。 ③ 管理功能 教師添加題目 學(xué)生瀏覽題目 選題 是否可選? 添加選題記錄 是 否 更改題目狀態(tài) 添加開題報(bào)告記錄 選題完成 更改個(gè)人信息:登錄用戶可以更改自己的性別、手機(jī)號(hào)、郵箱和用戶密碼。 圖 選題過程 ② 站內(nèi)通信 發(fā)送消息:站內(nèi)信用于教師和學(xué)生之間互相溝通,在用戶登陸之后,老師和學(xué)生可以看見對方發(fā)過來的站內(nèi)信。 只有全部符合,才可進(jìn)行接下來的操作: 添加新的選題記錄; 更改題目的被選擇狀態(tài); 添加開題報(bào)告 發(fā)送郵件。 學(xué)生可以刪除自己已選擇的題目 。 數(shù)據(jù)庫 Web 瀏 覽器 Action 層 (處理 web 數(shù)據(jù) ) Service 層(業(yè)務(wù)邏輯) DAO 層(訪問數(shù)據(jù)庫) 數(shù)據(jù)返回 訪問數(shù)據(jù)庫 返回請求 web 請求 Web 服務(wù)器 JSP 頁面(顯示信息) 圖 系統(tǒng)主要功能 學(xué)生瀏覽題目:學(xué)生在頁面中查看所有本專業(yè)老師的已出題目。 查看題目:查看自己所出的所以題目及學(xué)生的選題情況。 系統(tǒng)功能如圖 所示。 系統(tǒng)結(jié)構(gòu)如圖 所示。用戶在頁面上的操作傳到服務(wù)器上,由 Struts2 的過濾器截獲并解析,查詢到對應(yīng)的處理 Action,在 Action 中,調(diào)用對應(yīng)的業(yè)務(wù)邏輯處理,即由Service 層提供處理的業(yè)務(wù)。 為了使系統(tǒng)更靈活,我們采用 MVC 的三層結(jié)構(gòu)設(shè)計(jì)思路,將界面、業(yè)務(wù)和數(shù)據(jù)相互分離,降低了系統(tǒng)的耦合性。既方便了用戶的使用,也有利于后期的維護(hù)。 系統(tǒng)總設(shè)計(jì) 主要描述本系統(tǒng)采用的技術(shù)架構(gòu)和所需要實(shí)現(xiàn)的功能。 圖 通知發(fā)布功能用例圖 系統(tǒng)設(shè)計(jì) 在了解和獲取了