彭仁松
(武漢船舶職業技術學院,湖北 武漢 430050)
信息技術的普及和應用使人們的生活方式發生了重大的改變,高校作為科研和教育的前沿地帶,同樣推動著各種網絡應用和信息管理系統的發展。如學生因頂崗實習離校而無法回學校參加畢業設計選題,上交實習報告等煩瑣的操作。在此背景下,本系統可以實現畢業設計選題,審核,信息管理等網絡化,減少管理員和教師的工作量,提高工作效率和效果。通過對基于B/S的畢業設計信息管理系統設計的分析,介紹系統的管理員用戶角色的詳細用例,系統功能模塊的設計和開發。
系統采用JSP技術,在服務器端應用數據庫、業務邏輯、用戶界面相互獨立的三層體系結構,在JBuilder界面下編寫和編譯了系統需要應用的類和方法,本系統應用MySQL作為數據庫系統來建立和維護系統中需要應用的數據庫對象。在向數據庫項插入人員信息時,可以使用MySQL自帶的password()函數對密碼屬性進行加密,以實現安全設置。
本系統總體可以分為三大部分:管理員子系統、教師子系統、學生子系統。分別面向管理員、教師、學生,其系統總體結構如圖1所示。

圖1 系統總體結構圖
管理員子系統主要負責為管理員提供一個管理畢業設計及相關教師學生信息的平臺,包括人員管理,題目審核等等。教師子系統為教師提交畢業設計題目,查看畢業設計選題信息提供服務,學生子系統則為選擇畢業設計提供服務。
本系統設計中用戶角色共有:教師、學生、管理員三種角色。具體描述如下:教師角色(teacher),其角色職責為申報課題、修改課題、檢查學生任務;學生角色(student),其角色職責為選擇畢業設計、提交階段成果;管理員(administrator),其角色職責為添加教師和學生用戶、審核畢設題目等。根據系統各角色設計出各子系統功能模塊結構如圖2所示。

圖2 畢業設計信息管理系統功能圖
本系統采用MySQL數據庫作為底層數據庫的開發和管理工具,在MySQL服務器中建立了GDMSDB數據庫來管理系統中需要應用的數據資源。GDMSDB數據庫中共建立了六個數據庫表,分別為:Administrator(管理員表)、Teacher(教師表)、Student(學生表)、Design(畢業設計題目信息表)、ThesisUpload(學生論文上傳信息表)、TeacherUpload(教師上傳文檔信息表)。各個表之間的關系如圖3所示。
經過圖3對各實體間關系的描述,下面將詳述畢業設計信息表的設計方法和結構。

圖3 畢業設計信息管理關系圖
Design表用來存儲教師所設立的畢業設計題目信息,依據畢業設計題目申請、審核、選擇的流程,可以得出管理員、教師、學生三類用戶角色均要對 Design表進行操作,再考慮到畢業設計題目信息自身的復雜性,Design表的設計相對復雜。如表1所示為畢業設計信息表的詳細結構。

表1 畢業設計信息表的結構
Design表共設計了14項屬性,Did和Title分別存儲畢業設計的題目編號和題目名稱,并依據Did各不相同的特點將其設置為主鍵。Tid和Teacher屬性記錄設立該題目信息的教師編號和教師姓名,Sid和Student存儲選擇該畢業設計的學生的學號和姓名。Standard、Type、Process存儲畢業設計的基本屬性:難度、類型和進行方式。Origin、Claim、Content、Aim存儲畢業設計的詳細內容,即課題來源、目的要求、主要內容和預期目標。上述屬性除Content外均為字符類型,而Content由自身內容限制,設置為TEXT—文本類型。Auditing字段用來給出畢業設計題目的審核結構,其操作由管理員來完成,在Design表中,它被設置為枚舉類型,默認值為fail。
根據對系統角色分析和邏輯層設計的分析,本系統具體由管理員子系統、教師子系統、學生子系統來實現,其中各子系統中功能模塊來實現各角色的操作及行為。管理員子系統由管理員用戶使用,用來管理學生、教師及畢業設計題目信息。管理員子系統功能模塊包括查看和刪除教師,添加教師,查看和刪除學生,添加學生,查看和審核畢業設計等功能。
(1)管理員子系統的功能結構如圖4所示。

圖4 管理子系統功能結構圖
查看和刪除教師頁面getTeacherInfo.jsp先調用Admin類中的getTeacherInfo( )方法,通過對Teacher表的查詢來得到全部教師信息,包括教師編號(Tid)、姓名(Name)、性別(Sex)、教師所屬系(Depart)、教師職稱(Post)、電子郵件(Email)、電話(Tel)。通過對全部教師的查看,如果需要刪除某一教師時,點擊改教師名稱即彈出刪除窗口,點擊確定后會調用removeTeacher( )方法,將該教師與該教師所設畢業設計題目信息刪除。
添加教師頁面addTeacher.jsp功能為實現新教師用戶的添加。當管理員用戶進入到addTeacher.jsp頁面或其他頁面時,該頁面都會對用戶的屬性重新進行一個判斷。當確定其為管理員用戶時,頁面執行判斷之后的代碼,JSP頁面使用request.getParameter( )函數來從頁面表單來獲得教師相關信息,再把得到的數據作為參數傳遞給addTeacher( ),通過對admin類中addTeacher方法的調用,實現對Teacher表的插入操作。
如圖5所示。畢業設計信息管理頁面getDesignInfo.jsp用來管理畢業設計信息以便及時地對畢設題目進行審核。按具體功能分為查看畢業設計、審核畢業設計。畢業設計信息存放在Design表中,當管理員用戶需要查看畢業設計信息時,通過對getDesignInfo( )方法的調用,實現對Design表的查詢。

圖5 admin/main.jsp功能菜單及查詢教師界面
查詢學生選題信息頁面的功能:教師用戶登錄以后進入getSdesignInfo.jsp頁面來查詢教師用戶所設畢業設計題目的選擇情況。這項工作通過調用getSdesignInfo( )方法來查詢Design表,會得到該教師用戶建立的畢業設計題目信息(Title)和與此題目相關聯的學生學號(Sid)、學生姓名(Student)、畢業設計審核(Auditing)結果。
查看和修改畢業設計信息主要用到三個頁面:getDesignInfo.jsp(查看所有畢設信息)、getDesign.jsp(查看指定畢設詳細信息)、auditingDesign.jsp(審核指定畢設)。
(2)教師子系統的功能結構如圖6所示。

圖6 教師子系統功能結構圖
修改畢業設計信息模塊可以實現教師對所設立畢業設計題目的修改,教師用戶首先進入getDesignInfo.jsp查看自己畢業設計題目的基本信息,如果某項畢業設計題目的審核結果為fail,教師則可對畢設題目信息進行詳細查看,此時系統轉入getDesign.jsp頁面,然后在modifyDesign( )頁面中對所選題目進行修改。
文件上載功能由teacherUpload.jsp頁面來實現,教師用戶登錄到此頁面,選擇文件上傳到服務器端的teacher Upload文件夾中,文件上傳功能主要由jspSmartUpload組件來實現,調用teacherUpload( )方法將文件信息(Fid、Title)和教師信息(Tid、Teacher)存儲到TeacherUpload表中。
文件下載功能由getThesisUpload.jsp來完成,教師登錄系統進入此頁面,使用getThesisUpload( )方法來查詢ThesisUpload表中與自己編號相匹配的文件信息,如發現信息則點擊,利用jspSmartUpload組件來實現下載。
(3)學生子系統的功能結構如圖7所示。學生子系統專供學生用戶使用,本子系統具體分為修改個人信息、選擇畢業設計題目、查詢已選題目信息、文件上傳和文件下載五個模塊。

圖7 學生子系統功能結構圖
修改個人信息頁面updatePersonalInfo.jsp用來修改登錄學生的個人基本信息,此頁面通過調用updatePersonalInfo( )方法來對學生個人信息,包括電子郵件(Email)、電話(Tel)等進行核對和修改,此外由于管理員添加學生用戶時學生密碼與學生學號相同,學生用戶登錄后應及時的修改自己的密碼。
選擇畢業設計題目頁面getDesignInfo.jsp用來供學生選擇畢業設計課題,通過調用Student 類中的getDesignInfo()方法,學生得到畢業設計題目的基本信息,包括畢業設計題目(Title)、指導教師名稱(Teacher)、畢業設計難度(Standard)、畢業設計類型(Type)、畢業設計進行方式(Process) 。
查詢已選題目頁面getSelectInfo.jsp用來查詢登錄學生用戶已經選擇的畢業設計題目,通過對Design表進行帶有限制條件Sid的查詢,學生用戶將會得到自己所選的題目,并同樣可以進入與該畢業設計所匹配的getDesing.jsp和getTeacherInfo.jsp頁面查看與畢設題目所匹配的畢業設計詳細信息和指導教師信息。
學生子系統完成文件上傳的頁面為thesisUpload.jsp,與教師子系統文件上傳功能相同,不同的是學生子系統需要向數據庫的ThesisUpload表來提交數據,相關信息為Fid(上傳文件編號)、Title(上傳文件名稱)、Type(上傳文件類型)、Sid(上傳學生學號)、Student(上傳學生姓名)、Tid(接受教師編號)。根據不同的文件類型,上傳文件會被放在服務器端的不同文件夾內。
本文以畢業設計信息管理系統總體結構設計及功能模塊實現等操作,在具體的實現系統功能的同時,介紹了實現系統所使用的細節技術,對于畢業設計信息管理系統應用有實際的意義。