版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)生成績(jī)管理系統(tǒng)1.1系統(tǒng)分析與設(shè)計(jì)在任何高等學(xué)校,學(xué)生的成績(jī)管理都是學(xué)校教務(wù)管理的重要環(huán)節(jié)之一。隨著學(xué)校學(xué)生人數(shù)的增加,學(xué)生成績(jī)管理的任務(wù)更加繁重,必須借助現(xiàn)代化的管理工具和手段提高學(xué)生成績(jī)管理效率。學(xué)生成績(jī)管理系統(tǒng)廣泛適用于高校教務(wù)管理部門(mén)的學(xué)生成績(jī)管理,其作用和功能也是學(xué)生比較熟悉和容易理解的。一個(gè)應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程包括分析、設(shè)計(jì)、實(shí)現(xiàn)、調(diào)試和發(fā)布等階段。以下是分析說(shuō)明。1.2系統(tǒng)功能分析系統(tǒng)功能分析階段的任務(wù)就是確定該系統(tǒng)要解決的問(wèn)題及其具體要求。需要通過(guò)與用戶的交流和溝通明確對(duì)系統(tǒng)的功能要求,最終列出系統(tǒng)可以實(shí)現(xiàn)的功能由用戶確認(rèn)。(1)班級(jí)信息的輸入和儲(chǔ)存,包括班級(jí)編號(hào)、班級(jí)名稱、所
2、屬專業(yè)、入校時(shí)間和學(xué)制等。(2)對(duì)已經(jīng)輸入的班級(jí)信息和修改、查詢。(3)學(xué)生基本信息的輸入和儲(chǔ)存,包括學(xué)號(hào)、姓名、性別、出生日期、班級(jí)等。(4)學(xué)生基本信息的修改和查詢。(5)每學(xué)期初各班所開(kāi)設(shè)課程的輸入,包括課程名、學(xué)期、學(xué)時(shí)等。(6)各班所開(kāi)設(shè)課程信息的修改和查詢。(7)學(xué)期末輸入每個(gè)學(xué)生的考試成績(jī)。(8)學(xué)生成績(jī)的修改。(9)查詢每個(gè)學(xué)生某學(xué)期的各科成績(jī)。(10)查詢并打印某班某學(xué)期所有學(xué)生的各科成績(jī)。(11)查詢并打印某班某學(xué)期所有學(xué)生的各科成績(jī)。(12)系統(tǒng)具有用戶和密碼的管理。1.3系統(tǒng)功能模塊設(shè)計(jì)通過(guò)通過(guò)對(duì)上述各項(xiàng)功能的分析、分類、綜合,按照模塊化程序設(shè)計(jì)的要求,得到如圖1所示的
3、功能模塊圖。學(xué)生成績(jī)管理系統(tǒng)系統(tǒng)管理班級(jí)信息管理學(xué)生基本信息管理課程信息管理成績(jī)信息管理登陸控制用戶管理密碼修改班級(jí)信息輸入班級(jí)信息查詢班級(jí)信息修改學(xué)生基本信息輸入學(xué)生基本信息修改學(xué)生基本信息查詢課程信息輸入課程信息查詢修改成績(jī)輸入成績(jī)修改成績(jī)查詢圖12數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)庫(kù)在一個(gè)管理信息系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)的好壞將直接影響到應(yīng)用系統(tǒng)操作效率已經(jīng)能否保證數(shù)據(jù)的一致性、完成性和安全性。2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)學(xué)生成績(jī)管理系統(tǒng)的功能要求,通過(guò)分析系統(tǒng)要設(shè)計(jì)的相關(guān)實(shí)體一集要收集、存儲(chǔ)和操縱數(shù)據(jù)信息,得到如圖2所示的系統(tǒng)e-r圖。根據(jù)系統(tǒng)e-r圖得到以下關(guān)系模式。班級(jí)(班級(jí)編號(hào),班級(jí)名稱
4、,所屬專業(yè),學(xué)制,入學(xué)時(shí)間,人數(shù))學(xué)生基本信息(學(xué)號(hào),姓名,性別,出生日期,家庭住址,班級(jí)編號(hào))課程(班級(jí)編號(hào),學(xué)期,課程名稱,學(xué)時(shí),教師)成績(jī)(學(xué)號(hào),課程名稱,成績(jī))為了系統(tǒng)的使用安全,要建立用戶管理,而使用權(quán)限分為管理員和一般用戶兩類,因此需要建立一個(gè)存儲(chǔ)用戶信息的關(guān)系。用戶(姓名,密碼,權(quán)限)2.2 創(chuàng)建數(shù)據(jù)庫(kù)根據(jù)關(guān)系模式,確定要建立的數(shù)據(jù)庫(kù)和表。首先,在d盤(pán)根目錄下建立本實(shí)例的工作文件夾“xscj”再在”d:xscj”文件夾下建立文件夾”data”,用于存儲(chǔ)數(shù)據(jù)文件。在powerbuilder開(kāi)發(fā)環(huán)境中打開(kāi)數(shù)據(jù)庫(kù)面板,實(shí)用odb odbc接口建立adaptive server anyw
5、here 8.0(asa 8.0)的數(shù)據(jù)庫(kù)d:xscjdataxscj.db,然后依次建立以下5個(gè)表和1個(gè)視圖。ctrl+n 新建shift+f7打開(kāi)數(shù)據(jù)面板 選擇odb odbc-utilities-create asa database選擇table-new table設(shè)置參數(shù)如圖 其他表設(shè)置如圖1.“班級(jí)”表表名:banji主鍵:bjbh2.“學(xué)生基本信息”表表名:jiben主鍵:xh3.“課程”表表名:bjkc主鍵:(bjbh,xq,kcmc)4.“成績(jī)”表表名:xscj主鍵:(xh,xqkcmc)5.“用戶”表表名:users主鍵:xm依次建立好主鍵和外鍵如圖所示6.視圖為了訪問(wèn)數(shù)據(jù)
6、庫(kù)方便,還建立一個(gè)視圖“xsbj”,該視圖由學(xué)生基本信息表和班級(jí)表連接而成,對(duì)應(yīng)的sql語(yǔ)句如下:create view xsbj (xh,xm,xb,csrq,bjbh,bjmc,zymc) as select jiben.xh,jiben.xm,jiben.xb,jiben.csrq,banji.bjbh,banji.bjmc,banji.zymc from dba.banji,dba.jiben where(jiben.bjbh = banji.bjbh)然后保存就可以了。3創(chuàng)建應(yīng)用對(duì)象完成數(shù)據(jù)庫(kù)的設(shè)計(jì)和系統(tǒng)功能設(shè)計(jì)之后,可以開(kāi)始各個(gè)功能模塊的實(shí)現(xiàn)。在powerbuilder中開(kāi)發(fā)應(yīng)用程
7、序是時(shí),就是創(chuàng)建各種對(duì)象、為對(duì)象設(shè)置屬性以及編寫(xiě)事件腳本的過(guò)程。但不是簡(jiǎn)單的順序過(guò)程,有時(shí)需要返回為前面創(chuàng)建的對(duì)象補(bǔ)充腳本。(1)創(chuàng)建新的工作空間,工作空間文件路徑及名稱設(shè)為“d:xscjxscj.pbw”(2)創(chuàng)建應(yīng)用對(duì)象,應(yīng)用對(duì)象名設(shè)置為“app_xscj”,應(yīng)用庫(kù)文件路徑及名稱設(shè)為“d:xscjpbl”,目標(biāo)文件路徑及名稱設(shè)為“d:xscjxscj.pbt”(3)打開(kāi)應(yīng)用對(duì)象面板,應(yīng)用對(duì)象app_xscj的icon屬性設(shè)置為“d:xscjbook.iso”。books.ico是預(yù)先準(zhǔn)備的圖標(biāo)文件。(4)為應(yīng)用對(duì)象app_xscj的open事件編寫(xiě)代碼如下。/ profile xscjsq
8、lca.dbms = odbcsqlca.autocommit = falsesqlca.dbparm = connectstring=dsn=xscjconnect;if sqlca.sqlcode0 thenmessagebox(提示,數(shù)據(jù)庫(kù)連接失??!)elseopen(w_logion)end if執(zhí)行此應(yīng)用時(shí),首先鏈接數(shù)據(jù)庫(kù)“xscj”,成功后打開(kāi)登陸窗口。4創(chuàng)建應(yīng)用對(duì)象本模塊實(shí)現(xiàn)用戶登陸控制、用戶自己的密碼修改和用戶管理,其中用戶管理包括修改用戶信息,添加新用戶,刪除用戶,只有管理員級(jí)用戶有此權(quán)限。4.1 設(shè)計(jì)管理登陸窗口登陸窗口如圖所示1.創(chuàng)建窗口并設(shè)置屬性創(chuàng)建登陸窗口w_logi
9、n,調(diào)整其大小,在窗口上放置1個(gè)圖片控件,3個(gè)靜態(tài)文本控件,1個(gè)成組框控件,2個(gè)單行編輯器控件,2個(gè)命令控制按鈕控件,各個(gè)控件的位置和大小如圖所示。對(duì)象屬性取值w_logintitle登陸window typeresponse!sle_2passwordtrue2.編寫(xiě)腳本(1)定義全局變量string gs_username , gs_password , gs_admin (2) 定義實(shí)例變量int li_n存儲(chǔ)登錄時(shí)用戶輸入密碼錯(cuò)誤的嘗試次數(shù),控制在最多3次機(jī)會(huì)。必須圍實(shí)例變量,不能是局部變量。(3)登陸窗口w_logind 的open 事件腳本如下:int li_n=3初始化變量li_
10、n,限制出錯(cuò)次數(shù)為3次。(4)【確定】按鈕cb_1的clicked事件腳本如下。string ls_username, ls_passwordls_username=trim(sle_1.text)ls_password=trim(sle_2.text)if ls_username= or ls_password= thenmessagebox(提示,用戶名和密碼不能為空)else select , users.password, users.admin into :gs_username, :gs_password, :gs_admin from users where
11、( = :ls_username ) and ( users.password = :ls_password ); if sqlca.sqlcode=0 thenopen(w_main)close(w_logion)elseli_n=li_n - 1if li_n0 thenmessagebox(提示,用戶名密碼錯(cuò)誤)elsemessagebox(提示,錯(cuò)誤超過(guò)3次,自動(dòng)退出)haltend ifend ifend if(5)【放棄】按鈕cb_2的clicked事件腳本如下:halt4.2 設(shè)計(jì)密碼修改窗口密碼修改窗口如圖所示:1.創(chuàng)建窗口并設(shè)置屬性創(chuàng)建密碼修改窗口w_m
12、mxg,調(diào)整其大小,在窗口上放置3個(gè)靜態(tài)文本控件(st_1,st_2,st_2)3個(gè)單行編輯器控件(sle_1,sle_2,sle_3)2個(gè)命令按鈕控件(cb_1,cb_2)各個(gè)控件的位置和大小參照?qǐng)D調(diào)整。w_mmxgtitle修改密碼windows typeresponse!sle_2passwordtruesle_3passwordtrue2.【確定】按鈕cb_1的clicked事件腳本如下:string ls_passwordif trim(sle_1.text)=trim(sle_3.text) thenmessagebox(提示,舊密碼錯(cuò)誤)elseif trim(sle_2.tex
13、t)=trim(sle_3.text) thenls_password=trim(sle_2.text)update usersset password = :ls_passwordwhere ( = :gs_username) and( users.password = :gs_password ) ;if sqlca.sqlcode0 thenmessagebox(提示,密碼修改不成功)elseclose(parent)messagebox(提示,密碼修改成功)end ifelsemessagebox(提示,兩次新密碼不相同)end ifend if(2)【取消】按鈕
14、cb_2的clicked事件腳本如下close(parent)4.3設(shè)計(jì)用戶管理的數(shù)據(jù)窗口和窗口用戶管理窗口如圖所示:1.設(shè)計(jì)數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口“d_yhgl”,顯示風(fēng)格圍“grid”,數(shù)據(jù)源類型圍”quick select”,發(fā)布如圖所示。其中控件“admin”的編輯風(fēng)格改為“dropdownlistbox”,碼表(code table)如圖。數(shù)據(jù)窗口d_yhgl生成的sql select語(yǔ)句為: select , users.password, users.admin from users 2.創(chuàng)建窗口并設(shè)置屬性創(chuàng)建用戶管理窗口w_yhgl,調(diào)整其大小,在窗口上位置1
15、個(gè)數(shù)據(jù)窗口控件(dw_1)、4個(gè)命令按鈕控件(cb_1,cb_2,cb_3,cb_4)各個(gè)控件的位置和大小參照如圖調(diào)整。cb_3text保存enabledtrue3.編寫(xiě)腳本(1)用戶管理窗口w_yhgl的open事件腳本如下。dw_1.settransobject( sqlca )dw_1.retrieve()(2)用戶管理窗口w_yhgl的closequery事件腳本如下:integer rtdw_1.accepttext()if dw_1.modifiedcount( ) =0 and dw_1.deletedcount( )=0 thenreturn 0elsert=messagebo
16、x(提示,添加修改內(nèi)容未保存,確定要退出嗎?,question!,yesno!)if rt=1 thenreturn 0end ifend ifreturn 1(3)數(shù)據(jù)窗口控件dw_1的itemchanged事件腳本如下cb_3.enabled=true(4)【添加】按鈕控制cb_1的clicked事件腳本如下:integer rowrow=dw_1.insertrow(0)dw_1.scrolltorow(row)(5)【刪除】按鈕控件cb_2的clicked事件腳本如下:dw_1.deleterow(0)cb_3.enabled=true(6)【保存】按鈕控件cb_3的clicked事件
17、腳本如下:if dw_1.update(true,false )=1 thendw_1.resetupdate()commit;cb_3.enabled=falseelserollback;messagebox(錯(cuò)誤,保存數(shù)據(jù)失?。?end if(7)【退出】按鈕控件cb_4的clickedclose(patent)5設(shè)計(jì)主窗口和菜單主窗口和菜單是系統(tǒng)工具的主界面。5.1菜單結(jié)構(gòu)如圖所示。菜單對(duì)象名為“m_main”,菜單欄中的菜單項(xiàng)設(shè)置了訪問(wèn)鍵,常用的菜單項(xiàng)設(shè)置了快捷鍵,最常用的菜單項(xiàng)在工具條上建立了按鈕。(1)【系統(tǒng)】菜單下【密碼修改】菜單項(xiàng)的clicked事件腳本如下open(w_mmx
18、g)(2)【系統(tǒng)】菜單下【用戶管理】菜單項(xiàng)的clicked事件腳本如下:open(w_yhgl)(3)【系統(tǒng)】菜單下【退出系統(tǒng)】菜單項(xiàng)的clicked事件腳本如下:close(parentwindow)(4)【班級(jí)管理】菜單【錄入班級(jí)信息】菜單項(xiàng)clicked事件腳本如下:opensheet(w_banji_shuru,w_main,6,original!)其功能是在主窗口(w_main)中,以輸入班級(jí)信息窗口w_banji_shuru的原來(lái)大小(original!參數(shù)指定)打開(kāi),并在第6個(gè)菜單(即【窗口】菜單)下列出該窗口的名稱。(5)【班級(jí)管理】菜單需愛(ài)修改【修改班級(jí)信息】菜單項(xiàng)的clic
19、ked事件腳本如下:opensheet(w_xiugai,w_main,6,original! )(6)【班級(jí)管理】菜單下【修改班級(jí)信息】菜單項(xiàng)的菜單項(xiàng)的clicked事件腳本如下:opensheet(w_banji_liulan,w_main,6,original!) (7)【學(xué)生管理】菜單下【錄入學(xué)生信息】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_jiben_shuru,w_main,6,original!) (8)【學(xué)生管理】菜單下【修改學(xué)生信息】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_jiben_xiugai,w_main,6,original!)
20、 (9)【學(xué)生管理】菜單下【查詢學(xué)生信息】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_jiben_chaxun,w_main,6,original! )(10)【課程管理】菜單下【錄入/修改開(kāi)設(shè)課程】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_bjkc_shuruxiugai,w_main,6,original! )(11)【課程管理】菜單下【查詢開(kāi)設(shè)課程信息】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_bjkc_chaxun,w_main,6,original! )(12)【成績(jī)管理】菜單下【錄入修改成績(jī)】菜單項(xiàng)的clicked事件腳本如下:o
21、pensheet(w_xscj_shuru,w_main,6,original! )(13)【成績(jī)管理】菜單下【查詢個(gè)人成績(jī)】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_xscj_grcx,w_main,6,original! )(14)【成績(jī)管理】菜單下【查詢班級(jí)成績(jī)】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_xscj_bjcx,w_main,6,original! )(15)【成績(jī)管理】菜單下【查詢課程成績(jī)】菜單項(xiàng)的clicked事件腳本如下:opensheet(w_xscj_kccx,w_main,6,original! )(16)【窗口】菜單下【層疊窗
22、口】菜單項(xiàng)的clicked事件腳本如下:w_main.arrangesheets (cascade!)(17)【幫助】菜單下【關(guān)于】菜單項(xiàng)的clicked事件腳本如下:open(w_about)(18)【幫助】菜單下【聯(lián)機(jī)幫助】菜單項(xiàng)的clicked事件腳本如下:showhelp(xscjhelp.chm,index!)5.2設(shè)計(jì)主窗口設(shè)計(jì)窗口如圖所示創(chuàng)建窗口對(duì)象w_main,w_maintitle學(xué)生成績(jī)管理系統(tǒng)window typemdihelp!menunamem_mainwindowstatemaximized窗口對(duì)象w_main的open事件腳本如下if gs_admin=n the
23、nm_main.m_系統(tǒng)s.m_用戶管理.enabled=falseend if其功能是非管理員用戶計(jì)入系統(tǒng)時(shí)關(guān)閉【用戶管理】菜單項(xiàng)6設(shè)計(jì)班級(jí)管理模塊本模塊實(shí)現(xiàn)班級(jí)信息的輸入、修改和查詢。6.1設(shè)計(jì)訪問(wèn)班級(jí)信息的數(shù)據(jù)窗口1.設(shè)計(jì)輸入班級(jí)信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_banji_shuru,顯示風(fēng)格為“freeform”,數(shù)據(jù)源類型為“quick select”如圖所示。數(shù)據(jù)窗口d_banji_shuru生成的sql select語(yǔ)句為: select banji.bjbh, banji.bjmc, banji.zymc, banji.xz, banji.rxsj, banji.rs from
24、banji 2.設(shè)計(jì)修改班級(jí)信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_banji_xiugai,顯示風(fēng)格為“grid”數(shù)據(jù)源類型為“quick select”數(shù)據(jù)窗口d_banjid_banji_xiugai生成的sql select 語(yǔ)句為: select banji.bjbh, banji.bjmc, banji.zymc, banji.xz, banji.rxsj, banji.rs from banji order by banji.bjbh asc 6.2設(shè)計(jì)訪問(wèn)班級(jí)信息的窗口首先設(shè)計(jì)兩個(gè)通用的輸入窗口和修改窗口作為父對(duì)象,實(shí)現(xiàn)一般輸入和修改的功能,窗口中的數(shù)據(jù)窗口控件不設(shè)定具體的數(shù)據(jù)窗口對(duì)象,
25、在繼承的窗口對(duì)象中再設(shè)定。通過(guò)繼承可以簡(jiǎn)化程序設(shè)計(jì),實(shí)現(xiàn)代碼重用。1.設(shè)計(jì)輸入窗口創(chuàng)建窗口對(duì)象w_shuru,調(diào)整其大小,放置1個(gè)數(shù)據(jù)窗口控件(dw_1)、8個(gè)命令按鈕控件(cb_1cb_8)窗口布局如圖所示。w_shurutitle錄入window typemain!resizablefalsecenterfalsemaxboxfalseminboxfalse設(shè)置完屬性后開(kāi)始編寫(xiě)腳本代碼,其中窗口w_shuru的open事件closequery事件、命令按鈕(【添加】、【刪除】、【保存】和【退出】)的clicked事同前面的窗口w_yhgl的相應(yīng)事件腳本。(1)【|】按鈕的clicked事件
26、腳本如下:dw_1.scrolltorow(1)(2)【】按鈕的clicked事件腳本如下:dw_1.scrollnextrow()(4)【|】按鈕的clicked事件腳本如下:dw_1.scrolltorow( dw_1.rowcount()2.設(shè)計(jì)修改窗口創(chuàng)建窗口對(duì)象w_xiugai,調(diào)整大小,放置1個(gè)數(shù)據(jù)窗口控件(dw_1),4個(gè)命令控件(cb_1cb_4),窗口布局如圖所示。w_xiugaititle修改window typemain!resizablefalsecenterfalsemaxboxfalseminboxfalse3設(shè)計(jì)輸入班級(jí)信息窗口通過(guò)繼承輸入窗口w_shuru生成輸
27、入班級(jí)信息窗口w_banji_shuru,將數(shù)據(jù)控件dw_1的dataobject屬性設(shè)置為d_banji_shuru,將窗口的title屬性改為“錄入班級(jí)信息”,此窗口設(shè)計(jì)便完成了。4.設(shè)計(jì)修改班級(jí)信息窗口通過(guò)繼承修改窗口w_xiugai生成修改班級(jí)信息窗口w_banji_xiugai,將數(shù)據(jù)控件dw_1的dataobject屬性設(shè)置為d_banji_xiugai,將窗口的title屬性改為“修改班級(jí)信息”,此窗口設(shè)計(jì)便完成了。5.設(shè)計(jì)瀏覽班級(jí)信息窗口創(chuàng)建窗口對(duì)象w_banji_liulan,調(diào)整大小,放置1個(gè)數(shù)據(jù)窗口控件dw_1,調(diào)整窗口布局如圖所示。w_banji_liulantitle
28、瀏覽班級(jí)信息window typemain!reizablefalsecenterfalsemaxboxfalseminboxfalsedw_1vscrollbarturedataobjectd_banji_xiugaienabledfalse窗口的open事件腳本如下:dw_1.settransobject( sqlca)dw_1.retrieve()7設(shè)計(jì)學(xué)生基本信息管理模塊本模塊實(shí)現(xiàn)學(xué)生基本信息的輸入,修改和查詢。7.1設(shè)計(jì)訪問(wèn)學(xué)生基本信息的數(shù)據(jù)窗口1.設(shè)計(jì)輸入學(xué)生基本信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_jiben_shuru,顯示風(fēng)格為“freeform”,數(shù)據(jù)源類型為“quick sele
29、ct”,布局如圖所示其中,列控件“xb”的編輯風(fēng)格為“radiobuttons”,列表控件“bjbh”的編輯風(fēng)格改為“dropdowndw”,其datawindow屬性設(shè)置為“d_banji_xiugai”,display column屬性和data colum屬性都設(shè)置為“bjbh”,width of dropdown(%)屬性設(shè)置為“300”,lines in dropdown的屬性設(shè)置為“6”vscrollbar屬性設(shè)置為“true”。數(shù)據(jù)窗口d_jiben_shuru生成的sql select 語(yǔ)句為: select jiben.xh, jiben.xm, jiben.xb, jibe
30、n.csrq, jiben.jtzz, jiben.bjbh from jiben 2.設(shè)計(jì)修改學(xué)生基本信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_jiben_xiugai,顯示風(fēng)格為“grid”,數(shù)據(jù)源類型為“quick select”,布局如圖所示:其中,列控件“xb”的編輯風(fēng)格改為“dropdownlistbox”,列表項(xiàng)為“男”,“女”;列表控件“bjbh”的編輯風(fēng)格改為“dropdowndw”,其datawindow屬性設(shè)置為“d_jiebn_xiugai”,display columm屬性和data colum屬性都設(shè)置為“bjbh”,width of dropdown(%)屬性設(shè)置為“300”
31、,lines in dropdown屬性設(shè)置為“6”,vscrollbar屬性設(shè)置為“true”數(shù)據(jù)窗口d_jiben_xiugai生成的sql select語(yǔ)句為: select jiben.xh, jiben.xm, jiben.xb, jiben.csrq, jiben.jtzz, jiben.bjbh from jiben 3.設(shè)計(jì)查詢學(xué)生基本信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_jiebn_chaxun,顯示風(fēng)格為“grid”,數(shù)據(jù)源類型為“sql select”其中布局如圖所示其中,定義3個(gè)string型檢索參數(shù)變量mxh,mxm,mbj,分別表示學(xué)號(hào)、姓名班級(jí),形成帶檢索參數(shù)的數(shù)據(jù)窗口。
32、該數(shù)據(jù)窗口的修改屬性默認(rèn)值即“不允許修改”數(shù)據(jù)窗口d_jiben_chaxun生成的sql select語(yǔ)句為: select banji.bjmc, jiben.xh, jiben.xm, jiben.xb, jiben.csrq, jiben.jtzz, jiben.bjbh from banji, jiben where ( jiben.bjbh = banji.bjbh ) and ( ( jiben.xh like :mxh ) and ( jiben.xm like :mxm ) and ( banji.bjmc like :mbj ) ) order by jiben.xh as
33、c 7.2設(shè)計(jì)訪問(wèn)學(xué)生基本信息的窗口1.設(shè)計(jì)輸入學(xué)生基本信息的窗口通過(guò)繼承輸入窗口w_shuru生成輸入學(xué)生基本信息窗口w_jiben_shru,將數(shù)據(jù)控件dw_1的dataobject屬性設(shè)置為d_jiben_shuru,將窗口的title屬性改為“錄入學(xué)生基本信息”,此窗口就完成了。2.設(shè)計(jì)修改學(xué)生基本信息的窗口通過(guò)繼承輸入窗口w_xiugai生成輸入學(xué)生基本信息窗口w_jiben_xiugai,將數(shù)據(jù)控件dw_1的dataobject屬性設(shè)置為d_jiben_xiugai,將窗口的title屬性改為“修改學(xué)生基本信息”,此窗口就完成了。3.設(shè)計(jì)查詢學(xué)生基本信息的窗口要求此窗口中能夠根據(jù)學(xué)
34、生的姓名或?qū)W號(hào)查詢出學(xué)生的基本信息,能夠根據(jù)班級(jí)名稱查詢出該班所有學(xué)生的基本信息。查詢學(xué)生基本信息窗口如圖所示:首先創(chuàng)建一個(gè)窗口對(duì)象w_jiben_chaxun,調(diào)整大小,在窗口中放置2個(gè)靜態(tài)文本控件(st_1,st_2)、1個(gè)下拉表框控件(ddlb_1)、1個(gè)單行編輯器控件(sle_1)1個(gè)命令按鈕(cb_1)、1個(gè)數(shù)據(jù)窗口控件(dw_1)和一個(gè)線形控件(ln_1),調(diào)整各個(gè)控件的位置和大小?!静樵儭堪粹o的clicked事件腳本如下:dw_1.settransobject( sqlca)if ddlb_1.text= or sle_1.text= thenmessagebox(提示,查詢列和
35、查詢內(nèi)容不能空!)returnend ifstring strstr=trim(sle_1.text)choose case ddlb_1.textcase 學(xué)號(hào)dw_1.retrieve(str,%,%)case 姓名dw_1.retrieve(%,str,%)case 班級(jí)名稱dw_1.retrieve(%,%,str)end choose代碼中根據(jù)查詢依據(jù)的不同,以不同參數(shù)方式檢索數(shù)據(jù)。8設(shè)計(jì)課程管理模塊本模塊實(shí)現(xiàn)各班開(kāi)設(shè)課程的輸入、修改和查詢。8.1設(shè)計(jì)訪問(wèn)課程信息的數(shù)據(jù)窗口1設(shè)計(jì)輸入班級(jí)課程信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_bjkc_shuru,顯示風(fēng)格為“grid”,數(shù)據(jù)源類型為“qu
36、ick select”,如圖:其中,列控件“bjbh”的編輯風(fēng)格改為“dropdowndw”,其datawindow屬性設(shè)置為“d_banji_xiugai”,display columm屬性和data colum屬性都設(shè)置為“bjbh”,width of dropdown(%)屬性設(shè)置為“300”,lines in dropdown屬性設(shè)置為“6”,vscrollbar屬性設(shè)置為“true”數(shù)據(jù)窗口d_bjkc_shuru生成的sql select語(yǔ)句為: select bjkc.bjbh, bjkc.xq, bjkc.kcmc, bjkc.xs, bjkc.jsxm from bjkc 2
37、.設(shè)計(jì)查詢班級(jí)課程信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_bjkc_chaxun,顯示風(fēng)格為“grid”數(shù)據(jù)源類型為“sql select”,如圖所示:其中,定義2個(gè)string型檢索參數(shù)變量mxq,mbjmc,分別表示學(xué)期、班級(jí),形成帶檢索參數(shù)的數(shù)據(jù)窗口。該數(shù)據(jù)窗口的修改屬性為默認(rèn)值即“不允許修改”。數(shù)據(jù)窗口d_bjkc_chaxun生成的sql select語(yǔ)句為: select bjkc.kcmc, bjkc.xs, bjkc.jsxm, banji.bjmc from bjkc, banji where ( banji.bjbh = bjkc.bjbh ) and ( ( bjkc.xq = :
38、mxq ) and ( banji.bjmc = :mbjmc ) ) 8.2設(shè)計(jì)訪問(wèn)課程信息的窗口1.設(shè)計(jì)輸入修改班級(jí)課程信息的窗口班級(jí)課程的輸入和修改都通過(guò)此窗口完成,輸入修改禪機(jī)課程信息的窗口的布局如圖:首先,從祖先窗口w_iugai繼承生成窗口對(duì)象w_bjkc_shuruxiugai,調(diào)整其大小。然后將數(shù)據(jù)窗口控件dw_1的dataobject屬性設(shè)置為d_bjkc_shru,此窗口設(shè)計(jì)完成。2.設(shè)計(jì)查詢班級(jí)開(kāi)設(shè)課程的窗口要求此窗口能夠根據(jù)輸入的學(xué)期和班級(jí)查詢出該班此學(xué)期開(kāi)設(shè)的課程。查詢班級(jí)開(kāi)設(shè)課程的窗口如圖:首先創(chuàng)建一個(gè)窗口對(duì)象w_bjkc_chaxun,在窗口中放置2個(gè)靜態(tài)文本控件
39、(st_1,st_2)2個(gè)下拉列表框控件(ddlb_1,ddlb_2)、1個(gè)命令按鈕(cb_1)、1個(gè)數(shù)據(jù)庫(kù)窗口控件(dw_1),調(diào)整各個(gè)控件的位置和大小。(1)窗口w_bjkc_chaxun的open事件腳本如下:dw_1.settransobject( sqlca)int li_xq, li_bjmc, nstringls_xq, ls_bjmcselect count (distinct xq) into :li_xqfrom bjkc;declare xqcursor cursor forselect xq from bjkc group by xq;open xqcursor ;fo
40、r n=1 to li_xqfetch next xqcursor into :ls_xq;ddlb_1.additem( ls_xq)nextclose xqcursor;select count (distinct bjmc) into :li_bjmcfrom banji;declare bjmccursor cursor forselect banji.bjmcfrom bjkc,banjiwhere bjkc.bjbh = banji.bjbh group by banji.bjmc;open bjmccursor;for n=1 to li_bjmcfetch next bjmcc
41、ursor into :ls_bjmc;ddlb_2.additem( ls_bjmc)nextclose bjmccursor ;(2)【查詢】按鈕的clicked事件腳本如下:dw_1.retrieve( ddlb_1.text , ddlb_2.text)9設(shè)計(jì)成績(jī)管理模塊本模塊實(shí)現(xiàn)成績(jī)的輸入、修改和多種方式的查詢與打印。9.1設(shè)計(jì)訪問(wèn)成績(jī)信息的數(shù)據(jù)窗口1.設(shè)計(jì)輸入成績(jī)的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_xscj_shuru,顯示風(fēng)格為“grid”,數(shù)據(jù)源類型為“sql select”,布局如圖所示。數(shù)據(jù)來(lái)源于成績(jī)表xscj和視圖xsbj,其中,學(xué)號(hào)、學(xué)期、課程名稱和成績(jī)?yōu)槌煽?jī)表xscj的列,姓名
42、是視圖xsbj的列。選擇【rows】|【update properties】命令,打開(kāi)數(shù)據(jù)窗口的修改屬性對(duì)話框,如圖所示,設(shè)置數(shù)據(jù)窗口的修改屬性,即只有成績(jī)表(xscj_cj)可以在數(shù)據(jù)窗口中修改,關(guān)鍵字為成績(jī)表xscj的主關(guān)鍵字(xh,xq,kcmc)。然后,單機(jī)工具條上的【tab order 】圖標(biāo),將列控件xscj_cj的tab order值設(shè)為10,再單擊【tab order】圖標(biāo)回到原設(shè)計(jì)狀態(tài)。數(shù)據(jù)窗口的檢索參數(shù)為mxq,mbjmc,mkmc,分別對(duì)應(yīng)于學(xué)期、班級(jí)名稱和課程名稱。數(shù)據(jù)窗口d_bjkc_shuru生成的sql select 語(yǔ)句為: select xscj.xh, xs
43、bj.xm, xscj.cj, xscj.xq, xscj.kcmc from xsbj, xscj where ( xsbj.xh = xscj.xh ) order by xscj.xh asc 2.設(shè)計(jì)查詢學(xué)生個(gè)人某學(xué)期各科成績(jī)的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_xscj_grcx,顯示風(fēng)格為“grid”,數(shù)據(jù)源類型為“quick select”,其布局如圖所示。在【summary】條中添加一個(gè)計(jì)算機(jī)域控件,計(jì)算機(jī)數(shù)據(jù)窗口中成績(jī)總和。數(shù)據(jù)窗口的檢索參數(shù)為mxh、mxq,分別對(duì)應(yīng)于學(xué)號(hào)和學(xué)期。數(shù)據(jù)窗口d_bjkc_shuru,生成的ssql select語(yǔ)句為: select xscj.kcmc,
44、xscj.cj from xscj where ( xscj.xh = :mxh ) and ( xscj.xq = :mxq ) 3.設(shè)計(jì)查詢班級(jí)某班級(jí)某學(xué)期全體學(xué)生各科成績(jī)的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_xscj_bjcx,顯示風(fēng)格為“cross tab”,數(shù)據(jù)源類型為“sql select”,布局如圖所示。數(shù)據(jù)來(lái)源于成績(jī)表xscj和視圖xsbj,其中,學(xué)號(hào)、課程名稱和成績(jī)?yōu)槌煽?jī)表xscj的列,姓名是視圖xsbj的列。在【header1】條中添加2個(gè)計(jì)算機(jī)域控件,對(duì)應(yīng)的表達(dá)式分別為mbjmc和mxq,3個(gè)文本控件,其文本分別為“成績(jī)單”、“班級(jí):”和“學(xué)期:”。數(shù)據(jù)窗口的檢索參數(shù)為mxq和mbj
45、mc,分別對(duì)應(yīng)于學(xué)期和班級(jí)名稱。修改屬性取默認(rèn)值(不允許修改)。數(shù)據(jù)窗口d_bjkc_shuru生成的sql select語(yǔ)句為: select xscj.xh, xsbj.xm, xscj.kcmc, xscj.cj, xscj.xq, xsbj.bjmc from xsbj, xscj where ( xsbj.xh = xscj.xh ) and ( ( xscj.xq = :mxq ) and ( xsbj.bjmc = :mbjmc ) ) order by xscj.xh asc 4.設(shè)計(jì)查詢班級(jí)某學(xué)期全體學(xué)生某科成績(jī)的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_xscj_kccx,顯示風(fēng)格為“n-u
46、p”,欄數(shù)為2,數(shù)據(jù)源類型為“sql select”,其布局如圖所示。數(shù)據(jù)來(lái)源域成績(jī)表xscj和視圖xsbj。其中,學(xué)號(hào)和成績(jī)?yōu)槌煽?jī)表xscj的列,姓名是視圖xsbj的列。在【header】條中添加2個(gè)計(jì)算機(jī)域控件對(duì)應(yīng)的表達(dá)式分別為mbjmc和mkcmc,3個(gè)文本控件,其文本分別為“成績(jī)單”“班級(jí):”和“課程”數(shù)據(jù)庫(kù)窗口的檢索參數(shù)為mxq、mbjmc、和mkcmc,分別對(duì)應(yīng)于學(xué)期、班級(jí)名稱和課程名稱。修改屬性取默認(rèn)值。數(shù)據(jù)窗口d_bjkc_shuru生成的sql select語(yǔ)句為: select xscj.xh, xsbj.xm, xscj.cj from xsbj, xscj where
47、( xsbj.xh = xscj.xh ) and ( ( xscj.xq = :mxq ) and ( xsbj.bjmc = :mbjmc ) and ( xscj.kcmc = :mkcmc ) ) order by xscj.xh asc 9.2設(shè)計(jì)王文成績(jī)信息的窗口1.設(shè)計(jì)輸入成績(jī)的窗口輸入成績(jī)的窗口如圖。首先創(chuàng)建窗口對(duì)象w_xscj_shuru,在窗口上放置1個(gè)分組框控件,3個(gè)靜態(tài)文本控件,3個(gè)下拉列表框控件,3個(gè)命令按鈕控件和1個(gè)數(shù)據(jù)窗口控件。根據(jù)圖所示的布局調(diào)整數(shù)據(jù)窗口和控件大小、位置及有關(guān)屬性。其中,【保存】按鈕的enabled屬性設(shè)置為false;數(shù)據(jù)窗口控件調(diào)整到只顯示學(xué)
48、號(hào)、姓名和成績(jī)3列,vscrollbar屬性設(shè)為ture,數(shù)據(jù)窗口對(duì)象為d_xscj_shru,3個(gè)下拉列表框控件的列表項(xiàng)為空,由代碼動(dòng)態(tài)生成。各個(gè)窗口和控件的事件腳本如下:(1)窗口的open事件腳本如下dw_1.settransobject( sqlca)intli_xq, li_bjmc, li_kcmc,nstringls_xq, ls_bjmc, ls_kcmcselect count(distinct xq) into :li_xqfrom bjkc;declare xqcursor cursor forselect xq from bjkc group by xq;open xq
49、cursor ;for n=1 to li_xqfetch next xqcursor into :ls_xq;ddlb_1.additem( ls_xq)nextclose xqcursor ;select count(distinct bjbh) into :li_bjmcfrom bjkc;declare bjmccursor cursor forselect banji.bjmcfrom bjkc, banjiwhere bjkc.bjbh = banji.bjbh group by banji.bjmc;open bjmccursor ;for n=1 to li_bjmcfetch next bjmccursor into :ls_bjmc;ddlb_2.additem( ls_bjmc)nextclose bjmccursor;(2)窗口的closequery事件腳本如下。integer rtdw_1.accepttext()if dw_1.modifiedcount() =0 thenreturn 0elsert=messagebox(提示,添加修改內(nèi)容未保存,確實(shí)要退出嗎?,question!,yesno!)if rt=1 thenreturn 0end ifend ifreturn 1(3)課程的下拉列表框
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 飲食文化與環(huán)境-洞察分析
- 2024企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題及一套答案
- 壓延設(shè)備自動(dòng)化節(jié)能改造-洞察分析
- 香吻提取物抗炎活性與劑量關(guān)系-洞察分析
- 藥品價(jià)格形成機(jī)制研究-洞察分析
- 房屋拆遷賠償協(xié)議書(shū)范文
- 軟件代理商協(xié)議范文
- 綜采工作面退錨施工措施
- 安全生產(chǎn)文明施工管理體系與措施
- 秋季少先隊(duì)活動(dòng)計(jì)劃
- 做賬實(shí)操-科學(xué)研究和技術(shù)服務(wù)業(yè)的賬務(wù)處理示例
- 2025年人教版歷史八上期末復(fù)習(xí)-全冊(cè)重難點(diǎn)知識(shí)
- 山東省濱州市2023-2024學(xué)年高一上學(xué)期1月期末考試 政治 含答案
- 儀控技術(shù)手冊(cè)-自控專業(yè)工程設(shè)計(jì)用典型條件表
- 《慶澳門(mén)回歸盼祖國(guó)統(tǒng)一》主題班會(huì)教案
- 洗衣房工作人員崗位職責(zé)培訓(xùn)
- 廣東省深圳市光明區(qū)2022-2023學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試卷(含答案)
- XX小區(qū)春節(jié)燈光布置方案
- 《華為銷售人員培訓(xùn)》課件
- 《廣西壯族自治區(qū)房屋建筑和市政工程施工招標(biāo)文件范本(2023年版)》
- 2024年化學(xué)螺栓錨固劑項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論