




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第10章 學(xué)生成績管理系統(tǒng)實(shí)例 10.1 系統(tǒng)分析與設(shè)計 10.2 數(shù)據(jù)庫設(shè)計與實(shí)現(xiàn) 10.3 創(chuàng)立應(yīng)用對象 10.4 設(shè)計系統(tǒng)管理模塊 10.5 設(shè)計主窗口和菜單 10.6 設(shè)計班級管理模塊 10.7 設(shè)計學(xué)生根本信息管理模塊 10.8 設(shè)計課程管理模塊10.9 設(shè)計成績管理模塊 10.10 系統(tǒng)的編譯和發(fā)布10.11 小 結(jié) 10.12 實(shí) 訓(xùn) 本章要點(diǎn) PowerBuilder應(yīng)用系統(tǒng)分析 PowerBuilder應(yīng)用系統(tǒng)的開發(fā)過程 PowerBuilder應(yīng)用程序的各種對象的設(shè)計方法 PowerBuilder應(yīng)用程序的調(diào)試和發(fā)布 10.1 系統(tǒng)分析與設(shè)計 一個應(yīng)用系統(tǒng)的開發(fā)過程包括分析
2、、設(shè)計、實(shí)現(xiàn)、調(diào)試和發(fā)布等階段,本節(jié)介紹學(xué)生成績管理系統(tǒng)的功能分析和模塊設(shè)計。 10.1.1 系統(tǒng)功能分析 本例中的學(xué)生成績管理系統(tǒng)需要完成的主要功能如下。(1) 班級信息的輸入和存儲,包括班級編號、班級名稱、所屬專業(yè)、入校時間和學(xué)制等。(2) 對已經(jīng)輸入的班級信息的修改、查詢。(3) 學(xué)生根本信息的輸入和存儲,包括學(xué)號、姓名、性別、出生日期、班級等。(4) 學(xué)生根本信息的修改和查詢。(5) 每學(xué)期初各班所開設(shè)課程的輸入,包括課程名、學(xué)期、學(xué)時等。(6) 各班所開設(shè)課程信息的修改和查詢。(7) 學(xué)期末輸入每個學(xué)生的考試成績。(8) 學(xué)生成績的修改。(9) 查詢某個學(xué)生某學(xué)期的各科成績。(10)
3、 查詢并打印某班某學(xué)期所有學(xué)生的各科成績。(11) 查詢并打印某班某學(xué)期某科成績。(12) 系統(tǒng)具有用戶和密碼的管理。 10.1.2 系統(tǒng)功能模塊設(shè)計 通過對上述各項功能的分析、分類、綜合,按照模塊化程序設(shè)計的要求,得到如下圖的功能模塊圖。 10.2 數(shù)據(jù)庫設(shè)計與實(shí)現(xiàn) 10.2.1 數(shù)據(jù)庫設(shè)計根據(jù)學(xué)生成績管理系統(tǒng)的功能要求,通過分析系統(tǒng)要涉及的相關(guān)實(shí)體以及要收集、存儲和操縱的數(shù)據(jù)信息,得到系統(tǒng)E-R圖。根據(jù)系統(tǒng)E-R圖得到以下關(guān)系模式。l 班級(班級編號,班級名稱,所屬專業(yè),學(xué)制,入學(xué)時間,人數(shù))。l 學(xué)生根本信息(學(xué)號,姓名,性別,出生日期,家庭住址,班級編號)。l 課程(班級編號,學(xué)期,課
4、程名稱,學(xué)時,教師)。l 成績(學(xué)號,學(xué)期,課程名稱,成績)。為了系統(tǒng)的使用平安,要建立用戶管理,而用戶使用權(quán)限分為管理員和一般用戶兩類,因此需要建立一個存儲用戶信息的關(guān)系。l用戶(姓名,密碼,權(quán)限)。 10.2.2 創(chuàng)立數(shù)據(jù)庫 首先,在D盤根目錄下建立本實(shí)例的工作文件夾“xscj,再在“D:xscj文件夾下建立文件夾“data,用于存儲數(shù)據(jù)庫文件。在PowerBuilder開發(fā)環(huán)境中翻開數(shù)據(jù)庫畫板,使用【ODB ODBC 】接口建立Adaptive Server Anywhere 8.0(ASA 8.0 )的數(shù)據(jù)庫D:xscjdataxscj.db,然后依次建立以下5個表和1個視圖。“班級表
5、 、“學(xué)生根本信息表 、“課程表 、“成績表 、“用戶表 、視圖“xsbj 學(xué)生根本信息表和班級表連接 各個表之間通過外鍵形成如下圖的關(guān)聯(lián)關(guān)系。10.3 創(chuàng)立應(yīng)用對象 (1) 創(chuàng)立新的工作空間,工作空間文件路徑及名稱設(shè)為“d:xscjxscj.pbw。(2) 創(chuàng)立應(yīng)用對象,應(yīng)用對象名設(shè)為“app_xscj,應(yīng)用庫文件路徑及名稱設(shè)為“d:xscjxscj.pbl,目標(biāo)文件路徑及名稱設(shè)為“d:xscjxscj.pbt。(3) 翻開應(yīng)用對象畫板,應(yīng)用對象app_xscj的Icon屬性設(shè)置為“d:xscjBOOKS.ICO。BOOKS.ICO是預(yù)先準(zhǔn)備的圖標(biāo)文件。 (4) 為應(yīng)用對象app_xscj的
6、Open事件編寫代碼如下。 /連接數(shù)據(jù)庫SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=xscj;UID=dba;PWD=sqlCONNECT;if SQLCA.sqlcode0 thenmessagebox(提示,數(shù)據(jù)庫連接失敗!)else /open(w_login) /翻開登錄窗口end if10.4 設(shè)計系統(tǒng)管理模塊 10.4.1 設(shè)計登錄窗口 1. 創(chuàng)立窗口并設(shè)置屬性 2. 編寫腳本 10.4.2 設(shè)計密碼修改窗口 1. 創(chuàng)立窗口并設(shè)置屬性 2. 編寫腳本 10.4.3 設(shè)計用戶管理的
7、數(shù)據(jù)窗口和窗口 1. 設(shè)計數(shù)據(jù)窗口2. 創(chuàng)立窗口并設(shè)置屬性 3. 編寫腳本 10.5 設(shè)計主窗口和菜單 10.5.1 創(chuàng)立菜單對象菜單結(jié)構(gòu)如圖10.8所示。菜單對象名為“m_main,菜單欄中的菜單項設(shè)置了訪問鍵(AccessKey),常用的菜單項設(shè)置了快捷鍵(如【退出系統(tǒng)】的快捷鍵為【Alt+F4】,【錄入班級信息】的快捷鍵為【Ctrl+A】),最常用的菜單項在工具條上建立了按鈕。編寫各個菜單項的腳本。對于這些代碼行,在對應(yīng)的窗口沒有建立之前先注釋掉,在對應(yīng)的窗口建立后再去掉其注釋符。 10.5.2 設(shè)計主窗口 主窗口界面如下圖。創(chuàng)立窗口對象w_main,設(shè)置相應(yīng)屬性。窗口對象w_main的
8、Open事件腳本如下。if gs_admin=n thenm_main.m_系統(tǒng).m_用戶管理.enabled=falseend if 對 象屬 性取 值w_mainTitle學(xué)生成績管理系統(tǒng)Window Typemdihelp!MenuNamem_mainWindowStatemaximized10.6 設(shè)計班級管理模塊 本模塊實(shí)現(xiàn)班級信息的輸入、修改和查詢。 10.6.1 設(shè)計訪問班級信息的數(shù)據(jù)窗口 1. 設(shè)計輸入班級信息的數(shù)據(jù)窗口 創(chuàng)立數(shù)據(jù)窗口d_banji_shuru,顯示風(fēng)格為“Freeform,數(shù)據(jù)源類型為“Quick Select。數(shù)據(jù)窗口d_banji_shuru生成的SQL
9、Select語句為:SELECT banji.bjbh, banji.bjmc, banji.zymc, banji.xz, banji.rxsj,banji.rs FROM banji 2. 設(shè)計修改班級信息的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_banji_xiugai,顯示風(fēng)格為“Grid,數(shù)據(jù)源類型為“Quick Select,其布局如下圖。數(shù)據(jù)窗口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 設(shè)計訪問班級信息的窗口 1. 設(shè)計輸入窗口創(chuàng)立窗口對象w_shuru,調(diào)整其大小,放置1個數(shù)據(jù)窗口控件(dw_1)、8個命令按鈕控件(cb_1 cb_8),窗口布局如下圖。設(shè)置窗口及其控件的屬性。 設(shè)置完屬性后開始編寫腳本代碼 。2. 設(shè)計修改窗口創(chuàng)立窗口對象w_xiugai,調(diào)整其大小,放置1個數(shù)據(jù)窗口控件(dw_1)、4個命令按鈕控件(cb_1 cb_4),窗口布局如圖10.13所示。設(shè)置窗口及其控件的屬性。窗口和控件的事件腳本與輸入窗口的對應(yīng)局部相同。3. 設(shè)計輸入班級信息窗口通過繼承輸入窗口w_shuru生成輸入班級信息窗口w_banji_shuru,將數(shù)據(jù)控
11、件dw_1的DataObject屬性設(shè)置為d_banji_shuru,將窗口的Title屬性改為“錄入班級信息,此窗口設(shè)計便完成了。4. 設(shè)計修改班級信息窗口通過繼承修改窗口w_xiugai生成修改班級信息窗口w_banji_xiugai,將數(shù)據(jù)控件dw_1的DataObject屬性設(shè)置為d_banji_xiugai,將窗口的Title屬性改為“修改班級信息,此窗口設(shè)計便完成。 5. 設(shè)計瀏覽班級信息窗口創(chuàng)立窗口對象w_banji_liulan,調(diào)整其大小,放置1個數(shù)據(jù)窗口控件dw_1,調(diào)整窗口布局如下圖。 設(shè)置窗口及其控件的屬性。窗口的Open事件腳本如下。dw_1.settransobje
12、ct( sqlca) dw_1.retrieve()10.7 設(shè)計學(xué)生根本信息管理模塊 10.7.1 設(shè)計訪問學(xué)生根本信息的數(shù)據(jù)窗口 1設(shè)計輸入學(xué)生根本信息的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_jiben_shuru,顯示風(fēng)格為“Freeform,數(shù)據(jù)源類型為“Quick Select,其布局如下圖。其中,列控件“xb的編輯風(fēng)格改為“RadioButtons,碼表如圖10.15中所示;列控件“bjbh的編輯風(fēng)格改為“DropDownDW,其DataWindow屬性設(shè)置為“d_banji_xiugai,Display Column屬性和Data Column屬性都設(shè)置為“bjbh,Width of Drop
13、Down(%)屬性設(shè)置為“300,Lines in DropDown屬性設(shè)置為“6,VScrollBar屬性設(shè)置為“True。 2設(shè)計修改學(xué)生根本信息的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_jiben_xiugai,顯示風(fēng)格為“Grid,數(shù)據(jù)源類型為“Quick Select,其布局如下圖。其中,列控件“xb的編輯風(fēng)格改為“DropDownListBox,列表項為“男,“女;列控件“bjbh的編輯風(fēng)格改為“DropDownDW,其DataWindow屬性設(shè)置為“d_banji_xiugai,Display Column屬性和Data Column屬性都設(shè)置為“bjbh,Width of DropDown(%
14、)屬性設(shè)置為“300,Lines in DropDown屬性設(shè)置為“6,VScrollBar屬性設(shè)置為“True。 3設(shè)計查詢學(xué)生根本信息的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_jiben_chaxun,顯示風(fēng)格為“Grid,數(shù)據(jù)源類型為“SQL Select,其布局如圖10.17所示。其中,定義3個String型檢索參數(shù)變量mxh、mxm、mbj,分別表示學(xué)號、姓名、班級,形成帶檢索參數(shù)的數(shù)據(jù)窗口。該數(shù)據(jù)窗口的修改屬性為默認(rèn)值即“不允許修改。 10.7.2 設(shè)計訪問學(xué)生根本信息的窗口 1設(shè)計輸入學(xué)生根本信息的窗口通過繼承輸入窗口w_shuru生成輸入學(xué)生根本信息窗口w_jiben_shuru,將數(shù)據(jù)控件d
15、w_1的DataObject屬性設(shè)置為d_jiben_shuru,將窗口的Title屬性改為“錄入學(xué)生根本信息,此窗口設(shè)計便完成了。2設(shè)計修改學(xué)生根本信息的窗口通過繼承修改窗口w_xiugai生成修改學(xué)生根本信息窗口w_jiben_xiugai,將數(shù)據(jù)控件dw_1的DataObject屬性設(shè)置為d_jiben_xiugai,將窗口的Title屬性改為“修改學(xué)生根本信息,此窗口設(shè)計便完成了。3設(shè)計查詢學(xué)生根本信息的窗口要求此窗口中能夠根據(jù)學(xué)生的姓名或?qū)W號查詢出學(xué)生的根本信息,能夠根據(jù)班級名稱查詢出該班所有學(xué)生的根本信息。查詢學(xué)生根本信息窗口如下圖。創(chuàng)立一個窗口對象w_jiben_chaxun,放
16、置控件 ,設(shè)置窗口及其控件的屬性 。 編寫【查詢】按鈕的Open事件腳本。【查詢】按鈕的Open事件腳本如下。dw_1.settransobject( sqlca)if ddlb_1.text= or sle_1.text= thenmessagebox(提示,查詢列和查詢內(nèi)容不能空!)returnend ifstring strstr=trim(sle_1.text)choose case ddlb_1.textcase 學(xué)號dw_1.retrieve( str, %,%)case 姓名dw_1.retrieve( %,str ,%)case 班級名稱dw_1.retrieve( %,%,
17、str)end choose10.8 設(shè)計課程管理模塊 10.8.1 設(shè)計訪問課程信息的數(shù)據(jù)窗口1. 設(shè)計輸入班級課程信息的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_bjkc_shuru,顯示風(fēng)格為“Grid,數(shù)據(jù)源類型為“Quick Select,其布局如下圖。其中,列控件“bjbh的編輯風(fēng)格改為“DropDownDW,其DataWindow屬性設(shè)置為“d_banji_xiugai,Display Column屬性和Data Column屬性都設(shè)置為“bjbh,Width of DropDown(%)屬性設(shè)置為“300,Lines in DropDown屬性設(shè)置為“6,VScrollBar屬性設(shè)置為“True
18、。 2. 設(shè)計查詢班級課程信息的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_bjkc_chaxun,顯示風(fēng)格為“Grid,數(shù)據(jù)源類型為“SQL Select,其布局如圖10.20所示。其中,定義2個String型檢索參數(shù)變量mxq、mbjmc,分別表示學(xué)期、班級,形成帶檢索參數(shù)的數(shù)據(jù)窗口。該數(shù)據(jù)窗口的修改屬性為默認(rèn)值即“不允許修改。 10.8.2 設(shè)計訪問課程信息的窗口 1. 設(shè)計輸入修改班級課程信息的窗口窗口的布局如下圖。從祖先窗口w_xiugai繼承生成窗口對象w_bjkc_shuruxiugai,調(diào)整其大小。然后將數(shù)據(jù)窗口控件dw_1的DataObject屬性設(shè)置為d_bjkc_shuru,此窗口設(shè)計即完成
19、。 2. 設(shè)計查詢班級開設(shè)課程的窗口 窗口如下圖。創(chuàng)立一個窗口對象w_bjkc_chaxun,放置控件,設(shè)置窗口及其控件的屬性。書寫各個對象的事件腳本。(1) 窗口w_bjkc_chaxun的Open事件腳本 (2) 【查詢】按鈕的Clicked事件腳本 10.9 設(shè)計成績管理模塊 10.9.1 設(shè)計訪問成績信息的數(shù)據(jù)窗口1. 設(shè)計輸入成績的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_xscj_shuru,顯示風(fēng)格為“Grid,數(shù)據(jù)源類型為“SQL Select,其布局如下圖。數(shù)據(jù)來源于成績表xscj和視圖xsbj,其中,學(xué)號、學(xué)期、課程名稱和成績?yōu)槌煽儽韝scj的列,姓名是視圖xsbj的列。選擇【Rows】|【
20、Update Properties】命令,設(shè)置數(shù)據(jù)窗口的修改屬性,使只有成績表xscj的成績列(xscj_cj)可以在數(shù)據(jù)窗口中修改,關(guān)鍵字為成績表xscj的主關(guān)鍵字(xh,xq,kcmc)。然后,單擊工具條上的【Tab Order】圖標(biāo),將列控件xscj_cj的Tab Order值設(shè)為10。 2. 設(shè)計查詢學(xué)生個人某學(xué)期各科成績的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_xscj_grcx,顯示風(fēng)格為“Grid,數(shù)據(jù)源類型為“Quick Select,其布局如圖10.25所示。在【Summary】條中添加一個計算域控件,計算數(shù)據(jù)窗口中成績總和。數(shù)據(jù)窗口的檢索參數(shù)為mxh、mxq,分別對應(yīng)于學(xué)號和學(xué)期。 3.
21、設(shè)計查詢某班級某學(xué)期全體學(xué)生各科成績的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_xscj_bjcx,顯示風(fēng)格為“Cross Tab,數(shù)據(jù)源類型為“SQL Select,其布局如下圖。數(shù)據(jù)來源于成績表xscj和視圖xsbj,其中,學(xué)號、課程名稱和成績?yōu)槌煽儽韝scj的列,姓名是視圖xsbj的列。在【Header1】條中添加2個計算域控件,對應(yīng)的表達(dá)式分別為mbjmc和mxq,3個文本控件,其文本分別為“成績單、“班級:和“學(xué)期:。數(shù)據(jù)窗口的檢索參數(shù)為mxq和mbjmc,分別對應(yīng)于學(xué)期和班級名稱。修改屬性取默認(rèn)值(不允許修改)。 4. 設(shè)計查詢某班級某學(xué)期全體學(xué)生某科成績的數(shù)據(jù)窗口創(chuàng)立數(shù)據(jù)窗口d_xscj_kccx
22、,顯示風(fēng)格為“N_Up,欄數(shù)為2,數(shù)據(jù)源類型為 “SQL Select,其布局如圖10.27所示。數(shù)據(jù)來源于成績表xscj和視圖xsbj,其中,學(xué)號和成績?yōu)槌煽儽韝scj的列,姓名是視圖xsbj的列。在【Header】條中添加2個計算域控件對應(yīng)的表達(dá)式分別為mbjmc和mkcmc,3個文本控件,其文本分別為“成績單、“班級:和“課程:。數(shù)據(jù)窗口的檢索參數(shù)為mxq、mbjmc和mkcmc,分別對應(yīng)于學(xué)期、班級名稱和課程名稱。修改屬性取默認(rèn)值(不允許修改)。 10.9.2 設(shè)計訪問成績信息的窗口 1. 設(shè)計輸入成績的窗口輸入成績的窗口如下圖。首先創(chuàng)立窗口對象w_xscj_shuru,放置控件,調(diào)整窗口和控件的大小、位置及有關(guān)屬性。其中,【保存】按鈕的enabled屬性設(shè)為False;數(shù)據(jù)窗口控件調(diào)整到只顯示學(xué)號、姓名和成績3列,VScrollBar屬性設(shè)為True,數(shù)據(jù)窗口對象為d_xscj_shuru;3個下拉列表框控件的列表項為空,由代碼動態(tài)生成。編寫窗口和各個控件的事件腳本。2. 設(shè)計查詢學(xué)生個人成績的窗口查詢學(xué)生個人成績的窗口如下圖。數(shù)據(jù)窗口控件連接的數(shù)據(jù)窗口對象為d_x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 怎么寫合作合同協(xié)議書
- (三模)九江市2025年高三第三次高考模擬考試語文試卷(含答案)
- JAVA算法實(shí)現(xiàn)的案例分析試題及答案
- 汽車定金合同協(xié)議書模板
- 2025年初級會計師《經(jīng)濟(jì)法基礎(chǔ)》模擬試卷三
- 入股合同協(xié)議書私人店
- 足療技師聘用合同協(xié)議書
- 從數(shù)據(jù)中學(xué)習(xí)的測試優(yōu)化策略與技巧試題及答案
- C語言三大核心知識點(diǎn)試題及答案
- 勞動合同變更協(xié)議書范本
- 浙江省溫州市2025屆高三下學(xué)期三模政治試題 含解析
- 成人患者營養(yǎng)不良診斷與應(yīng)用指南(2025版)解讀課件
- 十五五時期經(jīng)濟(jì)社會發(fā)展座談會十五五如何謀篇布局
- 遵義市購房合同協(xié)議
- 2024年四川省天全縣事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 【7語期中】合肥市包河區(qū)2024-2025學(xué)年七年級下學(xué)期4月期中語文試題
- (三診)成都市2022級高中高三畢業(yè)班第三次診斷性檢物理試卷(含答案)
- 香港借貸合同協(xié)議
- 酒店消防安全知識培訓(xùn)
- 經(jīng)營崗位筆試題目及答案
- 農(nóng)行反洗錢與制裁合規(guī)知識競賽考試題庫大全-上下
評論
0/150
提交評論