鄭志榮
摘要:隨著計算機軟件的發(fā)展,很多人工對數(shù)據(jù)的管理都逐漸被計算機軟件所淘汰。目前各大高校都會針對本學院實際情況采購整套教務管理系統(tǒng),方便學院的教務管理。但對于部分小的學校和培訓機構(gòu),不愿意承擔更多的經(jīng)費來采購大的教務管理系統(tǒng),僅僅是為了解決課程管理方面的問題,那么用本文所提出的課程管理系統(tǒng)就可以實現(xiàn)課程安排、課程管理以及班級課表查詢等功能。
關(guān)鍵詞:課程管理系統(tǒng);設(shè)計;實現(xiàn)
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2016)29-0120-02
1系統(tǒng)的實現(xiàn)目標
通過本系統(tǒng),可以實現(xiàn)對本學院的教學任務進行錄入、課程進行編排。通過計算機智能排課,把2系統(tǒng)模塊設(shè)計
本系統(tǒng)主要有以下模塊:
1.1課程管理模塊
1)課程庫管理
2)課程安排
3)課程安排查詢
4)班級課表
1.2系統(tǒng)維護模塊
1)用戶管理
2)關(guān)于
3)幫助
4)退出系統(tǒng)
2詳細設(shè)計
2.1課程管理模塊
課程管理模塊能實現(xiàn)對人才培養(yǎng)方案所規(guī)定的課程進行導人,對教學計劃進行調(diào)整。并可通過手工增加課程信息,完成課程管理的基本功能,比如輸入課程信息、修改課程信息、修改教室信息、刪除課程信息、備份課程信息等。本節(jié)內(nèi)容包括如下幾個方面:課程管理模塊的分析;窗口基本空間的實際;軟件界面的設(shè)計;軟件數(shù)據(jù)庫的構(gòu)建。
1)模塊功能分析
實現(xiàn)思路:課程信息保存在Course數(shù)據(jù)表中,通過ADO的Recordset對象從數(shù)據(jù)表中取出記錄,并通過DataGrid表格將數(shù)據(jù)顯示在數(shù)據(jù)表上,實現(xiàn)數(shù)據(jù)的瀏覽。由于是單表操作,可以通過Recordset對象的AddNew、Delete、Updme等方法可以實現(xiàn)添加、刪除和修改功能。
2)窗體的設(shè)計
單擊“工程”菜單下的——“添加窗體”,給工程創(chuàng)建一個新的窗體控件,窗體的控件屬性如下所示:
將窗體保存為kechengguanh.frm。
3)課程管理模塊界面的設(shè)計
課程管理模塊界面設(shè)計一定要人性化,便于用戶操作。顏色上選擇淺色作為底色,在窗體上添加日期選擇框、文本框控件、按鈕控件、組合框控件以及若干標簽和數(shù)據(jù)控件。其中dt-pBeginDate是日期選擇框。數(shù)據(jù)表格dbgClass的設(shè)置可以參考“院系設(shè)置模塊”中對dbgDepart的操作。
4)模塊功能的實現(xiàn)
窗體卸載過程,在窗體的卸載過程中完成以下功能:斷開數(shù)據(jù)表格和數(shù)據(jù)集的綁定;關(guān)閉打開
的數(shù)據(jù)集;斷開模塊和數(shù)據(jù)庫的連接;
釋放ADO對象實例。代碼如下:
Private Sub Form_Unload(Cancel As Integer)
Set dgCourse.DataSource=Nothing
rs.Close
Conn.Close
Set rs=Nothing
Set Conn=Nothing
End Sub
數(shù)據(jù)瀏覽功能的實現(xiàn):
通過四個導航按鈕實現(xiàn)對數(shù)據(jù)庫的瀏覽。代碼如下:
Private Sub cmdFirst_Click0
If rs.RecordCount>0 Then rs.MoveFirst
End Sub
Private Sub cmdLast_Click0
If rs.RecordCount>0 Then rs.MoveLast
End Sub
Private Sub cmdNext_Click0
If Not rs.EOF Then rs.Mo eNext
If rs.EOF And rs.RecordCount>0 Then
rs.MoveLast
End If
End Sub
Private Sub cmdPrevious_Click()
If Not rs.BOF Then rs.MovePrevious
If rs.BOF And rs.RecordCount>0 Then
rs.MoveFirst
End If
End Sub
記錄添加功能的實現(xiàn):
界面上的文本框沒有和數(shù)據(jù)集綁定,在里面輸入數(shù)據(jù)并不影響數(shù)據(jù)集里面的記錄。當單擊[添加]按鈕時,利用Recordset對象的AddNew方法將文本框中的數(shù)據(jù)加到數(shù)據(jù)集中。添加前先對數(shù)據(jù)進行規(guī)格化處理,然后驗證數(shù)據(jù)的合法性,并利用另一個Recordset對象檢查課程編號的合法性。使用AddNew方法添加記錄后,數(shù)據(jù)只保存在緩沖區(qū)中,需要調(diào)用UpdateBatch(或者Update)方法將數(shù)據(jù)寫到數(shù)據(jù)庫中。注意,rsValid使用完畢后應該將其釋放。
數(shù)據(jù)修改/保存功能的實現(xiàn):
當用戶按下[修改]按鈕時,請數(shù)據(jù)集中的字段信息取出放到文本框中供用戶修改,使[保存]按鈕能夠被用戶單擊,以保存修改后的數(shù)據(jù)。Credit和Period是數(shù)值型字段,需要進行類型轉(zhuǎn)化。
[保存]按鈕功能的實現(xiàn)和[添加]按鈕比較相似,不同的是如果課程編號被修改,為了保持數(shù)據(jù)庫的完整性,其他數(shù)據(jù)表(包括選課數(shù)據(jù)表、成績數(shù)據(jù)表)中的課程編號也應作相應的修改,也就是數(shù)據(jù)的“級聯(lián)更新”。級聯(lián)更新通過ADO的Com—mand對象來實現(xiàn),利用該對象執(zhí)行一個更新數(shù)據(jù)的SQL語句實現(xiàn)對表中多條數(shù)據(jù)的一次性更新。使用Command對象時,注意Command對象屬性的設(shè)置。
當用戶單擊導航按鈕移動數(shù)據(jù)集指針后,為了防止單擊[保存]按鈕錯誤修改數(shù)據(jù),應禁止[保存]按鈕。在代碼編寫窗口對象組合框中選擇“rs”,從事件組合框中選擇“MoveCom-Dlete”事件。
2.2課程編排模塊
課程編排模塊主要負責人物、時間、地點等要素的合理分配,智能編排出科學合理的課表。主要涉及錄入教室信息、教室信息、課程信息和各種約束條件。軟件設(shè)計內(nèi)容包括如下幾個方面:模塊分析;窗體的創(chuàng)建;模塊用戶界面的設(shè)計;模塊功能的實現(xiàn)。
2.2.1模塊功能分析
實現(xiàn)思路:可以列出所有班級和課程供用戶選擇安排,已經(jīng)安排好的課程用表格顯示出來供用戶修改、刪除。數(shù)據(jù)的顯示通過ADO的Recordset對象實現(xiàn),數(shù)據(jù)的添加、修改、刪除通過ADO的Command對象完成。
2.2.2窗體的設(shè)計
在工程中新建一個窗體,將窗體保存為FormCourseAr-range.frm。窗體的主要屬性設(shè)置如下表所示:
2.2.3課程安排查詢模塊
課程安排模塊實現(xiàn)對各門課程安排情況的查詢。本節(jié)內(nèi)容包括如下幾個方面:模塊分析;窗體的創(chuàng)建;模塊用戶界面的設(shè)計;模塊功能的實現(xiàn)。
1)模塊功能分析
實現(xiàn)思路:為了便于用戶查詢課程安排情況,可以從常用的幾個選項來查詢。比如按教室查詢課程情況;按教師查詢課程情況;按課程名查詢?nèi)握n信息等。使用組合框或者多選項來完成。用戶只需要點擊相關(guān)選項,輸入必須的關(guān)鍵字段,比如教室號或者教師名等信息,就將課程安排的整體情況顯示出來。設(shè)置導出和打印按鈕控件,方便用戶導出編輯或者直接打印課表安排信息。
2)窗體的設(shè)計在工程中新建一個窗體,將窗體保存為CourseQuery.frm。窗體的主要屬性設(shè)置如下表所示:
3)模塊功能的實現(xiàn)
仿照前面的程序代碼,不難實現(xiàn)本模塊。這里只簡要說明編程思路。窗體加載時,需要將所有課程的編號填充到組合框中;為了初始化界面,應在窗體加載過程中調(diào)用組合框的Click事件;組合框被單擊時,需要顯示該課程的基本信息;組合框被單擊時,還需要將該課程被安排的情況顯示在表格中。具體的編程實現(xiàn)可參考“課程安排”模塊。
2.2.4班級課表查詢模塊
課程課表查詢模塊實現(xiàn)對各班級的課程安排情況的查詢。本節(jié)內(nèi)容包括如下幾個方面:模塊分析;窗體的創(chuàng)建;模塊用戶界面的設(shè)計;模塊功能的實現(xiàn)。實現(xiàn)思路:本模塊和“課程安排查詢”模塊都是查詢選課數(shù)據(jù)表(CourseSelectl,不同之處在于本模塊是按照班級查詢選課課表,而“課程安排查詢”模塊是按照課程查詢。窗體的設(shè)計與前面的模塊設(shè)計基本類似,不再介紹。
3系統(tǒng)的編譯和發(fā)行
所有模塊設(shè)計完成以后,系統(tǒng)的工程窗口應該如右圖所示。單擊[運行]→[啟動]菜單項(或者按F5功能鍵),運行程序,輸入實驗數(shù)據(jù),測試系統(tǒng)的功能,如果有任何問題請檢查、修改各項設(shè)置和程序代碼。單擊[文件]→[生成教學管理系統(tǒng).exe]菜單項,Visual Basic編譯生成一個可執(zhí)行文件教學管理系統(tǒng).exe。將教學管理系統(tǒng).exe和教學管理系統(tǒng).mdb復制到任意一個文件夾或者其他的機器上,雙擊教學管理系統(tǒng).exe,進行獨立運行測試。
4總結(jié)與提高
本文采用ADO方式設(shè)計開發(fā)了一套課程管理系統(tǒng)。與數(shù)據(jù)控件方式比較,采用ADO方式設(shè)計開發(fā)編程的技術(shù)難度更大,不過ADO方式更加靈活,可讀性,穩(wěn)定性更高。特別是在軟件開發(fā)的實際中,采用AOD方式設(shè)計開發(fā)的方式應用更為普遍。軟件開發(fā)過程用,用戶的需求永遠是第一位的,在保證軟件實現(xiàn)功能的基礎(chǔ)上,盡最大可能的滿足用戶操作,界面設(shè)計友好,操作簡單,便于上手操作。對某些細節(jié)問題進行適當?shù)奶幚怼DO對象庫中,部分對象的功能重疊,例如,Recordset對象、Command對象、Connection對象都可以實現(xiàn)數(shù)據(jù)的添加、修改和刪除,但不同對象處理的相同功能的方式是不一樣的,以添加數(shù)據(jù)為例,使用Command對象效率更高,而使用Record-set對象操作更加方便一些。在學習ADO編程時應仔細體會它們的區(qū)別,以便更好地掌握它們。