學生成績管理系統實例_第1頁
學生成績管理系統實例_第2頁
學生成績管理系統實例_第3頁
學生成績管理系統實例_第4頁
學生成績管理系統實例_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第10章 學生成績管理系統實例 10.1 系統分析與設計 10.2 數據庫設計與實現 10.3 創立應用對象 10.4 設計系統管理模塊 10.5 設計主窗口和菜單 10.6 設計班級管理模塊 10.7 設計學生根本信息管理模塊 10.8 設計課程管理模塊10.9 設計成績管理模塊 10.10 系統的編譯和發布10.11 小 結 10.12 實 訓 本章要點 PowerBuilder應用系統分析 PowerBuilder應用系統的開發過程 PowerBuilder應用程序的各種對象的設計方法 PowerBuilder應用程序的調試和發布 10.1 系統分析與設計 一個應用系統的開發過程包括分析

2、、設計、實現、調試和發布等階段,本節介紹學生成績管理系統的功能分析和模塊設計。 10.1.1 系統功能分析 本例中的學生成績管理系統需要完成的主要功能如下。(1) 班級信息的輸入和存儲,包括班級編號、班級名稱、所屬專業、入校時間和學制等。(2) 對已經輸入的班級信息的修改、查詢。(3) 學生根本信息的輸入和存儲,包括學號、姓名、性別、出生日期、班級等。(4) 學生根本信息的修改和查詢。(5) 每學期初各班所開設課程的輸入,包括課程名、學期、學時等。(6) 各班所開設課程信息的修改和查詢。(7) 學期末輸入每個學生的考試成績。(8) 學生成績的修改。(9) 查詢某個學生某學期的各科成績。(10)

3、 查詢并打印某班某學期所有學生的各科成績。(11) 查詢并打印某班某學期某科成績。(12) 系統具有用戶和密碼的管理。 10.1.2 系統功能模塊設計 通過對上述各項功能的分析、分類、綜合,按照模塊化程序設計的要求,得到如下圖的功能模塊圖。 10.2 數據庫設計與實現 10.2.1 數據庫設計根據學生成績管理系統的功能要求,通過分析系統要涉及的相關實體以及要收集、存儲和操縱的數據信息,得到系統E-R圖。根據系統E-R圖得到以下關系模式。l 班級(班級編號,班級名稱,所屬專業,學制,入學時間,人數)。l 學生根本信息(學號,姓名,性別,出生日期,家庭住址,班級編號)。l 課程(班級編號,學期,課

4、程名稱,學時,教師)。l 成績(學號,學期,課程名稱,成績)。為了系統的使用平安,要建立用戶管理,而用戶使用權限分為管理員和一般用戶兩類,因此需要建立一個存儲用戶信息的關系。l用戶(姓名,密碼,權限)。 10.2.2 創立數據庫 首先,在D盤根目錄下建立本實例的工作文件夾“xscj,再在“D:xscj文件夾下建立文件夾“data,用于存儲數據庫文件。在PowerBuilder開發環境中翻開數據庫畫板,使用【ODB ODBC 】接口建立Adaptive Server Anywhere 8.0(ASA 8.0 )的數據庫D:xscjdataxscj.db,然后依次建立以下5個表和1個視圖。“班級表

5、 、“學生根本信息表 、“課程表 、“成績表 、“用戶表 、視圖“xsbj 學生根本信息表和班級表連接 各個表之間通過外鍵形成如下圖的關聯關系。10.3 創立應用對象 (1) 創立新的工作空間,工作空間文件路徑及名稱設為“d:xscjxscj.pbw。(2) 創立應用對象,應用對象名設為“app_xscj,應用庫文件路徑及名稱設為“d:xscjxscj.pbl,目標文件路徑及名稱設為“d:xscjxscj.pbt。(3) 翻開應用對象畫板,應用對象app_xscj的Icon屬性設置為“d:xscjBOOKS.ICO。BOOKS.ICO是預先準備的圖標文件。 (4) 為應用對象app_xscj的

6、Open事件編寫代碼如下。 /連接數據庫SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=xscj;UID=dba;PWD=sqlCONNECT;if SQLCA.sqlcode0 thenmessagebox(提示,數據庫連接失敗!)else /open(w_login) /翻開登錄窗口end if10.4 設計系統管理模塊 10.4.1 設計登錄窗口 1. 創立窗口并設置屬性 2. 編寫腳本 10.4.2 設計密碼修改窗口 1. 創立窗口并設置屬性 2. 編寫腳本 10.4.3 設計用戶管理的

7、數據窗口和窗口 1. 設計數據窗口2. 創立窗口并設置屬性 3. 編寫腳本 10.5 設計主窗口和菜單 10.5.1 創立菜單對象菜單結構如圖10.8所示。菜單對象名為“m_main,菜單欄中的菜單項設置了訪問鍵(AccessKey),常用的菜單項設置了快捷鍵(如【退出系統】的快捷鍵為【Alt+F4】,【錄入班級信息】的快捷鍵為【Ctrl+A】),最常用的菜單項在工具條上建立了按鈕。編寫各個菜單項的腳本。對于這些代碼行,在對應的窗口沒有建立之前先注釋掉,在對應的窗口建立后再去掉其注釋符。 10.5.2 設計主窗口 主窗口界面如下圖。創立窗口對象w_main,設置相應屬性。窗口對象w_main的

8、Open事件腳本如下。if gs_admin=n thenm_main.m_系統.m_用戶管理.enabled=falseend if 對 象屬 性取 值w_mainTitle學生成績管理系統Window Typemdihelp!MenuNamem_mainWindowStatemaximized10.6 設計班級管理模塊 本模塊實現班級信息的輸入、修改和查詢。 10.6.1 設計訪問班級信息的數據窗口 1. 設計輸入班級信息的數據窗口 創立數據窗口d_banji_shuru,顯示風格為“Freeform,數據源類型為“Quick Select。數據窗口d_banji_shuru生成的SQL

9、Select語句為:SELECT banji.bjbh, banji.bjmc, banji.zymc, banji.xz, banji.rxsj,banji.rs FROM banji 2. 設計修改班級信息的數據窗口創立數據窗口d_banji_xiugai,顯示風格為“Grid,數據源類型為“Quick Select,其布局如下圖。數據窗口d_banji_xiugai生成的SQL Select語句為:SELECTbanji.bjbh,banji.bjmc,banji.zymc,banji.xz,banji.rxsj,banji.rs FROM banji ORDER BY banji.bj

10、bh ASC10.6.2 設計訪問班級信息的窗口 1. 設計輸入窗口創立窗口對象w_shuru,調整其大小,放置1個數據窗口控件(dw_1)、8個命令按鈕控件(cb_1 cb_8),窗口布局如下圖。設置窗口及其控件的屬性。 設置完屬性后開始編寫腳本代碼 。2. 設計修改窗口創立窗口對象w_xiugai,調整其大小,放置1個數據窗口控件(dw_1)、4個命令按鈕控件(cb_1 cb_4),窗口布局如圖10.13所示。設置窗口及其控件的屬性。窗口和控件的事件腳本與輸入窗口的對應局部相同。3. 設計輸入班級信息窗口通過繼承輸入窗口w_shuru生成輸入班級信息窗口w_banji_shuru,將數據控

11、件dw_1的DataObject屬性設置為d_banji_shuru,將窗口的Title屬性改為“錄入班級信息,此窗口設計便完成了。4. 設計修改班級信息窗口通過繼承修改窗口w_xiugai生成修改班級信息窗口w_banji_xiugai,將數據控件dw_1的DataObject屬性設置為d_banji_xiugai,將窗口的Title屬性改為“修改班級信息,此窗口設計便完成。 5. 設計瀏覽班級信息窗口創立窗口對象w_banji_liulan,調整其大小,放置1個數據窗口控件dw_1,調整窗口布局如下圖。 設置窗口及其控件的屬性。窗口的Open事件腳本如下。dw_1.settransobje

12、ct( sqlca) dw_1.retrieve()10.7 設計學生根本信息管理模塊 10.7.1 設計訪問學生根本信息的數據窗口 1設計輸入學生根本信息的數據窗口創立數據窗口d_jiben_shuru,顯示風格為“Freeform,數據源類型為“Quick Select,其布局如下圖。其中,列控件“xb的編輯風格改為“RadioButtons,碼表如圖10.15中所示;列控件“bjbh的編輯風格改為“DropDownDW,其DataWindow屬性設置為“d_banji_xiugai,Display Column屬性和Data Column屬性都設置為“bjbh,Width of Drop

13、Down(%)屬性設置為“300,Lines in DropDown屬性設置為“6,VScrollBar屬性設置為“True。 2設計修改學生根本信息的數據窗口創立數據窗口d_jiben_xiugai,顯示風格為“Grid,數據源類型為“Quick Select,其布局如下圖。其中,列控件“xb的編輯風格改為“DropDownListBox,列表項為“男,“女;列控件“bjbh的編輯風格改為“DropDownDW,其DataWindow屬性設置為“d_banji_xiugai,Display Column屬性和Data Column屬性都設置為“bjbh,Width of DropDown(%

14、)屬性設置為“300,Lines in DropDown屬性設置為“6,VScrollBar屬性設置為“True。 3設計查詢學生根本信息的數據窗口創立數據窗口d_jiben_chaxun,顯示風格為“Grid,數據源類型為“SQL Select,其布局如圖10.17所示。其中,定義3個String型檢索參數變量mxh、mxm、mbj,分別表示學號、姓名、班級,形成帶檢索參數的數據窗口。該數據窗口的修改屬性為默認值即“不允許修改。 10.7.2 設計訪問學生根本信息的窗口 1設計輸入學生根本信息的窗口通過繼承輸入窗口w_shuru生成輸入學生根本信息窗口w_jiben_shuru,將數據控件d

15、w_1的DataObject屬性設置為d_jiben_shuru,將窗口的Title屬性改為“錄入學生根本信息,此窗口設計便完成了。2設計修改學生根本信息的窗口通過繼承修改窗口w_xiugai生成修改學生根本信息窗口w_jiben_xiugai,將數據控件dw_1的DataObject屬性設置為d_jiben_xiugai,將窗口的Title屬性改為“修改學生根本信息,此窗口設計便完成了。3設計查詢學生根本信息的窗口要求此窗口中能夠根據學生的姓名或學號查詢出學生的根本信息,能夠根據班級名稱查詢出該班所有學生的根本信息。查詢學生根本信息窗口如下圖。創立一個窗口對象w_jiben_chaxun,放

16、置控件 ,設置窗口及其控件的屬性 。 編寫【查詢】按鈕的Open事件腳本。【查詢】按鈕的Open事件腳本如下。dw_1.settransobject( sqlca)if ddlb_1.text= or sle_1.text= thenmessagebox(提示,查詢列和查詢內容不能空!)returnend ifstring strstr=trim(sle_1.text)choose case ddlb_1.textcase 學號dw_1.retrieve( str, %,%)case 姓名dw_1.retrieve( %,str ,%)case 班級名稱dw_1.retrieve( %,%,

17、str)end choose10.8 設計課程管理模塊 10.8.1 設計訪問課程信息的數據窗口1. 設計輸入班級課程信息的數據窗口創立數據窗口d_bjkc_shuru,顯示風格為“Grid,數據源類型為“Quick Select,其布局如下圖。其中,列控件“bjbh的編輯風格改為“DropDownDW,其DataWindow屬性設置為“d_banji_xiugai,Display Column屬性和Data Column屬性都設置為“bjbh,Width of DropDown(%)屬性設置為“300,Lines in DropDown屬性設置為“6,VScrollBar屬性設置為“True

18、。 2. 設計查詢班級課程信息的數據窗口創立數據窗口d_bjkc_chaxun,顯示風格為“Grid,數據源類型為“SQL Select,其布局如圖10.20所示。其中,定義2個String型檢索參數變量mxq、mbjmc,分別表示學期、班級,形成帶檢索參數的數據窗口。該數據窗口的修改屬性為默認值即“不允許修改。 10.8.2 設計訪問課程信息的窗口 1. 設計輸入修改班級課程信息的窗口窗口的布局如下圖。從祖先窗口w_xiugai繼承生成窗口對象w_bjkc_shuruxiugai,調整其大小。然后將數據窗口控件dw_1的DataObject屬性設置為d_bjkc_shuru,此窗口設計即完成

19、。 2. 設計查詢班級開設課程的窗口 窗口如下圖。創立一個窗口對象w_bjkc_chaxun,放置控件,設置窗口及其控件的屬性。書寫各個對象的事件腳本。(1) 窗口w_bjkc_chaxun的Open事件腳本 (2) 【查詢】按鈕的Clicked事件腳本 10.9 設計成績管理模塊 10.9.1 設計訪問成績信息的數據窗口1. 設計輸入成績的數據窗口創立數據窗口d_xscj_shuru,顯示風格為“Grid,數據源類型為“SQL Select,其布局如下圖。數據來源于成績表xscj和視圖xsbj,其中,學號、學期、課程名稱和成績為成績表xscj的列,姓名是視圖xsbj的列。選擇【Rows】|【

20、Update Properties】命令,設置數據窗口的修改屬性,使只有成績表xscj的成績列(xscj_cj)可以在數據窗口中修改,關鍵字為成績表xscj的主關鍵字(xh,xq,kcmc)。然后,單擊工具條上的【Tab Order】圖標,將列控件xscj_cj的Tab Order值設為10。 2. 設計查詢學生個人某學期各科成績的數據窗口創立數據窗口d_xscj_grcx,顯示風格為“Grid,數據源類型為“Quick Select,其布局如圖10.25所示。在【Summary】條中添加一個計算域控件,計算數據窗口中成績總和。數據窗口的檢索參數為mxh、mxq,分別對應于學號和學期。 3.

21、設計查詢某班級某學期全體學生各科成績的數據窗口創立數據窗口d_xscj_bjcx,顯示風格為“Cross Tab,數據源類型為“SQL Select,其布局如下圖。數據來源于成績表xscj和視圖xsbj,其中,學號、課程名稱和成績為成績表xscj的列,姓名是視圖xsbj的列。在【Header1】條中添加2個計算域控件,對應的表達式分別為mbjmc和mxq,3個文本控件,其文本分別為“成績單、“班級:和“學期:。數據窗口的檢索參數為mxq和mbjmc,分別對應于學期和班級名稱。修改屬性取默認值(不允許修改)。 4. 設計查詢某班級某學期全體學生某科成績的數據窗口創立數據窗口d_xscj_kccx

22、,顯示風格為“N_Up,欄數為2,數據源類型為 “SQL Select,其布局如圖10.27所示。數據來源于成績表xscj和視圖xsbj,其中,學號和成績為成績表xscj的列,姓名是視圖xsbj的列。在【Header】條中添加2個計算域控件對應的表達式分別為mbjmc和mkcmc,3個文本控件,其文本分別為“成績單、“班級:和“課程:。數據窗口的檢索參數為mxq、mbjmc和mkcmc,分別對應于學期、班級名稱和課程名稱。修改屬性取默認值(不允許修改)。 10.9.2 設計訪問成績信息的窗口 1. 設計輸入成績的窗口輸入成績的窗口如下圖。首先創立窗口對象w_xscj_shuru,放置控件,調整窗口和控件的大小、位置及有關屬性。其中,【保存】按鈕的enabled屬性設為False;數據窗口控件調整到只顯示學號、姓名和成績3列,VScrollBar屬性設為True,數據窗口對象為d_xscj_shuru;3個下拉列表框控件的列表項為空,由代碼動態生成。編寫窗口和各個控件的事件腳本。2. 設計查詢學生個人成績的窗口查詢學生個人成績的窗口如下圖。數據窗口控件連接的數據窗口對象為d_x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論