教學管理系統(tǒng)的設計與實現(xiàn)
一、概述
隨著學校教務的越來越繁重,學校的學生,教師,課程的日益增多,因此對它們的管理問題也是日益突顯,所以需要一個專業(yè)的應用程序?qū)λ鼈儗嵤┫到y(tǒng)的管理。為方便對學校日常工作進行高效的管理,設計此數(shù)據(jù)庫以提高學校的管理效率。隨著現(xiàn)代科技的高速發(fā)展,設備和管理的現(xiàn)代化,在實際工作中如何提高工作效率成為一個很重要的問題。而建立教學管理信息系統(tǒng)是一個很好的解決辦法。
本系統(tǒng)——教學管理系統(tǒng)就是為了實現(xiàn)對它們的管理而專門設計的。 本教學管理系統(tǒng)是用Sybase公司的PowerBuilder數(shù)據(jù)庫應用開發(fā)工具而開發(fā)的。它主要包括學生管理、成績管理、班級管理、課程管理和教師管理。
它是通過對學校日常教學管理中的課程、選課、學生、班級、教師、成績等相關(guān)內(nèi)容進行分析,完成具有學生管理、成績管理、班級管理、教師管理、課程管理等相關(guān)功能的小型數(shù)據(jù)庫管理應用系統(tǒng)。
基本要求:
1、完成學生、班級、課程等表的維護 2、完成成績表的瀏覽查找 3、完成成績表的維護
4、按班級、按課程計算平均成績、最高成績、最低成績、及格率 5、統(tǒng)計某學生、某學期的所有課程的平均成績。 6、查詢教師的授課情況 7、完成注冊用戶管理功能
專業(yè)整理
word格式文檔
二、需求分析
1、本系統(tǒng)是開發(fā)目標是有效管理學生,教師,課程等信息,實現(xiàn)這些信息的數(shù)據(jù)錄入、瀏覽、修改、查詢等,從而實現(xiàn)對信息的規(guī)范化、系統(tǒng)化、自動化管理。根據(jù)對終端用戶的調(diào)研,得出下面的需求分析說明文本:
(1)由于學生等信息具有一定的保密性,為了便于管理,應該為用戶設置密碼
保護,以提高系統(tǒng)的數(shù)據(jù)安全性。
(2)使用該系統(tǒng),能夠?qū)W生,教師信息時行記錄,并能夠非常方便地瀏覽、
添加、編輯和查詢。
(3)使用該系統(tǒng),能夠?qū)W生的成績信息非常方便地瀏覽、添加、編輯和查詢,
實現(xiàn)對成績的有效管理,方便教師查看。
(4)學校的班級是不斷增加的,有些班級還要撤編,所以應用程序應該能夠方
便地對學生班級進行添加、編輯、刪除。
(5)課程信息描述了課程名稱、授課教師等重要教學方面的信息,應該方便進
行管理。
2、根據(jù)系統(tǒng)設計規(guī)化出的實體有學生實體,班級實體,課程實體,教師實體,各實體的E-R圖如下:
圖1 學生實體E-R圖
圖2 班級實體E-R圖
專業(yè)整理
word格式文檔
圖3 課程實體E-R圖
圖4 教師實體E-R圖
圖5 各實體聯(lián)系E-R圖
三、數(shù)據(jù)字典
經(jīng)過可行性分析和初步需求調(diào)查,抽象出該子系統(tǒng)業(yè)務流程圖,如圖6所示。下面,結(jié)合該實例具體情況,給出具體需求。
專業(yè)整理
word格式文檔
圖6教學管理業(yè)務流程圖
經(jīng)分析之后,本系統(tǒng)要用到六個基本表:學生信息表,班級信息表,課程
信息表,教師信息表,成績信息表,用戶表
學生信息表:定義了學生的學號,姓名,性別,出生日期,班級號,總學分
班級信息表:定義了班級的班級號,班級名,學院,專業(yè),人數(shù)
課程信息表:定義了課程的課程號,課程名,學時,學分,開課學期,教師
專業(yè)整理
word格式文檔
號
教師信息表:定義了教師的教師號,教師名,性別,職稱
成績信息表:定義了學生的學號,課程號,分數(shù),學期,班級號 用戶表:教學管理系統(tǒng)注冊用戶使用
四、數(shù)據(jù)庫邏輯設計
根據(jù)圖5得出各個關(guān)系模式:
學生信息表(學號,姓名,性別,出生日期,班級號,總學分) 班級信息表(班級號,班級名,學院,專業(yè),人數(shù))
課程信息表(課程號,課程名,學時,學分,開課學期,教師號) 教師信息表(教師號,教師名,性別,職稱) 成績信息表(學號,課程號,分數(shù),學期,班級號) 用戶表(用戶名,密碼)
其中用戶表是教學管理系統(tǒng)注冊用戶使用的。 由關(guān)系模式得出關(guān)系表,如下:
表1 stu學生信息表
字段名 學號 姓名 性別 出生日期 班級號 總學分 數(shù)據(jù)類型 Char(6) Char(8) Char(2) Date Char(6) Dec(4,1) 含義說明 學生編號 學生姓名 學生性別 出生日期 所在班級 總學分 空值情況 主關(guān)鍵字 不為空 不為空 可為空 可為空 可為空
表2 class班級信息表
字段名 班級號 班級名 學院 專業(yè) 人數(shù)
專業(yè)整理
數(shù)據(jù)類型 Char(6) Char(12) Char(12) Char(12) Dec(2) 含義說明 班級編號 班級名稱 所在學院 所在專業(yè) 班級人數(shù) 空值情況 主關(guān)鍵字 可為空 可為空 可為空 可為空 word格式文檔
表3 course課程信息表
字段名 課程號 課程名 學時 學分 開課學期 教師號 數(shù)據(jù)類型 Char(6) Char(12) Dec(2) Dec(2) Dec(2) Char(6) 含義說明 課程編號 課程編號 課程學時 課程學分 開課學期 授課教師 空值情況 主關(guān)鍵字 不為空 可為空 可為空 可為空 外鍵
表4 teacher教師信息表 字段名 教師號 教師名 性別 職稱 數(shù)據(jù)類型 Char(6) Char(8) Char(2) Char(8) 含義說明 教師編號 教師姓名 教師性別 教師職稱 空值情況 主關(guān)鍵字 不為空 可為空 可為空
表5 score成績信息表
字段名 學號 課程號 分數(shù) 學期 班級號 數(shù)據(jù)類型 Char(6) Char(6) Dec(2) Dec(2) Char(6) 含義說明 學生編號 課程編號 考試分數(shù) 考試學期 班級編號 空值情況 主關(guān)鍵字 主關(guān)鍵字 可為空 可為空 可為空
表6 user用戶信息表 字段名 用戶名 密碼 數(shù)據(jù)類型 Varchar(12) Varchar(12) 含義說明 用戶名稱 用戶密碼 空值情況 主關(guān)鍵字 不為空
五、軟件功能設計
1、登錄到教學管理系統(tǒng)可以完成系統(tǒng)管理功能,學生管理功能,成績管理功能,班級管理功能,班級管理功能,課程管理功能和教師管理功能(如圖6)。
系統(tǒng)管理:可以實現(xiàn)用戶的添加和修改密碼。
學生管理:可以對學生的記錄進行添加,刪除,修改和查詢。還可以統(tǒng)計某學生,某學期的所有課程的平均成績。
成績管理:可以對成績記錄進行添加,刪除,修改和查詢。還可以統(tǒng)計某學生、某學期的所有課程的平均成績及按班級,按課程計算平均成績、最高成績、最低成績、及格率。
專業(yè)整理
word格式文檔
班級管理:可以對成績記錄進行添加,刪除,修改和查詢。 課程管理:可以對課程記錄進行添加,刪除,修改和查詢。
教師管理:可以對課程記錄進行添加,刪除,修改和查詢及教師授課情況的查詢。
圖7 軟件功能圖
2、軟件功能介紹
(1)首先進入用戶登錄界面,在該界面輸入有效的用戶名與密碼,單擊“確認”登錄。
圖8 用戶登錄界面
專業(yè)整理
word格式文檔
(2)進入教學管理系統(tǒng)主應用界面后,單擊對應的菜單欄選項,選擇所需的操作。
圖9 主頁面
(3)打開學生管理菜單可以對學生的記錄進行添加、刪除、修改和查詢。
圖10 學生管理頁面
可以對學生的姓名和班級分別進行查詢。
圖11 學生查詢頁面
專業(yè)整理
word格式文檔
(4)打開成績管理菜單可以對成績的記錄進行添加、刪除、修改和查詢。
圖12 成績管理頁面
可以對學號,課程號分別查詢,也可以學號、課程號一起查詢。
圖13 成績查詢頁面1
輸入班級號、輸入課程號計算平均成績、最高成績、最低成績、及格率
圖14 成績查詢頁面2
統(tǒng)計某學生,某學期的所有課程的平均成績
專業(yè)整理
word格式文檔
圖15 學期平均成績查詢頁面
(5) 打開班級管理菜單可以對班級的記錄進行添加、刪除、修改和查詢。
圖16 班級管理頁面
輸入班級號,對班級所有信息進行查詢
圖17 班級查詢頁面
(6) 打開課程管理菜單可以對課程的記錄進行添加、刪除、修改和查詢。
專業(yè)整理
word格式文檔
圖18 課程管理頁面
輸入課程號,對課程所有信息進行查詢
圖19 課程查詢頁面
(7) 打開教師管理菜單可以對教師的記錄進行添加、刪除、修改和查詢。
圖20 教師管理頁面
專業(yè)整理
word格式文檔
輸入教師號,可對教師所授課程時行查詢
圖21 教師查詢頁面
六、程序源代碼
下面給出系統(tǒng)的部分設計圖及部分源代碼
(1)在進行系統(tǒng)界面編程前,先建立數(shù)據(jù)庫,并建立外鍵。
(2)數(shù)據(jù)庫建立后,進行窗口編程。首先建立一個新的工作空間和應用。連接數(shù)據(jù)庫,在應用的open事件下輸入如下代碼: // Profile Student SQLCA.DBMS = \"ODBC\" SQLCA.AutoCommit = False
SQLCA.DBParm = \"Connectstring='DSN=student'\" connect;
if sqlca.sqlcode<>0 then
messagebox(\"連接失敗\不能連接數(shù)據(jù)源\") return
end if open(w_login)
(3) 學生管理頁面、成績管理頁面、班級管理頁面、課程管理頁面、教師管理頁面功能似,類所以以學生管理頁面為例,學生管理頁面(圖10)的代碼如下:
專業(yè)整理
word格式文檔
顯示按鈕cb_3的代碼: dw_1.retrieve('%','%') 添加按鈕cb_tianjia的代碼: string ls_ssex dec ls_szong
if rb_1.checked then ls_ssex='男' else
if rb_2.checked then ls_ssex='女' end if end if
ls_szong=dec(sle_5.text) insert into stu values
(:sle_1.text,:sle_2.text,:ls_ssex,:em_1.text,:sle_4.text,:ls_szong); commit;
dw_1.retrieve('%','%')
dw_1.scrolltorow(dw_1.rowcount()) 刪除按鈕cb_1的代碼: dw_1.deleterow(dw_1.getrow()) 修改按鈕cb_4的代碼:
dw_1.selectrow(dw_1.getrow(),false) if cb_4.text=\"修改\" then
dw_1.selectrow(dw_1.getrow(),true) cb_4.text=\"確認\"
sle_1.text=dw_1.getitemstring(dw_1.getrow(),\"學號\") sle_2.text=dw_1.getitemstring(dw_1.getrow(),\"姓名\")
em_1.text=string(dw_1.getitemdate(dw_1.getrow(),\"出生日期\")) sle_4.text=dw_1.getitemstring(dw_1.getrow(),\"班級號\")
專業(yè)整理
word格式文檔
sle_5.text=string(dw_1.getitemdecimal(dw_1.getrow(),\"總學分\")) if dw_1.getitemstring(dw_1.getrow(),\"性別\")='男'then
rb_1.checked=true rb_2.checked=false
else
rb_2.checked=true rb_1.checked=false
end if else
cb_4.text=\"修改\" string ls_ssex dec ls_szong
if rb_1.checked then ls_ssex='男' else
if rb_2.checked then ls_ssex='女' end if end if
ls_szong=dec(sle_5.text)
dw_1.setitem(dw_1.getrow(),\"學號\dw_1.setitem(dw_1.getrow(),\"姓名\dw_1.setitem(dw_1.getrow(),\"班級號\dw_1.setitem(dw_1.getrow(),\"總學分\dw_1.setitem(dw_1.getrow(),\"出生日期\dw_1.setitem(dw_1.getrow(),\"性別\commit; sle_1.text=\"\"
專業(yè)整理
word格式文檔
sle_2.text=\"\" sle_4.text=\"\" sle_5.text=\"\" em_1.text=\"\" rb_1.checked=false rb_2.checked=false end if
修改按鈕cb_2的代碼: dw_1.update()
其中dw_1的DataObject屬性為d_stu.
(4)學生查詢頁面、成績查詢頁面、班級查詢頁面、課程查詢頁面、教師查詢頁面功能類似,所以以學生查詢頁面為例,學生查詢頁面(圖11)的代碼如下: 學生查詢按鈕cb_1的代碼:
dw_1.retrieve('%'+sle_1.text+'%','') 班級查詢按鈕cb_2的代碼:
dw_1.retrieve('','%'+sle_2.text+'%') 其中dw_1的DataObject屬性為d_stu.
(5)按班級號、按課程號計算平均成績、最高成績、最低成績、及格率功能類似,所以以查詢班級號的及格率為例,查詢班級號的及格率頁面(圖14)的代碼如下:
Tab_1.tabpage_4.cb_7的clicked事件下的代碼為: integer count1,result,count2 declare jisuan cursor for select 分數(shù) from score where 班級號=:sle_7.text; open jisuan;
fetch jisuan into :result; do while sqlca.sqlcode=0 count2=count2+1
專業(yè)整理
word格式文檔
if result>=60 then count1=count1+1 end if
fetch jisuan into :result; loop
close jisuan; messagebox(\"
提
示
\
該
班
級
的
及
格
率
是:\"+string((count1/count2)*100)+'%') (6)查詢教師授課成績頁面(圖19)的代碼如下: Teacher表與course表以教師號為外鍵建立關(guān)聯(lián)。 按鈕Cb_1的clicked事件下的代碼: dw_1.retrieve('%'+sle_1.text+'%') 其中dw_1的DataObject屬性為d_shouke
七、 心得體會
PowerBuilder開發(fā)工具是一款比較好用的開發(fā)工具,通過這次課程設計,我基本上掌握了PB開發(fā)工具的運用,能完成一些小型軟件的設計了,不得不說,課程設計是一門必要的課程。
在做《教學管理系統(tǒng)》的這段時間里讓我學會了很多,也懂得了很多。通過這次課設讓我更深刻的了解到了在課堂上的學習總是膚淺的,只有在實踐中才能學到更多的東西,才能對書本上的知識理解的更透徹。
數(shù)據(jù)庫理論是建數(shù)據(jù)庫的基礎,使數(shù)據(jù)庫的建立更加完善,使數(shù)據(jù)庫之間的聯(lián)系更加緊密。只有數(shù)據(jù)庫組織數(shù)據(jù)還是遠遠不夠的,因為人是最終用戶,所以操作界面必須得友好,操作起來更加得心應手。
在本次課程設計過程中,我查閱了大量的關(guān)于教學管理系統(tǒng)的資料和網(wǎng)站,通過老師的指導和自己的努力,終于完成了本次課程設計。希望在以后的學習生活當中能夠再接再厲。最后的結(jié)果固重要,但更重要的是它讓自己了解了數(shù)據(jù)庫設計的一般過程。在接受客戶的一個項目的時候,首先是進行系統(tǒng)分析。首先分
專業(yè)整理
word格式文檔
析其以后的銷售情況以及技術(shù)可行性。如果二者可行,我們接下來做的就是總體設計。我們首先必須聽取客戶的要求,將其提出的功能按某種方式劃分為幾種模塊。這就是整體設計。在對每一個模塊進行細化形成最為簡單的模塊。然后是考慮每一細化模塊的算法并將其用語言刻畫出來。這就是詳細設計。這就邁出了最為關(guān)鍵的一步。剩下的就是編譯測試階段。這是編程的必經(jīng)階段,也是我們勞動結(jié)果的驗金石。只有得到我們期望的結(jié)果我們才算真正完成了任務??朔щy,堅持不懈作為一個軟件編程者更是必不可少的。只有敢于對困難說不,我們才能成為真正的軟件編程者。不懈上帝是公平的,又付出就有回報。眼前的困難只是你前進路上的絆腳石。只要我們不怕痛,我們就能堅持的走下來,最終走向勝利。人類需要處理的數(shù)據(jù)越來越多,對數(shù)據(jù)管理的要求也越來越重要。軟件的發(fā)展也從面向程序發(fā)展成為面向數(shù)據(jù)。
專業(yè)整理
因篇幅問題不能全部顯示,請點此查看更多更全內(nèi)容
Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號-2
違法及侵權(quán)請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬商天勤律師事務所王興未律師提供法律服務