管錦亮 張慶
摘 要: 本文主要研究在建筑類高校學(xué)生成績管理系統(tǒng)的功能架構(gòu),并設(shè)計一個基于web技術(shù)的學(xué)生信息管理系統(tǒng),采用B/S+C/S模式作為主要開發(fā)模式,后臺數(shù)據(jù)庫設(shè)計采用oracle數(shù)據(jù)庫。使用的web技術(shù)包括三層結(jié)構(gòu)的實現(xiàn)技術(shù)、開發(fā)平臺技術(shù)等。基于web的學(xué)生成績管理系統(tǒng)的功能包括學(xué)生信息管理、課程信息管理和成績管理等功能,系統(tǒng)的設(shè)計包括數(shù)據(jù)庫的設(shè)計和各功能模塊的設(shè)計。
關(guān)鍵詞: 成績管理系統(tǒng) ORACLE 系統(tǒng)開發(fā)設(shè)計
一、引言
建筑類高校具有的特性,如果按照傳統(tǒng)的學(xué)生管理方式,已經(jīng)跟不上現(xiàn)在高校發(fā)展的需求。由于建筑類高校已經(jīng)從學(xué)年制向?qū)W分制過渡,一般高校都提供了一定數(shù)量的公共選修課程供學(xué)生選課,而傳統(tǒng)的基于C/S模式很難滿足大量學(xué)生同時選課。因此,網(wǎng)上選課迫切需要提上日程。基于此,本文主要介紹一種學(xué)生成績管理系統(tǒng),滿足網(wǎng)上選課的需求。
二、系統(tǒng)開發(fā)思路
本文框架結(jié)構(gòu)如圖1:
三、系統(tǒng)開發(fā)環(huán)境設(shè)計
硬件環(huán)境拓?fù)淙鐖D2:
1.開發(fā)環(huán)境
(1)操作系統(tǒng):Windows7
(2)瀏覽器:Mozilla Firefox
(3)Web服務(wù)器:Apache-Tomcat
(4)數(shù)據(jù)庫服務(wù)器:oracle
(5)開發(fā)工具:MyEclipse10 英文版,方便快捷地創(chuàng)建web工程。
2.運行環(huán)境
(1)服務(wù)器運行環(huán)境
B/S結(jié)構(gòu)系統(tǒng)的運行規(guī)模、穩(wěn)定性等特性主要取決于服務(wù)器端的軟硬件配置和網(wǎng)絡(luò)系統(tǒng)的配置,三層B/S結(jié)構(gòu),則需要Web服務(wù)器和數(shù)據(jù)庫服務(wù)器各自獨立運行。
(2)客戶端運行環(huán)境
由于B/S結(jié)構(gòu)系統(tǒng)的客戶端是“瘦客戶端”,即客戶端計算機只需安裝操作系統(tǒng)和Mozilla Firefox瀏覽器并接入網(wǎng)絡(luò),無須作任何特殊處理即可實現(xiàn)系統(tǒng)訪問。
3.系統(tǒng)目標(biāo)
設(shè)計學(xué)生成績管理系統(tǒng),實現(xiàn)學(xué)生信息的查詢、修改,課程信息的查詢、修改,學(xué)生成績信息查詢管理和系統(tǒng)常規(guī)管理。
4.系統(tǒng)功能
建立學(xué)生信息表、教師信息表、管理員信息表、成績信息表和課程信息表。
用戶包括:管理員、教師和學(xué)生;學(xué)生可查詢學(xué)生個人信息、課程信息和成績信息,更改自己的注冊信息;教師可查詢學(xué)生和教師個人信息、課程信息和成績信息,更改自己的注冊信息、課程信息和成績信息;管理員除具有教師和學(xué)生的所有權(quán)限外,還可以對全部信息進(jìn)行添加和更改,并可以添加、更改和刪除,要求系統(tǒng)能有效、快速、安全、可靠和無誤地完成上述操作。具體功能如下:
(1)學(xué)生信息
操作要求:能注冊、修改、注銷;訪問時要進(jìn)行身份驗證,查詢自己、課程和成績的信息;更改自己的注冊信息。
(2)教師信息
操作要求:能注冊、修改、注銷;訪問時要進(jìn)行身份驗證,查詢自己、學(xué)生、課程和成績的信息;更改自己的注冊信息、課程和成績信息。
(3)管理員信息
操作要求:可以對全部信息進(jìn)行查詢和更改。
(4)成績信息
操作要求:學(xué)生輸入自己的賬號密碼可以查詢自己的課程成績信息;教師輸入自己的賬號密碼可以查詢和修改課程成績信息。
(5)課程信息
操作要求:學(xué)生輸入自己的賬號密碼可以查詢自己的課程信息和選課;教師輸入自己的賬號密碼可以查看和發(fā)布課程信息。
四、數(shù)據(jù)庫設(shè)計
1.總體設(shè)計目標(biāo)
系統(tǒng)規(guī)劃系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、規(guī)范化和自動化。面對龐大的信息量,要做到對學(xué)生的各類信息有準(zhǔn)確、快速了解,有科學(xué)的統(tǒng)計和快速的查詢。
2.系統(tǒng)數(shù)據(jù)流圖和E-R圖設(shè)計
數(shù)據(jù)流圖(DFD,data flow diagram),是采用圖形方式表達(dá)系統(tǒng)的邏輯功能和數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程的表達(dá)工具,如圖3:
系統(tǒng)整體E-R圖如圖4:
3.數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計(Database Design)是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求。
以下是根據(jù)系統(tǒng)需求所做的設(shè)計。
(1)系統(tǒng)完整性約束
外鍵約束在一定程度上保證了數(shù)據(jù)的完整性和一致性,該系統(tǒng)下需要定義的幾個外鍵約束如下:
/*外鍵約束定義*/
/*教師表和教師賬號表*/
alter table teacher_info add constraint foreign1 foreign key(tno) references teacher(tno);
/*學(xué)生表和學(xué)生賬號表*/
alter table student_info add constraint foreign2 foreign key(sno) references student(sno);
/*課程表和教師賬號表*/
alter table project add constraint foreign3 foreign key(tno) references teacher(tno);
/*成績表和學(xué)生賬號表*/
alter table grade add constraint foreign4 foreign key(sno) references student(sno);
/*成績表和課程表*/
alter table grade add constraint foreign5 foreign key(cno) references project(cno);
該系統(tǒng)的所有主鍵約束已經(jīng)在創(chuàng)建表的時候定義完畢。
(2)系統(tǒng)觸發(fā)器
觸發(fā)器是一種特殊類型的存儲過程,它在指定的表中的數(shù)據(jù)發(fā)生變化時自動生效。以下是該系統(tǒng)需要的觸發(fā)器,其中只以部分代碼作為展示:
/*學(xué)生賬號表主鍵觸發(fā)器*/
create or replace trigger student_trigger
before insert on student
for each row
declare
l_lock_id number;
resource_busy exception;
pragma exception_init(resource_busy,-54);
begin
l_lock_id:=dbms_utility.get_hash_value(to_char(:new.sno),0,1024);
if(dbms_lock.request(
id =>l_lock_id,
lockmode=>dbms_lock.x_mode,
timeout=>0,
release_on_commit=>TRUE
) not in(0,4))
then
raise resource_busy;
end if;
end;
/
/*創(chuàng)建主鍵ID自增觸發(fā)器*/
create or replace trigger increase_stu
before insert on student
for each row
when (new.sno is null)
begin
select student_seq.nextval into :new.sno from dual;
end;
/
五、系統(tǒng)的測試、運行和維護(hù)
1.測試范圍和結(jié)果
(1)系統(tǒng)登錄測試:進(jìn)行用戶身份驗證、權(quán)限確認(rèn)測試,當(dāng)輸入的用戶名或密碼有誤時,給予提示。
(2)管理員和操作員權(quán)限界面測試:登錄系統(tǒng)時系統(tǒng)將根據(jù)登錄者身份分配不同的權(quán)限頁面。
(3)數(shù)據(jù)關(guān)聯(lián)測試:測試有關(guān)聯(lián)關(guān)系的數(shù)據(jù)是否已實現(xiàn)了關(guān)聯(lián)。如教師登錄后對學(xué)生成績進(jìn)行錄入或修改后,學(xué)生能否看到本人的成績更改信息。教師在成績錄入界面錄入或修改學(xué)生成績,學(xué)生在成績查詢界面查看個人成績。
(4)主要單元模塊測試:測試主要功能單元的功能實現(xiàn)是否完整。
2.運行和維護(hù)
經(jīng)以上測試可見,系統(tǒng)已經(jīng)實現(xiàn)了需求功能,運行正常無誤。維護(hù)工作主要由技術(shù)支持工程師完成。
六、結(jié)語
本文主要研究在建筑類高校學(xué)生成績管理系統(tǒng)的功能架構(gòu),并設(shè)計一個基于web技術(shù)的學(xué)生信息管理系統(tǒng),采用B/S+C/S模式作為主要開發(fā)模式,后臺數(shù)據(jù)庫設(shè)計采用oracle數(shù)據(jù)庫。從業(yè)務(wù)流程、功能描述、數(shù)據(jù)流、數(shù)據(jù)庫四方面對系統(tǒng)進(jìn)行了詳盡的分析和主要功能模塊的實現(xiàn),后續(xù)還需要進(jìn)行完善和詳細(xì)的開發(fā),設(shè)計中存在的不足有待在后續(xù)使用過程中進(jìn)行彌補。
參考文獻(xiàn):
[1]胡祖輝.學(xué)生成績管理系統(tǒng)數(shù)據(jù)查詢優(yōu)化方法研究[J].軟件導(dǎo)刊,2016,15(9):149-151.
[2]李文娟,郭永紅.基于C語言的學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)[J].中央民族大學(xué)學(xué)報(自然科學(xué)版),2016,25(2):36-42.
[3]鮑倩.基于Java語言的學(xué)生成績管理系統(tǒng)設(shè)計與實現(xiàn)[J].電子科技,2013,26(9):155-156,159.
基金項目:安徽建筑大學(xué)教學(xué)研究項目(2015yx13,2015yx10)。