田文濤,張 釗,張笑冰
(1. 黑龍江省哈爾濱市職工醫(yī)學(xué)院,黑龍江 哈爾濱 150000;2. 黑龍江省伊春市第一醫(yī)院,黑龍江 伊春 153000)
學(xué)生成績管理系統(tǒng)采用了SSH框架進(jìn)行開發(fā),共有表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層三層。當(dāng)中MVC框架是由Struts框架來完成,負(fù)責(zé)處理系統(tǒng)的整體業(yè)務(wù)。系統(tǒng)的數(shù)據(jù)持久層由Hibernate來完成,它封裝了底層的 JDBC,能將對象直接映射到關(guān)系型數(shù)據(jù)庫中,如本系統(tǒng)中使用的Mysql數(shù)據(jù)庫。還提供了面向?qū)ο蟮?API,讓用戶可以方便直觀地操作數(shù)據(jù)庫。Spring是本系統(tǒng)的業(yè)務(wù)層組件,它能方便地管理對象,利用 bean容器對對象進(jìn)行管理。Spring還能夠幫助Hibernate管理DAO層,使用注釋編程風(fēng)格,它可以寫出優(yōu)雅的代碼[1-2]。
用戶打開系統(tǒng)首先面對的是表現(xiàn)層,表現(xiàn)層是由JSP頁面實(shí)現(xiàn)的,用戶與JSP頁面交互。
本系統(tǒng)采用的是瀏覽器和服務(wù)器結(jié)構(gòu),也叫B/S結(jié)構(gòu)設(shè)計(jì)。本學(xué)生成績信息管理系統(tǒng)面向的對象是管理員(教師)和學(xué)生,根據(jù)他們的需求分析得知他們使用本系統(tǒng)的方式以瀏覽器為主,并不需要客戶端來使用,因此決定使用B/S結(jié)構(gòu)來設(shè)計(jì)此系統(tǒng)。
系統(tǒng)需要根據(jù)用戶輸入用戶名和密碼進(jìn)行驗(yàn)證的方式來登錄,當(dāng)用戶輸入了用戶名和密碼之后,會(huì)在數(shù)據(jù)庫中進(jìn)行查找,如果能夠查找到數(shù)據(jù)并且匹配正確的話則登錄成功,若數(shù)據(jù)不能匹配,則根據(jù)錯(cuò)誤信息提示用戶。
實(shí)現(xiàn)該學(xué)生成績信息管理系統(tǒng)的幾個(gè)主要功能如下:
1. 教師統(tǒng)一管理學(xué)生的個(gè)人信息、班級信息、課程信息、成績信息,能夠增刪改查;
2. 學(xué)生可以管理自己的個(gè)人信息,能夠查看修改
3. 學(xué)生可以管理自己的課程信息,能夠查看修改
4. 學(xué)生可以查看自己的學(xué)生成績信息
5. 學(xué)生可以通過課程信息來進(jìn)行相應(yīng)的選課
在用戶進(jìn)入本系統(tǒng)時(shí)首先就是登陸界面,登陸界面的實(shí)現(xiàn)類是 LoginAction[4-5],滿足登陸信息錄入功能。在登陸界面設(shè)置兩個(gè)文本編輯框,分別輸入用戶名和密碼,并設(shè)置兩種用戶角色,分別是管理員和學(xué)生。學(xué)生學(xué)號作為學(xué)生用戶的唯一性標(biāo)識(shí),而密碼的作用是確認(rèn)這個(gè)賬號的歸屬性。
在系統(tǒng)中,老師需要對學(xué)生的個(gè)人信息,班級信息,選課信息,成績信息進(jìn)行管理,還需要?dú)w納總結(jié)出一個(gè)總成績,所以針對管理員部分,需要設(shè)計(jì)五個(gè)模塊,下面對相關(guān)功能進(jìn)行詳細(xì)介紹。
2.3.1 班級信息管理模塊界面及功能設(shè)計(jì)
班級信息管理模塊的內(nèi)容包括班級信息添加和班級信息查詢這兩個(gè)模塊。
班級信息添加界面:包括班級編號、班級名稱、班主任、聯(lián)系電話、成立日期五個(gè)text文本編輯框以及保存和重寫兩個(gè)按鈕,其中在添加班級信息時(shí)班級編號和班級名稱兩項(xiàng)不能為空,如果為空,點(diǎn)擊保存時(shí)會(huì)提示不能為空,從而無法完成添加班級信息的要求。
班級信息查詢界面:用戶可以根據(jù)班級編號、班級名稱、聯(lián)系電話、成立日期中的任何一項(xiàng)進(jìn)行查詢,查詢結(jié)果以表格的形式呈現(xiàn)給用戶,并以每一頁顯示三條記錄進(jìn)行分頁顯示。此界面還有編輯和刪除兩個(gè)按鈕,可以根據(jù)用戶需要對班級信息進(jìn)行編輯和刪除操作,充分的滿足用戶的各種需求。(學(xué)生信息管理、課程信息管理與班級信息管理類似,在此不做介紹了)
2.3.2 成績信息管理模塊界面及功能設(shè)計(jì)
成績信息管理模塊包括成績信息添加和查詢兩個(gè)模塊。
成績信息添加界面:包括學(xué)生學(xué)號、課程信息和成績分?jǐn)?shù)三個(gè)小模塊。其中用戶需要在學(xué)生學(xué)號處輸入正確的學(xué)生學(xué)號并點(diǎn)擊獲取學(xué)生信息按鈕,點(diǎn)擊后會(huì)顯示學(xué)生的姓名、性別、班級、出生日期和電話號碼五個(gè)信息,此時(shí)課程信息處的下拉框里有了學(xué)生所選課程的名稱,根據(jù)學(xué)生考試所得分?jǐn)?shù)對成績分?jǐn)?shù)進(jìn)行錄入,錄入結(jié)束后點(diǎn)擊保存對該學(xué)生課程成績進(jìn)行保存。
成績信息查詢界面:用戶可以根據(jù)學(xué)生姓名和課程信息中的任意一項(xiàng)進(jìn)行查詢,查詢結(jié)果一目了然。如果錄入錯(cuò)誤,可以點(diǎn)擊編輯或者刪除進(jìn)行相應(yīng)的操作,以滿足用戶的需要。
2.3.3 總成績信息管理模塊界面及功能設(shè)計(jì)
總成績信息管理模塊包括總成績信息生成和總成績信息查詢兩個(gè)模塊。
總成績信息管理界面:只有請選擇班級進(jìn)行總成績的生成一項(xiàng),根據(jù)下拉框顯示的班級進(jìn)行對應(yīng)的選擇,然后點(diǎn)擊生成總成績按鈕即可生成總成績。
總成績信息查詢界面:顯示學(xué)生各門課程成績,并在最后生成總成績。該界面也可以對數(shù)據(jù)進(jìn)行編輯和刪除,并可以以Excel表格形式導(dǎo)出。
學(xué)生登入系統(tǒng)之后主要有三個(gè)功能:學(xué)生個(gè)人信息查看和修改,查看自己的課程和選課、查看自己的成績。其中點(diǎn)擊學(xué)生成績查詢可以查詢到個(gè)人的考試成績,修改個(gè)人信息一項(xiàng)可以對個(gè)人信息進(jìn)行編輯修改,學(xué)生選課一項(xiàng)需要選擇想要選擇的課程,點(diǎn)擊查看課程信息可以顯示出課程的名稱,編號,講課老師等基本信息,根據(jù)課程的信息確定要選擇的課程,然后點(diǎn)擊確定按鈕完成選課。
2.5.1 本系統(tǒng)中的實(shí)體E-R圖介紹
通過對本系統(tǒng)的分析,發(fā)現(xiàn)主要有五種實(shí)體,設(shè)計(jì)了它們之間的對應(yīng)關(guān)系和屬性,以下是實(shí)體與實(shí)體屬性E-R圖:
圖1 用戶登錄實(shí)體及其屬性Fig.1 User login entities and their attributes
圖2 班級信息實(shí)體及其屬性Fig.2 Class information entities and their attributes
圖3 課程信息實(shí)體及其屬性Fig.3 Courses information entities and their attributes
圖4 學(xué)生信息實(shí)體及其屬性Fig.4 Student’s information entities and their attributes
圖5 成績信息實(shí)體及其屬性Fig.5 Performance information entities and their attributes
圖6 系統(tǒng)中各實(shí)體之間的關(guān)系Fig.6 Relationships between entities of system
2.5.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
通過對學(xué)生成績管理系統(tǒng)的分析,總結(jié)出了以下幾點(diǎn):
1. 用戶只分老師和學(xué)生兩種,并且一個(gè)用戶只能有一種身份。
2. 教師擁有最高級的全下可以對學(xué)生信息,課程信息,成績信息,總成績的管理。
3. 學(xué)生用戶能夠查看和修改個(gè)人信息和成績信息,能夠查看成績信息,能夠進(jìn)行選課。
通過以上對用戶需求和系統(tǒng)功能的分析與總結(jié),根據(jù)實(shí)際設(shè)計(jì)了符合條件的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu),創(chuàng)建7張基本的數(shù)據(jù)表,分別為:管理員信息表、學(xué)生信息表、班級信息表、課程信息表、成績信息表、選課信息表、總成績信息表。由于篇幅原因,下面只列舉總成績信息表,包括數(shù)據(jù)項(xiàng):總成績編號、學(xué)生學(xué)號、總成績。總成績表結(jié)構(gòu)如表1所示。
表1 總成績信息表Tab.1 total achievement information table
2.5.3 數(shù)據(jù)庫物理設(shè)計(jì)
本系統(tǒng)共使用了7張基本表來滿足項(xiàng)目的基本實(shí)現(xiàn)要求,每一張表之間都存在著相互的關(guān)聯(lián),保證了系統(tǒng)功能的全面和數(shù)據(jù)信息存儲(chǔ)的穩(wěn)定。下面同樣只介紹一下創(chuàng)建總成績信息表所使用到的SQL語句:
CREATE TABLE `t_totalscoreinfo` (--總成績信息表,用于保存總成績
`totalScoreId` int(11) NOT NULL auto_increment, --總成績
`studentObj` varchar(20) default NULL,
--學(xué)生學(xué)號
`totalScoreValue` float default NULL,
--總成績
PRIMARY KEY (`totalScoreId`),
KEY `FK28FF2C717B2E35` (`studentObj`),
CONSTRAINT `FK28FF2C717B2E35`
FOREIGN KEY (`studentObj`)
`t_student` (`studentNumber`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;[6]
下面對執(zhí)行上述SQL語句創(chuàng)建的表進(jìn)行介紹:
3.1.1 用戶登錄
1. 設(shè)計(jì)用戶登陸頁面
用戶的登錄頁面包括輸入用戶名和密碼的文本框,以及選擇用戶身份的下拉框,有管理員和學(xué)生兩個(gè)選項(xiàng),輸入正確的用戶信息才能進(jìn)入到對應(yīng)的系統(tǒng)中去。通過 JavaScript函數(shù)對用戶的輸入信息進(jìn)行驗(yàn)證,驗(yàn)證用戶名密碼是否正確,是否為空。用戶的登陸頁面,如圖7所示。
2. 用戶登陸Action實(shí)現(xiàn)類
當(dāng)用戶在登錄界面中輸入完用戶名和密碼之后,系統(tǒng)會(huì)訪問一個(gè) URL為/ScoreSystem/com.scoresystem.action/LoginAction.java。在URL地址有用戶登錄是用來驗(yàn)證用戶身份的方法CheckLogin()[7]。
在驗(yàn)證用戶身份方法 CheckLogin()中,系統(tǒng)會(huì)將用戶輸入過來的的參數(shù)強(qiáng)制轉(zhuǎn)換成Admin類型的對象并賦值于新的Admin類型對象。在驗(yàn)證用戶登錄的操作時(shí),系統(tǒng)會(huì)檢查數(shù)據(jù)庫中是否有對應(yīng)的信息,如果有信息的話系統(tǒng)會(huì)根據(jù)返回的信息反過來去查看用戶的角色分類,從而根據(jù)返回分類的不同進(jìn)入到不同的界面當(dāng)中去[8-10]。
3. 配置structs.xml文件
在structs.xml文件中配置用戶登陸模塊所涉及到的
3.1.2 程序主體實(shí)現(xiàn)
當(dāng)教師登錄之后會(huì)彈出登錄界面,頁面包括當(dāng)前用戶的用戶名,退出系統(tǒng)按鈕,當(dāng)前時(shí)間等信息。管理員可以根據(jù)自己的需求來點(diǎn)選對應(yīng)的功能。如圖8所示。
當(dāng)學(xué)生成功登陸后,彈出登陸界面,頁面包括了學(xué)生學(xué)號、姓名、性別、電話號碼等個(gè)人信息,還有修改個(gè)人信息和退出系統(tǒng)的按鈕。學(xué)生可以點(diǎn)擊按鈕進(jìn)行相應(yīng)的操作。如圖5-1-17到5-1-21所示。
圖7 用戶登錄頁面Fig.7 User's login page
圖8 管理員登陸頁面Fig.8 Administrator’s login page
圖9 學(xué)生登陸頁面Fig.9 Student’s login page
考慮到本系統(tǒng)的實(shí)際使用是以操作簡單,功能結(jié)構(gòu)清晰的情況,本次測試主要是以黑盒測試為主進(jìn)行的測試。
1. 當(dāng)不輸入用戶名直接點(diǎn)擊登錄時(shí)。產(chǎn)生結(jié)果如圖10所示。
圖10 未輸入用戶名Fig.10 No username input
2. 當(dāng)沒有輸入用戶密碼時(shí),系統(tǒng)會(huì)彈出一個(gè)消息框來提示操作者輸入用戶密碼如圖11。
圖11 沒有輸入密碼Fig.11 No password input
3. 當(dāng)輸入用戶及密碼,但是用戶名錯(cuò)誤或者密碼輸入錯(cuò)誤時(shí),系統(tǒng)也會(huì)彈出一個(gè)對話框來提示操作者更改輸入信息。如圖12。
圖12 用戶不存在或密碼錯(cuò)誤Fig.12 username does not exist or wrong password
本系統(tǒng)采用了 JAVA語言進(jìn),并使用了當(dāng)前流行的、功能強(qiáng)大的Struts、Hibernate和Spring三大框架進(jìn)行項(xiàng)目開發(fā),數(shù)據(jù)庫服務(wù)器則選擇了當(dāng)前流行且使用方便的MYSQL數(shù)據(jù)庫[14]。目前,本系統(tǒng)下的各個(gè)功能已經(jīng)全部實(shí)現(xiàn),即教師端:對學(xué)生信息進(jìn)行管理、對班級信息進(jìn)行管理、對學(xué)生選課信息進(jìn)行管理、對課程信息進(jìn)行管理、對學(xué)生成績信息進(jìn)行管理;學(xué)生端:查詢和修改個(gè)人信息、查詢課程信息、查詢個(gè)人成績、選課[15]。本系統(tǒng)目前在我院成功試運(yùn)行,完成了對學(xué)生成績信息的專業(yè)化管理的目的。
[1] 廖義奎. Java Web開發(fā)之Srtuts編程基礎(chǔ)與實(shí)例精講[M].中國電力出版社, 2006: 133-137.
[2] 陳天河. Struts. Hibernate. Spring集成開發(fā)寶典[M]. 電子工業(yè)出版社, 2007: 246-249.
[3] 孫衛(wèi)琴, 李洪成. Tomcat與Java Web開發(fā)技術(shù)詳解[M]. 電子工業(yè)出版社, 2004: 56-61.
[4] 張洪偉. Tomcat Web開發(fā)及整合應(yīng)用[M]. 北京. 清華大學(xué)出版社, 2006: 10-230.
[5] 石志國, 薛為民, 董潔. JSP高等學(xué)校計(jì)算機(jī)語言應(yīng)用教程[M]. 清華大學(xué)出版社, 2004: 190-196.
[6] 李剛. Struts2權(quán)威指南:基于WebWork核心的MVC開發(fā)[M].電子工業(yè)出版社, 2007: 93-332.
[7] 梁立新. 項(xiàng)目實(shí)踐精解:基于Struts-Spring-Hibernate的Java應(yīng)用開發(fā). 第2版[M]. 電子工業(yè)出版社, 2008.
[8] 郭煦, 闖恩華. 中間件技術(shù)在Web系統(tǒng)中的應(yīng)用[J]. 上海電機(jī)學(xué)院學(xué)報(bào), 2006, 9(3): 33-45.
[9] 孫衛(wèi)琴. Java網(wǎng)絡(luò)編程精解[M]. 電子工業(yè)出版社, 2007:66-70.
[10] 邱哲, 王俊標(biāo), 馬斗. Java開發(fā)利器: Struts Web設(shè)計(jì)與開發(fā)大全[M]. 清華大學(xué)出版社, 2006: 67-72.
[11] MartyHall, 霍爾, Hall, 等. Servlet與JSP權(quán)威指南[M]. 機(jī)械工業(yè)出版社, 2002.
[12] Manheim M L. An architecture for active DSS[C]// Hawaii International Conference on System Sciences, 1988. Vol.iii.Decision Support and Knowledge Based Systems Track.IEEE, 2002: 356-365.
[13] Bruce Eckel. Theoretical Artificial Intelligence[J], 1998, 10(4): 393-402.
[14] Kang Jian-Ping. Editorial. Web Dynamics[J]. Computer Netorks,2002, 39: 221-223.
[15] 田文濤, 張釗, 張笑冰. 基于SSH的學(xué)生成績信息管理系統(tǒng)的設(shè)計(jì)與分析[J]. 軟件, 2017, 38(11): 212-215.