一、概述
主要介紹學生成績管理系統項目開發的背景、目的、對象以及研究內容。
1.1項目背景
每個學校都需要在期末進行考試成績的統計分析工作,而這些工作都必須在考試結束后一個星期的時間內完成。大量的成績數據的統計工作如果只靠人工完成,費時費力,還容易出錯。隨機計算機技術的快速發展,計算機在日常管理應用中迅速普及,利用計算機進行學生成績管理勢在必行。因此需要開發出一個滿足學校進行成績的錄入、查詢、修改等需求的功能完善,安全可靠,迅速便捷的成績管理系統。
1.2編寫目的
開發出一個操作簡便、界面友好、靈活實用、安全可靠的學生成績管理系統。該系統的開發以任課教師和學生服務為對象,能夠提高學校對學生成績的統計分析效率,減輕教務管理人員對學生成績管理和統計的負擔,能提高學校對學生成績的規范化管理。
該成績系統能夠及時對學生成績進行收集整理,使學校相關部門及時獲取可靠的學生成績信息,便于管理。方便各任課教師記錄,統計所帶班級學生成績,提高工作效率,減輕負擔,提高教學質量。實現快速方便地處理大量成績數據信息,完成成績的錄入、修改、刪除、查詢等處理要求。方便學生查詢自己各科目成績。
1.3軟件定義
學生成績管理系統是記錄了學生成績的系統,可以實現查詢、更新、插入、刪除等功能。根據不同用戶設置不同的權限,來確保學生成績信息的安全行和完整性。
1.4開發環境
操作系統,.6.17數據庫服務器,.12.0,。
二、可行性分析
由于本系統管理的對象單一,且每個數據內容具有較強的關聯性,涉及的計算過程不是很復雜。因此,比較適合于采用數據庫管理。在技術難度方面,由于有指導老師的指導和相關參考文獻,特別是網上資料,特別是參考其它程序的功能,因此完全可以實現。
2.1經濟可行性分析
隨著科學技術的不斷發展與創新,計算機作用的日益突顯,計算機軟件成為人們解決問題的一個有效手段,當然,它的作用也越來越重要。在當今信息時代,國民經濟和國防建設、社會發展、人民生活都離不開軟件,軟件也無處不在。軟件產業也是一個新興產業,盡管起步晚,但是發展迅速,已經成為增長最快的產業,是具有高投入/高產出、無污染、低能耗的綠色產業。學生成績管理系統是一個基于教務處數據庫的一個管理系統,對已經使用的類似的系統進行調查分析、類比,本課題具有的特點:開發工作量小,可以有兩個人合作開發或一個人獨立開發,開發周期短,有熟練的開發人員一個月就可以完成系統的開發與測試。
2.2技術可行性分析
從技術方面來說, 是一個開放源代碼的、基于Java的可擴展開發平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。 附帶了一個標準的插件集,包括Java開發工具(Java Kit,JDK)。可以利用所學的Java知識進行編程,再與數據庫連接,通過SQL語句即可輕松查詢和更新后臺數據庫中的數據。
三、需求分析 3.1功能要求
根據用戶需求,系統需向用戶提供以下功能:
1、系統登錄功能:根據教師、學生兩種身份設計不同用戶的操作權限和登錄方式。
2、班級管理功能:班級的添加、修改、刪除功能。
3、成績管理功能:錄入、修改、刪除、查詢、統計學生成績,能一次性錄入某班全部學生成績。
4、信息管理功能:添加、修改、刪除、查詢學生基本信息,能一次性導入某班全部學生信息。
5、成績查詢功能:每個學生可以查詢自己所有課程的成績。教師可以查詢所帶班級的成績,可以對成績進行排序和統計。
圖3-1-1 學生成績管理系統功能結構圖
3.2性能要求
1、易操作性:所開發的系統應做到操作簡單,盡量使系統操作不受用戶對電腦知識水平的限制。
2、可維護性:系統應易于修改、易于擴充、易于維護軟件項目管理實驗報告圖片,能夠適應業務不斷發展變化的需要。
3、可靠性:系統在運行中要不發生或極少發生故障,在偶然事故及操作失誤時,系統應具有較強的出理能力,而不應造成信息的丟失或破壞。
4、安全性:保證系統的物理安全、數據存儲和獲取的安全與保密,做好使用人員的授權管理。
5、實用性:系統的設計應最大限度發揮計算機的高速處理、海量存儲能力。
6、開放性:系統能夠在開放的硬件體系結構中運行,并且能與其他系統順利連接,不會因外部系統的不同面要做在量的修改工作。
四、數據庫設計 4.1 數據庫需求分析
數據庫對系統操作和處理的數據具有綜合管理的作用,在具有信息管理的系統中占有非常重要的地位,數據庫結構設計的好壞將直接對應用系統的執行效率以及實現的效果產生影響。合理的數據庫結構設計可以提高數據存儲的效率,保證數據的完整性和一致性。
數據庫需求分析就是分析用戶的需求,根據用戶的需求,分析確定該系統會操作處理那些數據,對確定好的數據根據它們之間的關聯關系進行結構設計。需求分析結果直接反映客戶的要求,需求分析結果是否準確將直接影響到后面各個階段的設計結果是否合理和正確。因此做好數據庫的需求分析是非常重要的環節。
數據庫需求分析的任務就是通過詳細調查現實中要處理的對象,明確用戶的各種需求,然后在此基礎上確定新系統的功能。新系統必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設計數據庫。
針對該系統的要求,對該系統的數據庫需求做了詳細的分析。基于學生成績管理系統的數據庫功能主要體現在多用戶登錄信息、學生基本信息、教師基本信息、學生成績信息的管理上。
4.2用戶對系統的要求 4.2.1信息要求
老師能查詢所有成績相關信息,包括某一學生的學號、成績等詳細信息,學生能查到關于自己具體的信息軟件項目管理實驗報告圖片,包括每門課的成績,學院,專業,班級等
4.2.2處理要求
1、需查詢學生相關信息時能進行查詢;
2、學生成績信息發生變更時,能進行修改、插入、刪除等;
3、學生的信息發生變更時,能進行更新、刪除。
4.2.3安全性與完整性要求
安全性要求:
1、系統應設置訪問用戶的標識以鑒別是否為合法用戶,并設置密碼,保證用戶身份不被盜用;
2、對不同的數據設置不同的訪問級別,限制訪問用戶可查詢和處理數據的類別和內容;
3、對不同用戶設置不同的權限,區分不同用戶,如學生、成績管理員。
4.3數據需求描述
數據流圖:
圖4-3-1 頂層數據流圖
數據字典:
①學生(學號Sno、姓名Sname、性別Sex、專業號Mno、班號Cnum)
屬性名 字段類型 長度 主鍵或外鍵 說明
SNO INT 5 主鍵 學號
SNAME CHAR 20 姓名
SEX CHAR 2 性別
MNO INT 5 外鍵 專業號
CNUM INT 5 外鍵 班號
②教師(職工號Tno、姓名Tname、職稱Title)
屬性名 字段類型 長度 主鍵或外鍵 說明
TNO INT 5 主鍵 職工號
TNAME CHAR 20 姓名
TITLE CHAR 5 職稱
③課程(課程號Cno、課程名Cname、學分)
屬性名 字段類型 長度 主鍵或外鍵 說明
CNO INT 5 主鍵 課程號
CNAME CHAR 30 課程名
CHAR 2 學分
④班級Class(班號Cnum、人數Num)
屬性名 字段類型 長度 主鍵或外鍵 說明
CNUM INT 5 主鍵 班號
NUM INT 5 人數
⑤系(系號Dno、系名Dname)
屬性名 字段類型 長度 主鍵或外鍵 說明
DNO INT 5 主鍵 系號
DNAME CHAR 30 系名
⑥專業Major(專業號Mno、專業名Mname、系號Dno)
屬性名 字段類型 長度 主鍵或外鍵 說明
MNO INT 5 主鍵 專業號
MNAME CHAR 20 專業名
DNO INT 5 外鍵 系號
⑦選課CV(學號Sno、課程號Cno、成績)
屬性名 字段類型 長度 主鍵或外鍵 說明
SNO INT 5 學號
CNO INT 5 課程號
CHAR 5 成績
⑧學生—教師ST(學號Sno、職工號Tno、課程號Cno)
屬性名 字段類型 長度 主鍵或外鍵 說明
SNO INT 5 學號
TNO INT 5 職工號
CNO INT 5 課程號
4.4邏輯結構設計
一個系有若干個專業,一個專業有若干個班級,一個學生可以選修多門課程。

關系模式表:
①學生(學號Sno、姓名Sname、性別Sex、專業號Mno、班號)
學號->姓名,學號->性別,學號->專業號,班號->專業號;
②教師(職工號Tno、姓名Tname、職稱Title)
職工號->姓名,職工號->職稱;
③課程(課程號Cno、課程名Cname、學分)
課程號->課程名,課程號->學分;
④班級Class(班號Cnum、人數Num)
班號->人數;
⑤系(系號Dno、系名Dname)
系號->系名;
⑥專業Major(專業號Mno、專業名Mname、系號Dno)
專業號->專業名,專業號->系號;
⑦選課CV(學號Sno、課程號Cno、成績)
學號、課程號->成績;
⑧學生—教師ST(學號Sno、職工號Tno、課程號Cno)
學號、職工號->課程號
其中①為第三范式,②③④⑤⑥⑦⑧均為BCNF范式
4.5 物理設計 4.5.1索引設計:
TABLE (
Sname CHAR(20),
Sno INT(5),
Sex CHAR(2),
Mno INT(5),
INT(5),
KEY (Sno),
Index (Sno)
);
TABLE (
Tno INT(5),
Tname CHAR(20),
Title CHAR(5),
Index (Tno)
);
TABLE (
Cname CHAR(20),
Cno INT(5),
CHAR(2),
Index (Cno)
);
TABLE (
Cnum INT(5),
Num INT(5),
Index (Cnum)
);
TABLE (
Dname CHAR(20),
Dno INT(5),
Index (Dno)
);
TABLE (
Mname CHAR(20),
Mno INT(5),
Dno INT(5),
Index (Mno)
);
TABLE CV1 (
Sno INT(5),
Cno INT(5),
CHAR(5),
Index CV1(Sno,Cno)
);
TABLE ST1 (
Sno INT(5),
Tno INT(5),
Cno INT(5),
Index ST1(Sno,Tno)
);
4.5.2觸發器設計:
1、刪除課程表中的課程號,相應刪除選課表和學生-教師表中的課程號:
%%
after on
for each row
begin
from CV where Cno=old.Cno;
from ST where Cno=old.Cno;
end %%
%%
4.6數據庫實施 4.6.1用戶模式設計
視圖設計:
1、成績查詢
view
As
cnum,CV.sno,sname,cno,
From ,CV
Where .sno=CV.sno;
2、學生所學課程及學分統計
view Total
As
Sno,CV.Cno,Cname,
From ,CV
Where .Cno=CV.Cno;
3、學生總成績、平均成績
view sum
As
CV.Sno 學號,sname 姓名,sum() 總成績,avg() 平均成績
From ,CV
Where .Sno=CV.Sno;
存儲過程設計:
1、修改成績
i((5),(5),(5))lt===Cno1; (IN Sno1 INT(5), IN Cno1 INT(5),IN CHAR(5)) BEGIN CV set = where Sno=Sno1 and Cno=Cno1; ugai((5),(5),(5))lt===Cno1;END
;
2、查詢總學分
n((5),(20)),Sname,Sum()as總學分,.sno=CV.; (IN Sno1 INT(5),IN Sname CHAR(20)) BEGIN Sno,Sname,Sum() as 總學分 From ,CV Where .sno=CV.sno Group by Sno; efen((5),(20)),Sname,Sum()as總學分,.sno=CV.;END
;
4.6.2安全性設計
新建表
table user( (10), (40), (40));
into user (‘user1’,MD5(‘110’),SHA1(‘110’));
into user (‘user2’,MD5(‘120’),SHA1(‘120’));
into user (‘user3’,MD5(‘112’),SHA1(‘112’));
user ‘cu1’@‘’ by ‘110’;
user ‘cu2’@‘’ by ‘120’;
user ‘cu3’@‘’ by ‘112’;
給cus1@ 授權,即管理員的權限
Grant all on Stu. to ‘cu1’@‘’ with grant ;
Grant all on Stu. to ‘cu1’@‘’ with grant ;
Grant all on Stu. to ‘cu1’@‘’ with grant ;
Grant all on Stu. to ‘cu1’@‘’ with grant ;
Grant all on Stu.Major to ‘cu1’@‘’ with grant ;
Grant all on Stu.CV to ‘cu1’@‘’ with grant ;
Grant all on Stu.ST to ‘cu1’@‘’ with grant ;
給cus2@ 授權,即學生的權限
Grant on Stu.CV to ‘cu2’@‘’ with grant ;
給cus3@ 授權,即教師的權限
Grant , on Stu.CV to ‘cu3’@‘’ with grant ;
4.6.3事務設計
1、修改某一門課程的學分:
//
BB(IN Cno1 INT(5),IN CHAR(20),IN CHAR(2))
Begin
t_err int 0;
FOR SET t_err = 1;
Start ;
Cno修改前的課程號 from where Cno=Cno1;
Cname修改前的課程名 from where Cname=;
修改前的學分 from where Cno=Cno1;
do sleep(20);/暫停20秒/
set = where Cno=Cno1;
修改后的學分 from where Cno=Cno1;
if t_err =1 then
; /* 有sql 錯誤 回滾 /
else
; / 無 sql 錯誤 提交 */
end if;
end //
;
2、修改成績:
//
BC(IN Sno1 INT(5),IN Cno1 INT(5),IN CHAR(5))
Begin
t_err int 0;
FOR SET t_err = 1;
Start ;
sum()修改成績前的總分 from CV where Sno=Sno1;
avg()修改成績前的平均分 from CV where Sno=Sno1;
查詢需要修改的課程號的成績 from CV where Sno=Sno1 and Cno=Cno1;
do sleep(20);/暫停20秒/
CV set = where Sno=Sno1 and Cno=Cno1;
查詢修改后的課程號的成績 from CV where Sno=Sno1 and Cno=Cno1;
sum()修改成績后的總分 from CV where Sno=Sno1;
avg()修改成績后的平均分 from CV where Sno=Sno1;
if t_err =1 then
Rollback; /* 有sql 錯誤 回滾 */
else
commit; /* 無 sql 錯誤 提交 */
end if;
end //
;
五、軟件設計 5.1登陸界面
圖5-1-1 登陸界面
圖5-1-2 登陸成功界面
5.2學生成績查詢界面
圖5-2-1 學生成績查詢界面圖
5.3教師界面
圖5-3-1 教師界面圖
圖5-3-2 新增學生信息界面圖
圖5-3-3 更新學生信息界面圖
圖5-3-4 刪除學生信息界面圖
六、項目設計總結
通過學生成績管理系統項目設計,加深了對數據庫設計的理解,對于設計一個數據庫項目的流程有了一定的概念。在這次項目設計中,回顧了以前很多的知識點,但是也發現了很多問題,最終解決了,所以也收獲了很多。
此次項目的設計讓我們對Mysql數據庫的了解更加深入,了解到了更多的知識點,也對軟件有了一定的了解。在整個設計過程中,通過把各個管理信息連接起來的分析,鍛煉了我們對事情的分析能力,通過怎么解決過程中遇到的問題,提高了我們查找文獻的能力,對網絡資源利用的能力與同學交流的能力。 項目最終開發出來的程序實現的功能比較簡單,但也基本達到了項目設計的要求,可以看出設計程序的組員是花了不少心思的。
最重要的是,這次數據庫項目的設計,為我們以后程序開發的道路打下了扎實的基礎。
需要源代碼的小伙伴點擊以下鏈接下載