




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 重慶航天職業(yè)技術(shù)學(xué)院課程設(shè)計(jì)說(shuō)明書 課程名稱 數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)PB 題 目學(xué)生成績(jī)管理系統(tǒng) 院 系 班 級(jí) 計(jì)算機(jī)網(wǎng)絡(luò) 學(xué)生姓名 指導(dǎo)教師 日 期課程設(shè)計(jì)任務(wù)書 課程設(shè)計(jì)名稱: 數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)PB 學(xué)生姓名: 專業(yè)班級(jí): 計(jì)算機(jī)網(wǎng)絡(luò) 設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)目的 該課程設(shè)計(jì)是學(xué)習(xí)完P(guān)B程序設(shè)計(jì)課程后進(jìn)行的一次集中實(shí)踐環(huán)節(jié)的綜合練習(xí)。其目的是通過(guò)本課程設(shè)計(jì)使學(xué)生對(duì)具體問(wèn)題應(yīng)用PB程序設(shè)計(jì)課程中所學(xué)的方法與技術(shù),進(jìn)行需求分析及軟件設(shè)計(jì)的過(guò)程,完成一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)全過(guò)程,不僅對(duì)PB程序設(shè)計(jì)課程中的所有知識(shí)點(diǎn)進(jìn)行一個(gè)全面的復(fù)習(xí)鞏固,更重要的是增強(qiáng)學(xué)生解決實(shí)際問(wèn)題的能力。時(shí)間
2、和學(xué)分 (1)時(shí)間:2010-2011學(xué)年第一學(xué)期1周;(2)學(xué)分:20學(xué)時(shí),1個(gè)學(xué)分。設(shè)計(jì)的地點(diǎn)及進(jìn)行方式 (1)地點(diǎn):學(xué)院實(shí)訓(xùn)室01506;(2)方式:分散實(shí)訓(xùn),上機(jī)調(diào)試和測(cè)試程序及書寫課程設(shè)計(jì)說(shuō)明書相結(jié)合的方式。設(shè)計(jì)內(nèi)容、技術(shù)條件和要求 (1)本環(huán)節(jié)要求學(xué)生根據(jù)PB程序設(shè)計(jì)整個(gè)課程的所學(xué)內(nèi)容,自己獨(dú)立設(shè)計(jì)完成一個(gè)比較復(fù)雜的小型管理系統(tǒng)。 (2)所設(shè)計(jì)的小型管理系統(tǒng)要求功能比較完善,應(yīng)包含輸入輸出、查詢、插入、刪除、打印等基本功能。 (3)程序內(nèi)容自己靈活設(shè)計(jì),包括規(guī)劃自己的數(shù)據(jù)庫(kù)、設(shè)計(jì)程序功能及界面設(shè)計(jì)。 (4)數(shù)據(jù)庫(kù)中不能少于兩個(gè)表。 (5)程序應(yīng)功能完善,界面友好,容錯(cuò)性好,操作方便
3、。說(shuō)明書內(nèi)容格式要求 從上到下各組成結(jié)構(gòu):(1)封面及任務(wù)書(見(jiàn)樣張);(2)成績(jī)?cè)u(píng)閱頁(yè);(3)目錄;(4)第1章 概述;第2章 系統(tǒng)分析;第3章 功能分析;第4章 系統(tǒng)實(shí)現(xiàn);第6章 結(jié)束語(yǔ);第7章 參考文獻(xiàn)。 紙張大小為B5紙。正文為5號(hào)宋體。一級(jí)標(biāo)題:第1章 標(biāo)題,2號(hào)宋體,上下空兩行居中,行距為5號(hào)宋體單倍行距。二級(jí)標(biāo)題:1.1第1章 第1節(jié) 標(biāo)題,3號(hào)黑體居中,上下空一行,行距為5號(hào)宋體單倍行距。三級(jí)標(biāo)題:1.1.1 第1章 第1節(jié) 第1個(gè)問(wèn)題標(biāo)題,4黑左頂,占2行。完成時(shí)間及要求 (1)第18周星期五交到課代表處;(2)字?jǐn)?shù)不少于8000字;(3)嚴(yán)禁抄襲,否則按不及格處理。 指導(dǎo)教
4、師:劉自昆 二一年十二月三十日 成績(jī)?cè)u(píng)閱目錄第一章:概述.5第二章:系統(tǒng)分析.6第三章:功能分析.7第四章:系統(tǒng)實(shí)現(xiàn)7第五章:結(jié)束語(yǔ)34第七章:參考文獻(xiàn)35概述PowerBuilder美國(guó)Sybase公司研制的一種新型、快速開(kāi)發(fā)工具,是客戶機(jī)/服務(wù)器結(jié)構(gòu)下,基于Windows3.x、Windows95和WindowsNT的一個(gè)集成化開(kāi)發(fā)工具。它包含一個(gè)直觀的圖形界面和可擴(kuò)展的象面向?qū)ο蟮木幊陶Z(yǔ)言PowerScript,提供與當(dāng)前流行的大型數(shù)據(jù)庫(kù)的接口,并通過(guò)ODBC與庫(kù)單機(jī)數(shù)據(jù)庫(kù)相連。 在開(kāi)始學(xué)習(xí)PowerBuilder 之前,首先要弄清楚的問(wèn)題是什么是PowerBuilder,它是用來(lái)干什么
5、的,它的特點(diǎn)又是什么。只有知道了PowerBuilder的功能和特點(diǎn)所在,我們才能知道什么時(shí)候應(yīng)該選用PowerBuilder作為我們的應(yīng)用程序開(kāi)發(fā)工具。 它支持應(yīng)用系統(tǒng)同時(shí)訪問(wèn)多種數(shù)據(jù)庫(kù),其中既包括Oracel,Sybase之類的大型數(shù)據(jù)庫(kù),又包括FOXPRO之類支持ODBC接口的小型數(shù)據(jù)庫(kù),PowerBuilder是完全可視化的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具,它提供了大量的控件,大大加快了項(xiàng)目的開(kāi)發(fā)速度,也使開(kāi)發(fā)者更容易掌握數(shù)據(jù)庫(kù)的開(kāi)發(fā)。 它使用的編程語(yǔ)言叫做工PowerScripr,它也是一種高級(jí)的,結(jié)構(gòu)化的編程語(yǔ)言。PowerScript提供了一套完整的嵌入式SQL語(yǔ)句,開(kāi)發(fā)人員可以像使用其它語(yǔ)句一樣
6、自由地使用SQL語(yǔ)言,這樣就大大增強(qiáng)了程序操縱和訪問(wèn)數(shù)據(jù)庫(kù)的能力??梢哉f(shuō)PowerBuilder既適合初學(xué)者快速學(xué)習(xí)數(shù)據(jù)庫(kù)的開(kāi)發(fā),又可以讓有經(jīng)驗(yàn)的開(kāi)發(fā)人員開(kāi)發(fā)出功能強(qiáng)大的數(shù)據(jù)庫(kù),是一種適用面非常廣的開(kāi)發(fā)工具。 PowerBuilder是一個(gè)用來(lái)進(jìn)行客戶/服務(wù)器開(kāi)發(fā)的完全的可視化開(kāi)發(fā)環(huán)境。使用PowerBuilder,你可以用一種可視的直觀的方式來(lái)創(chuàng)建應(yīng)用程序的用戶界面和數(shù)據(jù)庫(kù)接口。這是一個(gè)總的概念,實(shí)際上是開(kāi)發(fā)人員使用PowerBuilder去開(kāi)發(fā)應(yīng)用程序,由于所開(kāi)發(fā)的各種應(yīng)用程序充分利用了圖形用戶接口GUI的優(yōu)點(diǎn),所以PowerBuilder被認(rèn)為是一個(gè)圖形工具。 在客戶/服務(wù)器結(jié)構(gòu)的應(yīng)用中
7、,PowerBuilder具有描述多個(gè)數(shù)據(jù)庫(kù)連接與檢索的能力。特別是PowerBuilder能從大多數(shù)流行的RDBMS中存取數(shù)據(jù),且不管數(shù)據(jù)存放在什么地方;另外,各種應(yīng)用程序又可以獨(dú)立于RDBMS,因?yàn)镻owerBuilder可以使用數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)操作語(yǔ)言SQL結(jié)構(gòu)化查詢語(yǔ)言)進(jìn)行。 使用PowerBuilder,可以很容易地開(kāi)發(fā)出功能強(qiáng)大的圖形界面的訪問(wèn)服務(wù)器數(shù)據(jù)庫(kù)的應(yīng)用程序,PowerBuilder提供了建立符合工業(yè)標(biāo)準(zhǔn)的應(yīng)用程序(例如訂單登記、會(huì)計(jì)及制造系統(tǒng))所需的所有工具。 PowerBuilder應(yīng)用程序由窗口組成,這些窗口包含用戶與之交互的控件。開(kāi)發(fā)人員可以使用所有標(biāo)準(zhǔn)空間(如按鈕、
8、復(fù)選框、下拉式列表框或編輯框)以及PowerBuilder提供的特殊的使應(yīng)用程序更易于開(kāi)發(fā)和使用的控件。 通常人們把PowerBuilder看成是一種開(kāi)發(fā)工具,實(shí)際上它比其他工具強(qiáng)得多,是一種強(qiáng)有力的開(kāi)發(fā)環(huán)境。開(kāi)發(fā)人員不僅能用它來(lái)開(kāi)發(fā)用戶容易使用的各種應(yīng)用程序還可以通過(guò)PowerBuilder修改數(shù)據(jù)庫(kù),利用400多個(gè)內(nèi)部定義函數(shù),可以開(kāi)發(fā)能和其他應(yīng)用程序進(jìn)行的各種應(yīng)用程序。 PowerBuilder正在成為客戶/服務(wù)器應(yīng)用開(kāi)發(fā)的標(biāo)準(zhǔn)。相對(duì)于其他任何客戶/服務(wù)器開(kāi)發(fā)環(huán)境,PowerBuilder使開(kāi)發(fā)人員的工作更快、成本更低、質(zhì)量更高、功能更強(qiáng)。 PowerBuilder為應(yīng)用開(kāi)發(fā)提供了全面綜
9、合性的支持,可以分別概括為如下幾點(diǎn): 事件驅(qū)動(dòng)的應(yīng)用程序 功能強(qiáng)大的編程語(yǔ)言與函數(shù) 面向?qū)ο蟮木幊?跨平臺(tái)開(kāi)發(fā) 開(kāi)放的數(shù)據(jù)庫(kù)連結(jié)系統(tǒng)第二章 系統(tǒng)分析1)系統(tǒng)分析 系統(tǒng)分析階段的任務(wù)就是確定該系統(tǒng)所要解決的問(wèn)題及其具體要求。學(xué)生成績(jī)管理系統(tǒng)需要完成的主要功能如下:班級(jí)信息的輸入和存儲(chǔ),包括班級(jí)編號(hào)、班級(jí)名稱、所屬專業(yè)、入學(xué)時(shí)間和學(xué)制等。對(duì)已經(jīng)輸入的班級(jí)信息的修改、查詢。學(xué)生基本信息的輸入和存儲(chǔ)、包括學(xué)號(hào)、姓名、性別、出生日期、班級(jí)等。學(xué)生基本信息的修改和查詢。每學(xué)期初各班所開(kāi)設(shè)課程的輸入,包括課程名、學(xué)期、學(xué)時(shí)等。各班所開(kāi)設(shè)課程信息的修改和查詢。學(xué)期末輸入每個(gè)學(xué)生的考試成績(jī)。學(xué)生成績(jī)的修改。查詢
10、某個(gè)學(xué)生。查詢并打印某班某學(xué)期所有學(xué)生的各科成績(jī)。查詢并打印某班某學(xué)期某課成績(jī)。系統(tǒng)具有用戶和密碼的管理。第三章功能分析 通過(guò)上面各項(xiàng)功能的分析、分類、綜合,按照模塊化程序設(shè)計(jì)的要求,得到它的模塊結(jié)構(gòu): (1)系統(tǒng)管理 它包括密碼修改,用戶管理,登錄控制。 (2)班級(jí)信息管理 它包括班級(jí)信息修改,班級(jí)信息查詢,班級(jí)信息輸入。 (2)學(xué)生基本信息管理 包括學(xué)生基本信息查詢,學(xué)生基本信息修改,學(xué)生基本信息輸入。 (3)課程信息管理 包括課程信息查詢修改,課程信息輸入。 (4)成績(jī)信息管理 包括成績(jī)查詢,成績(jī)修改,成績(jī)輸入 第四章 系統(tǒng)實(shí)現(xiàn)4.1第4章 第1節(jié) 創(chuàng)建數(shù)據(jù)庫(kù) 在PowerBuilder
11、開(kāi)發(fā)環(huán)境中打開(kāi)數(shù)據(jù)庫(kù)畫板,使用ODB ODBC接口建立Adaptive Server Anywhere 8.0ASA 8.0的數(shù)據(jù)庫(kù),然后建立5個(gè)表和1個(gè)視圖。分別為“班級(jí)”表、“學(xué)生基本信息”表、“課程”表、“成績(jī)”表、“用戶”表。各表之間的關(guān)系如下圖1所示:圖1 各表的關(guān)聯(lián)關(guān)系4.2第4章 第1節(jié) 創(chuàng)建應(yīng)用對(duì)象創(chuàng)建新的工作空間。創(chuàng)建應(yīng)用對(duì)象,應(yīng)用對(duì)象名設(shè)為“ylq”。打開(kāi)新的對(duì)象畫板.為應(yīng)用對(duì)象ylq的Open事件編寫代碼如下:/ Profile studentSQLCA.DBMS ODBCSQLCA.AutoCommit FalseSQLCA.DBParm ConnectStringDS
12、Nstudentconnect;if sqlca.sqlcode0 thenmessagebox提示,數(shù)據(jù)庫(kù)連接失敗!elseopenw_dengluelseopenw_loginend if 執(zhí)行此應(yīng)用時(shí),首先鏈接數(shù)據(jù)庫(kù)“ylq”,成功后打開(kāi)登錄窗口。4.3第4章 第3節(jié)設(shè)計(jì)系統(tǒng)管理模塊1)設(shè)計(jì)登錄窗口 登錄窗口如圖2所示: 圖2 登錄窗口 為登錄窗口編寫腳本。(1)定義全局變量 string gs_username,gs_password,gs_admin 分別存儲(chǔ)登錄用戶的姓名、密碼和權(quán)限。(2)定義實(shí)例變量int li_n 存儲(chǔ)登錄時(shí)用戶輸入密碼錯(cuò)誤的嘗試次數(shù),控制在最多3次機(jī)會(huì)。(3
13、)登錄窗口w_denglu的open事件腳本如下li_n3 初始化變量li_n,限制出錯(cuò)次數(shù)為3次。(4)確定按鈕cb_1的Clicked事件腳本如下。 string ls_username,ls_password ls_usernametrimsle_1.text ls_passwordtrimsle_2.text if ls_username or ls_password then messagebox提示,用戶名和密碼不能為空 else SELECT ,users.password,users.admin INTO :gs_username,:gs_password,
14、:gs_admin FROM users WHERE :ls_username AND users.password :ls_password ; if sqlca.sqlcode0 then openw_main closew_denglu else li_nli_n - 1 if li_n0 then messagebox提示,用戶名或密碼錯(cuò)誤 else messagebox提示,錯(cuò)誤超過(guò)3次,自動(dòng)退出 halt end if end if end if5放棄按鈕cb_2的Clicked事件腳本如下. halt 2 設(shè)計(jì)密碼修改窗口創(chuàng)建窗口并設(shè)置屬性 創(chuàng)建密碼修改窗口
15、w_xgmm,調(diào)整其大小,在窗口上放置3個(gè)靜態(tài)文本控件st_1,st_2,st_3、2個(gè)命令按鈕控件(cb_1,cb_2),設(shè)計(jì)完后如圖3所示:圖3 密碼修改窗口為密碼窗口編寫腳本(1)確定按鈕cb_1的Clicked事件腳本如下。 string ls_passwordif trimsle_1.textgs_password thenmessagebox提示,舊密碼錯(cuò)誤elseif trimsle_2.textsle_3.text thenls_passwordtrimsle_2.textUPDATE users SET password :ls_password WHERE users.na
16、me :gs_username AND users.password :ls_password; if sqlca.sqlcode0 then messagebox提示,密碼修改不成功elsecloseparentmessagebox提示,密碼修改完成end ifelsemessagebox提示,兩次密碼不相同end if end if(2)取消按鈕cb_2的Clicked事件腳本如下。Closeparent4.4第4章 第4節(jié)設(shè)計(jì)用戶管理的數(shù)據(jù)窗口和窗口1)設(shè)計(jì)數(shù)據(jù)窗口 創(chuàng)建數(shù)據(jù)窗口“d_yhgl”,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,布局如圖4所示。圖4 數(shù)據(jù)
17、窗口d_yhgl 數(shù)據(jù)窗口d_yhgl生成的SQL Select語(yǔ)句為: SELECTusers. name, users. password, users. admin FROM users創(chuàng)建窗口并設(shè)置屬性 創(chuàng)建用戶管理窗口w_yhgl,調(diào)整其大小,在窗口上放置1個(gè)數(shù)據(jù)窗口控件(dw_1)、4個(gè)命令按鈕控件( cb_1、cb_2、cb_3、cb_4),設(shè)計(jì)完后的窗口如圖5所示:圖5 用戶管理窗口為窗口編寫腳本1用戶管理窗口w_yhgl的Open事件腳本如下。 dw_1.settransobject sqlca dw_1.retrieve2用戶管理窗口w_yhgl的Closequery事件腳
18、本如下。 integer rt dw_1.accepttext if dw_1.modifiedcount 0 and dw_1.deletedcount0 then return 0 else rtmessagebox提示,添加修改內(nèi)容未保存,確實(shí)退出嗎?,Question!,YesNo! if rt1 then return 0 end if end if return 13數(shù)據(jù)窗口控件dw_1的Itemechanged事件腳本如下。 cb_3.enabledtrue/激活“保存”按鈕4添加按鈕控件cb_1的Clicked事件腳本如下。 integer row rowdw_1.insert
19、row0 dw_1.scrolltorowrow5刪除按鈕控件cb_2的Clicked事件腳本如下。 dw_1.deleterow0 cb_3.enabledtrue6保存按鈕控件cb_3的Clicked事件腳本如下。 if dw_1.updatetrue,false1 then dw_1.resetupdate commit; cb_3.enabledfalse else rollback; messagebox提示,保存數(shù)據(jù)失敗! end if7退出按鈕控件cb_4的Clicked事件腳本如下。 closeparent4.5第4章 第5節(jié)設(shè)計(jì)主窗口和菜單1)創(chuàng)建菜單對(duì)象 菜單結(jié)構(gòu)如圖6所示
20、。菜單對(duì)象名為“m_main”,菜單欄中的菜單項(xiàng)設(shè)置了訪問(wèn)鍵(AccessKey),常用的菜單項(xiàng)設(shè)置了快捷鍵(如退出系統(tǒng)的快捷鍵為Alt+F4,最常用的菜單項(xiàng)在工具條上建立了按鈕。) 下面編寫各個(gè)菜單項(xiàng)的腳本。對(duì)于這些代碼,在對(duì)應(yīng)的窗口沒(méi)有建立之前先注釋掉,在建立之后再去掉注釋。(1)系統(tǒng)菜單下密碼修改菜單的Clicked事件腳本如下。 Openw_mmxg(2)系統(tǒng)菜單下用戶管理菜單的Clicked事件腳本如下。 Openw_yhgl(3)系統(tǒng)菜單下退出系統(tǒng)菜單的Clicked事件腳本如下。 Closeparentwidow(4)班級(jí)管理菜單下錄入班級(jí)信息菜單的Clicked事件腳本如下。
21、opensheetw_banji_shuru,w_main,6,Original! 5)班級(jí)管理菜單下修改班級(jí)信息菜單的Clicked事件腳本如下。 opensheetw_banji_xiugai,w_main,6,Original! (6)班級(jí)管理菜單下瀏覽班級(jí)信息菜單的Clicked事件腳本如下。 opensheetw_banji_liulan,w_main,6,Original! (7)學(xué)生管理菜單下錄入學(xué)生信息菜單的Clicked事件腳本如下。 opensheetw_jiben_shuru,w_main,6,Original! (8)學(xué)生管理菜單下修改學(xué)生信息菜單的Clicked事件腳
22、本如下。 opensheetw_jiben_xiugai,w_main,6,Original! (9)學(xué)生管理菜單下查詢學(xué)生信息菜單的Clicked事件腳本如下。 opensheetw_jiben_chaxun,w_main,6,Original! (10)課程管理菜單下錄入修改開(kāi)設(shè)課程菜單的Clicked事件腳本如下。 opensheetw_bjkc_shurnxiugai,w_main,6,Original! (11)課程管理菜單下查詢開(kāi)設(shè)課程菜單的Clicked事件腳本如下。 opensheetw_bjkc_chaxun,w_main,6,Original! (12)成績(jī)管理菜單下錄入修
23、改成績(jī)菜單的Clicked事件腳本如下。 opensheetw_xscj_shuru,w_main,6,Original! (13)成績(jī)管理菜單下查詢個(gè)人成績(jī)菜單的Clicked事件腳本如下。 opensheetw_xscj_chaxun,w_main,6,Original! (14)成績(jī)管理菜單下查詢班級(jí)成績(jī)菜單的Clicked事件腳本如下。 opensheetw_xscj_bjcx,w_main,6,Original! (15)成績(jī)管理菜單下查詢課程成績(jī)菜單的Clicked事件腳本如下。 opensheetw_xscj_kccx,w_main,6,Original! (16)窗口菜單下層疊
24、窗口菜單的Clicked事件腳本如下。 w_main.arrangesheets cascade! (17)幫助菜單下關(guān)于菜單的Clicked事件腳本如下。 openw_about 圖6 菜單結(jié)構(gòu) (18)幫助菜單下聯(lián)機(jī)幫助菜單的Clicked事件腳本如下。 ShowHelpd:xscjhelpxscjhelp.chm,index! 4.6第4章 第6節(jié)設(shè)計(jì)班級(jí)管理模塊設(shè)計(jì)訪問(wèn)班級(jí)信息的數(shù)據(jù)窗口 設(shè)計(jì)輸入班級(jí)信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_banji_shuru,顯示風(fēng)格為“Freeform”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖8所示。圖8 數(shù)據(jù)窗口d_banji_shuru
25、數(shù)據(jù)窗口d_banji_shuru生成的SQL Select語(yǔ)句為: SELECT banji.bjbh,banji.bjmc, banji.zymc,banji.xz, banji.rxsj,banji.rs FROM banji設(shè)計(jì)修改班級(jí)信息的數(shù)據(jù)信息 創(chuàng)建數(shù)據(jù)窗口d_banji_xiugai,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖9所示圖9 數(shù)據(jù)窗口d_banji_xiugai 數(shù)據(jù)窗口d_banji_xiugai生成的SQL Select語(yǔ)句為: SELECT banji.bjbh, banji.bjmc, banji.zymc,banji.xz
26、, banji.rxsj, banji.rs FROM banji ORDER BY banji.bjbh ASC2)設(shè)計(jì)訪問(wèn)班級(jí)信息的窗口設(shè)計(jì)輸入窗口 創(chuàng)建窗口對(duì)象w_shuru,調(diào)整其大小,放置1個(gè)數(shù)據(jù)窗口控件dw_1、8個(gè)命令按鈕控件(cb_1cb_8),窗口布局如圖10所示。圖10 輸入窗口 設(shè)置完屬性后開(kāi)始編寫腳本代碼,其中窗口w_shuru的Open事件、命令按鈕(添加、刪除、保存、退出)的Clicked事件同窗口w_yhgl的相應(yīng)事件腳本。其他命令按鈕的事件腳本如下:(1)|按鈕的Clicked事件腳本如下。 dw_1.scrolltorow1(2)按鈕的Clicked事件腳本如
27、下。 dw_1.scrollpriorrow(3)按鈕的Clicked事件腳本如下。 dw_1.scrollnextrow(4)|按鈕的Clicked事件腳本如下。設(shè)計(jì)修改窗口創(chuàng)建窗口對(duì)象w_xiugai,調(diào)整其大小,放置1個(gè)數(shù)據(jù)窗口控件(dw_1)、4個(gè)命令按鈕控件(cb_1cb_4),窗口布局如圖11所示: 圖11 修改窗口 窗口和控件的事件腳本與以上輸入窗口的對(duì)應(yīng)部分相同。設(shè)計(jì)輸入班級(jí)信息窗口 通過(guò)繼承輸入窗口w_shuru生成輸入班級(jí)信息窗口w_banji_shuru,將數(shù)據(jù)控件dw_1的DataObject屬性設(shè)置為d_banji_shuru,將窗口的Tile屬性改為“錄入班級(jí)信息”
28、,此窗口設(shè)計(jì)便完成了。如圖12所示:圖12 錄入班信息級(jí)窗口設(shè)計(jì)修改班級(jí)信息窗口 通過(guò)繼承輸入窗口w_xiugai生成輸入班級(jí)信息窗口w_banji_xiugai,將數(shù)據(jù)控件dw_1的DataObject屬性設(shè)置為d_banji_xiugai,將窗口的Tile屬性改為“修改班級(jí)信息”,此窗口設(shè)計(jì)便完成了。如圖13所示:圖13 修改班級(jí)信息窗口設(shè)計(jì)瀏覽班級(jí)信息窗口創(chuàng)建窗口對(duì)象w_banji_liulan,調(diào)整其大小,放置一個(gè)數(shù)據(jù)窗口控件dw_1,調(diào)整窗口布局如圖14所示。圖14 瀏覽班級(jí)信息窗口 窗口的Open事件腳本如為: dw_1.settransobjectsqlca dw_1.retri
29、eve4.7第4章 第7節(jié)設(shè)計(jì)學(xué)生基本信息管理模塊1)設(shè)計(jì)訪問(wèn)學(xué)生基本信息的數(shù)據(jù)窗口設(shè)計(jì)輸入學(xué)生基本信息的數(shù)據(jù)窗口 創(chuàng)建數(shù)據(jù)窗口d_jiben_shuru,顯示風(fēng)格為“Freeform”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖15所示:圖15 數(shù)據(jù)窗口d_jiben_shuru 數(shù)據(jù)窗口的d_jiben_shuru生成的SQL Select語(yǔ)句為:SELECT jiben.xh,jiben.xm, jiben.xb, jiben.csrq, jiben.jtzz,jiben.bjbh FROM jiben設(shè)計(jì)修改學(xué)生基本信息的數(shù)據(jù)窗口 創(chuàng)建數(shù)據(jù)窗口d_jiben_xiugai,顯
30、示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖16所示:圖16 數(shù)據(jù)窗口d_jiben_xiugai 數(shù)據(jù)窗口d_jiben_xiugai生成的SQL Seleect語(yǔ)句為: SELECT jiben.xh, jiben.xm,jiben.xb,jiben.csrq,jiben.jtzz,jiben.bjbh FROM jiben ORDER BY jiben.xh ASC設(shè)計(jì)查詢學(xué)生基本信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_jiben_chaxun,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“SQL Select”,其布局如圖17所示:圖17 數(shù)據(jù)窗口d_jiben_chaxu
31、n 其中,定義3個(gè)String型的檢索參數(shù)變量mxh、mxm、mbj,分別表示學(xué)號(hào)、姓名、班級(jí),形成帶檢索參數(shù)的數(shù)據(jù)窗口。2)設(shè)計(jì)訪問(wèn)學(xué)生基本信息的窗口設(shè)計(jì)輸入學(xué)生基本信息的窗口 通過(guò)繼承窗口輸入窗口w_shuru生成輸入學(xué)生基本信息窗口w_jiben_shuru,將數(shù)據(jù)控件dw_1的DataObject屬性設(shè)置為 d_jiben_shuru,將窗口的Title屬性改為“錄入學(xué)生基本信息”,如圖18。圖18 錄入學(xué)生基本信息窗口2.設(shè)計(jì)輸入學(xué)生基本信息的窗口 通過(guò)繼承窗口輸入窗口w_xiugai生成修改學(xué)生基本信息窗口w_jiben_xiugai, 將數(shù)據(jù)控件dw_1的DataObject屬性
32、設(shè)置為 d_jiben_xiugai,將窗口的Title屬性改為“修改學(xué)生基本信息”,如圖19: 3.設(shè)計(jì)查詢學(xué)生基本信息的窗口 要求此窗口中能夠根據(jù)學(xué)生的姓名或?qū)W號(hào)查詢出學(xué)生的基本信息,能夠根據(jù)班級(jí)名稱查詢出該班所有學(xué)生的基本信息。窗口如圖20所示:圖19 修改學(xué)生基本信息窗口圖20 查詢學(xué)生基本信息窗口查詢按鈕的Open事件腳本如下。 dw_1.settransobjectsqlca if ddplb_1.text or sle_1.text then messagebox提示,查詢列和查詢內(nèi)容不能為空! return end if string str strtrimsle_1.text
33、 choose case ddplb_1.text case 學(xué)號(hào) dw_1.retrievestr,%,% case 姓名 dw_1.retrieve%,str,% case 班級(jí)名稱 dw_1.retrieve%,%,str end choose代碼中根據(jù)查詢依據(jù)的不同,以不同參數(shù)方式檢索。4.8第4章 第8節(jié)設(shè)計(jì)課程管理模塊1)設(shè)計(jì)訪問(wèn)課程信息的數(shù)據(jù)窗口設(shè)計(jì)輸入班級(jí)課程信息的數(shù)據(jù)窗口 創(chuàng)建數(shù)據(jù)窗口d_bjkc_shuru,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖21所示:圖20 數(shù)據(jù)窗口d_bjkc_shuru 數(shù)據(jù)窗口d_bjkc_shuru生成的S
34、QL Seleect語(yǔ)句為: SELECT bjkc.bjbh, bjkc.xq,bjkc.kcmc,bjkc.xs,bjkc.jsxm FROM bjkc設(shè)計(jì)查詢班級(jí)課程信息的數(shù)據(jù)窗口 創(chuàng)建數(shù)據(jù)窗口d_bjkc_chaxun,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖21所示。圖21 數(shù)據(jù)窗口d_bjkc_chaxunn其中,定義2個(gè) String型檢索參數(shù)變量mxq、mbjmc,分別表示學(xué)期、班級(jí),形成帶檢索參數(shù)的數(shù)據(jù)窗口。 該數(shù)據(jù)窗口的修改屬性為默認(rèn)值即“不允許修改”。 數(shù)據(jù)窗口d_bjkc_chaxun生成的SQL Select語(yǔ)句為: SELECT
35、bjkc.kcmc, bjkc.xs,bjkc.jsxm, FROM bjkc , banji WHERE banji. bjbh bjkc. bjbh AND bjkc. xq:mxq AND banji . bjmc:mbjmc2)設(shè)計(jì)訪問(wèn)課程信息的窗口設(shè)計(jì)輸入修改班級(jí)課程信息的窗口 班級(jí)課程的輸入和修改都通過(guò)此窗口完成,輸入修改班級(jí)課程信息的窗口布局如圖22所示。圖22 輸入修改班級(jí)課程信息的窗口 首先,從祖先窗口w_xiugai繼承生成窗口對(duì)象w_bjkc_shuruxiugai,調(diào)整其大小。然后將數(shù)據(jù)窗口控件dw_1的DataObject屬性設(shè)置為d_bjkc_shuru,此窗口設(shè)計(jì)
36、即完成。設(shè)計(jì)查詢班級(jí)開(kāi)設(shè)課程的窗口 首先創(chuàng)建一個(gè)窗口對(duì)象w_bjkc_chaxun,調(diào)整大小,在窗口中放置2個(gè)靜態(tài)文本控件(st_1,st_2)、2個(gè)下拉列表框控件(ddlb_1,ddlb_2)、1個(gè)命令按鈕(cb_1)、1個(gè)數(shù)據(jù)窗口控件(dw_1),調(diào)整各個(gè)控件的位置和大小。如圖23所示:1窗口w_bjkc_chaxun的open事件腳本如下 dw_1.settransobjectsqlca int li_xq,li_bjmc,n string ls_xq,ls_bjmcselect countdistinct xqinto :li_xq 圖23 查詢班級(jí)開(kāi)設(shè)課程的窗口 from 課程;de
37、clare xqcursor cursor for select xq from 課程 group by xq;open xqcursor;for n1 to li_xqfetch next xqcursor into :ls_xq;ddplb_1.additemls_xqnextclose xqcursor;select countdistinct bjmc into :li_bjmcfrom 班級(jí);declare bjmccursor cursor forselect 班級(jí).bjmcfrom 課程, 班級(jí)where 課程.bjbh班級(jí).bjbh group by 班級(jí).bjmc;open
38、bjmccursor;for n1 to li_bjmcfetch next bjmccursor into :ls_bjmc;ddplb_2.additemls_bjmcnextclose bjmccursor; 2查詢按鈕的Clicked事件腳本如下。 dw_1.retrieveddplb_1.text,ddplb_2.text 4.9第4章 第9節(jié)設(shè)計(jì)成績(jī)管理模塊1)設(shè)計(jì)訪問(wèn)成績(jī)信息的數(shù)據(jù)窗口設(shè)計(jì)輸入成績(jī)信息的數(shù)據(jù)窗口 創(chuàng)建數(shù)據(jù)窗口d_xscj_shuru,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“SQL Select”,其布局如圖19所示。數(shù)據(jù)來(lái)源與成績(jī)表xscj和視圖xsjb,其中,學(xué)號(hào)
39、、學(xué)期、課程名稱和成績(jī)?yōu)槌煽?jī)表xscj的列,姓名是視圖xscj的列。 選則Roes|Updata Properties命令,打開(kāi)數(shù)據(jù)窗口的修改屬性對(duì)話框,如圖24所示:圖24 數(shù)據(jù)窗口d_xscj_shuru 選擇Rows|Update Properties命令,打開(kāi)數(shù)據(jù)窗口的修改屬性對(duì)話框,設(shè)置數(shù)據(jù)窗口的修改屬性,即只有成績(jī)表xscj的成績(jī)列可以在數(shù)據(jù)窗口中修改,關(guān)鍵字為成績(jī)表xscj的主關(guān)鍵字(xh,xq,kcmc)。然后,單擊工具條上的Tab Order圖標(biāo),將列控件sxcj_cj的Tab Order值設(shè)為10,在單擊Tab Order圖標(biāo)回到原設(shè)計(jì)狀態(tài)。如圖25:圖25 數(shù)據(jù)窗口d_x
40、scj_shuru的修改屬性設(shè)計(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。如圖26:圖26 數(shù)據(jù)窗口d_xscj_grcx設(shè)計(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。如圖27:圖27 數(shù)據(jù)窗口d_xscj_bjxc 在Headeer1條中添加2個(gè)計(jì)算域控件,對(duì)應(yīng)的表達(dá)式分別為mbjmc和m
41、xq,3個(gè)文本控件,其文本分別為 “成績(jī)單”、 “班級(jí)” 、和 “學(xué)期”. 數(shù)據(jù)窗口的檢索參數(shù)為mxq和mbjmc,分別對(duì)應(yīng)于學(xué)期和班級(jí)名稱,修改屬性取默認(rèn)值(不允許修改)。設(shè)計(jì)查詢某班級(jí)某學(xué)期全體學(xué)生各科成績(jī)的數(shù)據(jù)窗口 創(chuàng)建數(shù)據(jù)窗口d_xscj_kccx,顯示風(fēng)格為 “N_Up”,攔數(shù)為2,數(shù)據(jù)源類型為 “SQL Select”,數(shù)據(jù)來(lái)源于成績(jī)表xscj和視圖xsbj.如圖28:圖28 數(shù)據(jù)窗口d_xsch_kccx 在Header條中添加2個(gè)計(jì)算域控件對(duì)應(yīng)的表達(dá)式分別為mbcme,3個(gè)文本控件,其文本分別為 “成績(jī)單”、 “班級(jí)” 、和 “課程”. 數(shù)據(jù)窗口的檢索參數(shù)為mxq、mbjmc、
42、mkcme,分別對(duì)應(yīng)于學(xué)期、班級(jí)名稱和課程名稱,修改屬性取默認(rèn)值(不允許修改)。2設(shè)計(jì)訪問(wèn)成績(jī)信息的窗口設(shè)計(jì)輸入成績(jī)的窗口 首先創(chuàng)建窗口對(duì)象w_xscj_shuru,在窗口上放置1個(gè)分組框控件、3個(gè)靜態(tài)文本控件、3個(gè)下拉列表框控件、3個(gè)命令按鈕控件和1個(gè)數(shù)據(jù)窗口控件。如圖29:圖29 輸入成績(jī)的窗口 各個(gè)窗口和控件的事件腳本如下。 1窗口的open事件腳本如下。 dw_1.settransobjectsqlca int li_xq,li_bjmc,li_kcmc,n string ls_xq,ls_bjmc,ls_kcmc select countdistinct xqinto :li_xq
43、from bjkc; declare xqcursor cursor for select xq from bjkc group by xq; open xqcursor; for n1 to li_xq fetch next xqcursor into :ls_xq; ddlb_1.additemls_xq next close xqcursor; /生成班級(jí)下拉列表框的列表項(xiàng) select countdistinct bjbh into :li_bjmc from bjkc; declare bjmccursor cursor for select banji.bjmc from bjkc
44、, banji where /.h group by banji.bjmc; open bjmccursor; for n1 to li_bjmcfetch next bjmccursor into :ls_bjmc;ddlb_2.additemls_bjmc next close bjmccursor; 2窗口的closequery事件腳本如下。integer rt dw_1.accepttext if dw_1.modifiedcount0 then return 0 else rtmessagebox提示,添加修改內(nèi)容未保存,確實(shí)退出嗎?,question!,yesno!if rt1 t
45、henreturn 0 end if end if return 1 3課程的下拉列表框的getfocus事件腳本如下。 int li_kcmc,n string ls_kcmc,ls_xq,ls_bjmc ls_xqddlb_1.text ls_bjmcddlb_2.text if notls_xqor ls_bjmc then select countdistinct bjkc.kcmcinto :li_kcmc from bjkc,banji /.hand banji.bjmc:ls_bjmcandbjkc.xq:ls_xq; declare kcmccursor cursor for
46、select bjkc.kcmc from banji,bjkc /.hand banji.bjmc:ls_bjmcandbjkc.xq:ls_xq group by bjkc.kcmc; ddlb_3.reset open kcmccursor; for n1 to li_kcmc fetch next kcmccursor into :ls_kcmc; ddlb_3.additemls_kcmc next close kcmccursor; end if 4確定按鈕的clicked事件腳本如下。 int li_xh,n string ls_kcmc,ls_xq,ls_bjmc,ls_xh
47、ls_xqddlb_1.text ls_bjmcddlb_2.text ls_kcmcddlb_3.text if ls_xq or ls_bjmc or ls_kcmc then messagebox提示,選擇項(xiàng)不能空! else select countdistinct xhinto :li_xh from xsbj where xsbj.bjmc:ls_bjmc; declare xhcursor cursor for select xh from xsbj where xsbj.bjmc:ls_bjmc; open xhcursor; for n1 to li_xh fetch nex
48、t xhcursor into:ls_xh; insert intoxscjxh,xq,kcmc,cj values:ls_xh,:ls_xq,ls_kcmc,null; next close xhcursor; dw_1.retrievels_xq,ls_bjmc,ls_kcmc end if 設(shè)計(jì)查詢學(xué)生個(gè)人成績(jī)窗口 查詢學(xué)生個(gè)人成績(jī)的窗口如圖30所示。數(shù)據(jù)窗口控件連接的數(shù)據(jù)窗口對(duì)象為d_xscj_grcx 1查詢按鈕的clicked事件腳本如下 dw_1.settransobjectsqlca if sle_1.textor sle_2.text then messagebox提示,班級(jí) 學(xué)期和課程不能為空 elsedw_1.retrievesle_1.text,sle_2.text cb_2.enabledtrue end if 2打印按鈕的clicked事件腳本如下 dw_1.printtrue 3退出按鈕的clicked事件腳本如下 closeparent圖30 查詢學(xué)生個(gè)人成績(jī)的窗口設(shè)計(jì)查詢班級(jí)成績(jī)的窗口 查詢班級(jí)成績(jī)的窗口如圖31所示。數(shù)據(jù)窗口控件的dataobject屬性為d_xscj_bjcx。 此窗口的open 事件腳本與輸入成績(jī)窗口的open事件腳本
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人優(yōu)點(diǎn)總結(jié)20篇
- 下半年個(gè)人工作計(jì)劃
- 中醫(yī)康復(fù)治療技術(shù)模擬練習(xí)題(含參考答案)
- 游泳救生員初級(jí)題庫(kù)與參考答案
- 推拿治療學(xué)試題含答案
- 一通三防工作總結(jié)
- 買房同中介合同范本
- 口罩購(gòu)銷合同范本模板
- 出售混凝土檁條合同范本
- 住宅小區(qū)車位轉(zhuǎn)讓合同范本
- 職員員工行為規(guī)范檢查表
- sm通道開(kāi)關(guān)量冗余輸入端子模塊使用說(shuō)明書
- 位相差和光程差
- 高質(zhì)量SCI論文入門必備從選題到發(fā)表全套課件
- 前列腺癌的診斷與治療課件
- 產(chǎn)品開(kāi)發(fā)的變更流程
- 氣管鏡科室講課ppt課件(PPT 69頁(yè))
- 無(wú)創(chuàng)呼吸機(jī)的應(yīng)用(飛利浦偉康V60)課件
- 口腔修復(fù)學(xué)-第七章-牙列缺失的全口義齒修復(fù)
- 對(duì)于二氧化碳傳感器的現(xiàn)狀及發(fā)展趨勢(shì)的淺分析
- 麥語(yǔ)言函數(shù)手冊(cè)參考模板
評(píng)論
0/150
提交評(píng)論