2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  在日新月異的今天社會經(jīng)濟發(fā)展高速增長,計算機已經(jīng)成為人們不可分割的一部分。為了加強計算機的智能化,人們開發(fā)了各種管理系統(tǒng)來解決現(xiàn)實生活的尖端問題。教務管理系統(tǒng)就是管理系統(tǒng)很重要的一部分。教務管理系統(tǒng)的需要是面向所有的教職工和學生,用戶數(shù)量大,地點分布廣。在這里我們使用的是C/S模式系統(tǒng)。 </p><p&

2、gt;  關鍵詞:powerbuilder程序設計 Access數(shù)據(jù)庫 教務管理系統(tǒng)。</p><p><b>  目 錄</b></p><p>  第一章 前言1</p><p>  第二章 系統(tǒng)流程及庫文件3</p><p>  2.1 數(shù)據(jù)庫需求分析3</p><p>

3、;  2.2 數(shù)據(jù)庫設計及過程 ------------------------------------------7</p><p>  第三章 程序開發(fā)10</p><p>  3.1 登錄布置---------------------------------------------------10</p><p>  3.1.1 登錄界面-------

4、--------------------------------------10</p><p>  3.1.2 創(chuàng)建系統(tǒng)系統(tǒng)主菜單-----------------------------------13</p><p>  3.2 基礎信息查詢-----------------------------------------------13</p><p> 

5、 3.2.1 系部信息查詢界面-------------------------------------13</p><p>  3.2.2 班級信息查詢界面-------------------------------------16</p><p>  3.2.3 學生信息查詢界面--------------------------------------17</p>

6、<p>  3.2.4 院校職工信息和課程信息查詢界面------------------------19</p><p>  3.3 教務管理20</p><p>  3.3.1 學生選課-------------------------------------------20</p><p>  3.3.2 課表查詢-----------

7、--------------------------------25</p><p>  3.3.3 成績輸入-------------------------------------------26</p><p>  3.4 報表統(tǒng)計29</p><p>  3.4.1 成績輸出-------------------------------------

8、------29</p><p>  3.4.2 打印成績單-----------------------------------------31</p><p>  3.5 系統(tǒng)維護31</p><p>  3.5.1 系部信息維護----------------------------------------31</p><p>

9、  3.5.2 班級信息維護----------------------------------------34</p><p>  3.5.3 學生信息維護----------------------------------------34</p><p>  3.5.4 課程信息維護----------------------------------------34</p&

10、gt;<p>  3.5.5 院校職工維護----------------------------------------34</p><p>  3.5.6 用戶登錄維護----------------------------------------34</p><p>  參考文獻--------------------------------------------

11、--------------38</p><p>  致謝--------------------------------------------------------------39</p><p>  第一章 前 言</p><p>  信息管理系統(tǒng)(MIS)是集計算機技術、網(wǎng)絡通信技術為一體的信息系統(tǒng)工程,它能夠使企業(yè)運行的數(shù)據(jù)更加準確、及時、全面

12、、詳實,同時對各種信息進一步的加工,使企業(yè)領導層對生產(chǎn)、經(jīng)營的決策依據(jù)更充分,更具有合理性科學性,并創(chuàng)造出更多的發(fā)展機會;另外也進一步加強企業(yè)的科學化、合理化、制度化、規(guī)范化管理,為企業(yè)的管理水平跨上新臺階,為企業(yè)持續(xù)、健康、穩(wěn)定的發(fā)展打下基礎。</p><p>  MIS系統(tǒng)開發(fā)過程不僅僅是一個編寫應用程序的過程,而是以軟件工程的思想為指導,從可行性研究開始,經(jīng)過系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)實施等主要階段而進行規(guī)范

13、的開發(fā)過程。目前國內(nèi)使用和發(fā)展的MIS平臺模式大體上分為兩種:客戶機/服務器(Client/Server,簡稱C/S)模式和瀏覽器/服務器(Browser/Server,簡稱C/S)模式。</p><p>  MIS系統(tǒng)不僅僅使用在企業(yè)中,它可以應用的方面很廣,各行各業(yè)都可以應用:金融、保險、農(nóng)業(yè)、工業(yè)等等。只要是有數(shù)據(jù)采集整理紀錄的方面,都可以應用。</p><p>  學校作為一個獨立

14、的機構同樣也不例外。而且學校的各種情況都比較復雜,各個機構都各自獨立,又相互聯(lián)系,這就需要一個比較復雜的MIS系統(tǒng)。學校的MIS系統(tǒng)一般由以下管理部分組成:學生信息管理,教學管理,教務處管理,財務管理,物資管理,后勤管理等。</p><p>  學校的各個系統(tǒng)又分為不同的管理人員,不同的管理人員所看到的以及所操作管理的部分又不同,這就需要給不同的操作者提供不同的操作管理權限。不同身份的用戶所需要的資料也不同,這需

15、要給不同的用戶提供不同的操作界面,進行不同的操作。而且不同身份的客戶所關心的問題也不同,比如學校的使用者大體分學生、教師、教務處、這就需要在做MIS系統(tǒng)開發(fā)之前一定要做好前期的需求分析,中期的系統(tǒng)設計、程序開發(fā),而且也要注意后期的系統(tǒng)維護。</p><p><b>  開發(fā)工具介紹:</b></p><p>  PowerBuilder提供了對目前流行的大多數(shù)關系數(shù)據(jù)

16、庫管理系統(tǒng)的支持,由于在PowerBuilder的應用程序中對數(shù)據(jù)庫訪問的部分一般采用國際化標準數(shù)據(jù)庫查詢語言SQL,使得用PowerBuilder開發(fā)的應用程序可以不做修改或者只做少量的修改就可以在不同的后臺數(shù)據(jù)庫管理系統(tǒng)上使用。也就是說用PowerBuilder開發(fā)的應用程序是獨立于服務器上的數(shù)據(jù)庫管理系統(tǒng)的。</p><p>  和大多數(shù)的WINDOWS應用程序一樣,PowerBuilder也是事件驅(qū)動工作

17、方式。在這種工作方式中,程序的運行沒有固定的流程,程序中的代碼也是為各種可能發(fā)生的事件編寫的,當程序開始運行之后,它就可以接受來自系統(tǒng),用戶或者其它應用程序觸發(fā)的事件,然后執(zhí)行相應的事件代碼。事件驅(qū)動的工作方式與面向?qū)ο蠹夹g是緊密相關的,在PowerBuilder應用程序中,接受發(fā)生的事件的往往就是程序界面中的各種可視化對象。</p><p>  PowerBuilder是一種面向?qū)ο蟮拈_發(fā)工具,各種WINDOW

18、S應用程序中常見的窗口、菜單、控件等在PowerBuilder中都是一個個的對象。在PowerBuilder中我們還可以創(chuàng)建自己的用戶對象。特別要指出的是PowerBuilder提供了對面向?qū)ο蠓椒ㄖ械母鞣N技術的全面支持,我們可以利用面向?qū)ο蠓椒ㄖ械膶ο蟮姆庋b性、繼承性、多態(tài)性等特點使得我們開發(fā)的應用程序具有極大的可重用性和可擴展性,而這一點正是軟件工程中對應用程序所提出的重要目標。</p><p>  在當前,

19、由于網(wǎng)絡技術的發(fā)展,許多種不同的操作系統(tǒng)平臺在INTERNET網(wǎng)上同時被使用,這對開發(fā)的應用程序的跨平臺性提出了更高的要求,而PowerBuilder就提供了良好的跨平臺性,比如在PowerBuilder中,利用WINDOWS平臺開發(fā)的各種對象可以方便地應用到UNIX平臺中,因為PowerBuilder支持對象的跨平臺性。這樣使得把應用程序從一個平臺移到另一個平臺變得并不復雜。</p><p>  為了給用戶提供

20、各個方面的支持,PowerBuilder具有自己的編程語言POWERSCRIPT,這個語言除了提供基本的流程控制語句,還提供了幾百個函數(shù)來操縱各種對象和提供諸如DDE,OLE等方面的支持。此外我們還可以定義自己的函數(shù),處理特定的事件。學習PowerBuilder時相當一部分的時間就是用來了解和熟悉PowerBuilder提供的各種函數(shù)。</p><p>  PowerBuilder一個很大的特點就是提出了數(shù)據(jù)窗口

21、對象的概念。數(shù)據(jù)窗口對象也是PowerBuilder中的一種對象類型,與其它對象不同的是數(shù)據(jù)窗口對象是專門為了訪問后臺的數(shù)據(jù)庫服務的,在數(shù)據(jù)窗口對象中我們定義了數(shù)據(jù)的來源和數(shù)據(jù)的顯示風格,這樣在應用程序中我們就可以把精力完全放在程序的運行流程控制上,而不用關心具體數(shù)據(jù)的來源,因為我們在數(shù)據(jù)窗口對象中已經(jīng)定義好了數(shù)據(jù)的來源。如果需要使用數(shù)據(jù)庫中不同的數(shù)據(jù)也只要對數(shù)據(jù)窗口對象進行修改就可以了。特別要指出的是PowerBuilder在數(shù)據(jù)窗口

22、對象中提供了豐富的數(shù)據(jù)顯示方式,可以滿足各種不同的需要。 在PowerBuilder較新的版本中提供了基礎類庫PFC,它為應用程序的開發(fā)提供了許多可重用的預定義類和對象,利用基本類庫PFC可以快速開發(fā)出高質(zhì)量重用性好的應用程序。真正發(fā)揮面向?qū)ο缶幊痰木薮笸Α?lt;/p><p>  最后要指出的是PowerBuilder有三個不同的版本,分別為DESKTOP型,PROFESSIONAL型,和ENTERPRISE型,

23、DESKTOP型是為個人使用的桌面型應用程序,在這里可以利用PowerBuilder內(nèi)置的數(shù)據(jù)庫管理系統(tǒng)SYBASE SQL ANYWHERE來創(chuàng)建和使用本地數(shù)據(jù)庫,為個人的應用服務;PROFESSIONAL型的PowerBuilder最重要的一點就是提供了對MICROSOFT ODBC(數(shù)據(jù)庫標準連接接口)的支持,在PROFESSIONAL版本中我們就可以使用PowerBuilder的繼承,多態(tài)等絕大多數(shù)特性;在ENTERPRISE版

24、本中最重要的一點就是提供了對開發(fā)大型的數(shù)據(jù)庫應用程序的全面的支持,提供了開發(fā)大型應用程序的許多輔助的工具,比如C++ CLASS BUILDER等</p><p>  第二章 系統(tǒng)流程及庫文件</p><p>  2.1教務管理系統(tǒng)需求分析:</p><p>  將通用教務管理系統(tǒng)所必備的功能歸納如下圖所示,其中每個功能都由若干相關聯(lián)的子功能模塊組成,除此之外

25、,系統(tǒng)還應包括信息系統(tǒng)必須具備的通用功能如:權限設置、數(shù)據(jù)備份與恢復。</p><p>  2.1.1系統(tǒng)數(shù)據(jù)流程: </p><p><b>  如下圖所示:</b></p><p>  2.1.2 基礎數(shù)據(jù)管理</p><p>  “基礎數(shù)據(jù)管理”用于維護整個教務管理系統(tǒng)正常運行所需的基礎數(shù)據(jù)集,以保證教系統(tǒng)有一個統(tǒng)

26、一的標準的基礎數(shù)據(jù)集,便于數(shù)據(jù)的共享使用,內(nèi)容包括入學年份、學年學期、院系數(shù)據(jù)、專業(yè)設計、教室情況等。如下圖所示:</p><p>  2.1.3 教學計劃管理:</p><p>  “教學計劃管理”用于維護學校中各系各專業(yè)的課程、課組計劃安排信息,作為選課和畢業(yè)審查的標準,包括的功能有課程計劃登記、課和計劃審批、選課情況查詢、選課信息審批等。</p><p>  

27、2.1.4 課程管理:</p><p>  “課程管理”用于學校所有開設課程的情況,包括課程編號、課程名稱、上課學時、開課系、上課教師等相關信息,功能包括課程的增加、刪除、查詢、統(tǒng)計等。</p><p><b>  學籍管理:</b></p><p>  “學藉管理”主要包括了高校學籍基本信息的錄入、查詢修改、打印輸出、維護等常用功能、并提供學

28、號、編排、學生照片輸入與顯示、學籍變動(留級、休學、跳級、轉(zhuǎn)班、轉(zhuǎn)學、退學等)、獎懲登記、畢業(yè)情況統(tǒng)計等功能。</p><p><b>  教師管理:</b></p><p>  “教師管理”用于管理教師相關的信息,提高教學質(zhì)量,保證教學工作的高效運行,包含的功能模塊如下圖所示:</p><p>  2.1.5注冊收費管理:</p>

29、<p>  “注冊收費”用于記錄學生新學期的注冊情況,如果未注冊將記錄學生的未注冊原因及未注冊的去向?!笆召M管理”用于記錄學生開學初的收費情況,每個學生的收費標準來自學生學籍信息中的收費類別。</p><p>  2.1.6排課選課管理:</p><p>  “排課管理”用于根據(jù)教學計劃、教師資源等,制訂每學期的課程表。</p><p>  2.1.7

30、教務管理:</p><p>  “教務管理”用于根據(jù)課程自動生成本學期的考試地點考試時間監(jiān)考老師等數(shù)據(jù),并對考試的過程和結果進行監(jiān)控,包含的功能模塊如下圖所示。</p><p>  “教務信息發(fā)布”用于發(fā)布教務信息,如學年,學期,期中(期未)考試,考試時間等,以及其他一些有關事務的事項。、</p><p>  “考試日程安排”用于管理考試日期,時間,考試科目,考試班

31、級,監(jiān)考教師/,考場等信息。</p><p>  “評卷安排”用于對評卷專業(yè),評卷科目,評卷教師,評卷教師,評卷日期,時間等評卷信息進行管理。</p><p>  “考場情況記錄”用于考場情況進行管理,如考試班級,考試科目,應考人數(shù),實到人數(shù),違紀記錄情況等。</p><p>  “成績錄入”用于授課教師輸入學生的考試成績。</p><p>

32、  “補考成績錄入”用于授課教師輸入學生的補考考試成績。</p><p>  “補考通知單”用于教務處依據(jù)班級,個人,課程進行不及格統(tǒng)計,并打印出學生的補考通知單。</p><p>  “班級成績單”用于以班級為單位,打印該班級所開設課程的每個學生的成績,送教務處存檔用。</p><p>  2.1.8畢業(yè)管理:</p><p>  “畢業(yè)管

33、理”用于對學生畢業(yè)進行處理,同時對畢業(yè)信息,學位授予,證書授予及校友信息等進行管理,包含的功能模塊如下圖所示。</p><p>  “技能管理”用于對學生在校期間獲得的資格證書進行存檔,有利于提高學生的綜合素質(zhì)。</p><p>  “實習管理”用于記錄學生在校期間的實習情況。</p><p>  “論文管理”用于記錄學生的畢業(yè)論文情況,供日后查詢或借鑒。</

34、p><p>  “畢業(yè)審核”用于根據(jù)學生所在系所,專業(yè)的教學計劃,選課成績和學籍來審查來審查該生是否具備畢業(yè)資格。</p><p>  “畢業(yè)管理”用于記錄學生畢業(yè)信息,包括畢業(yè)證書號,工作去向等。</p><p>  2.1.9教材管理:</p><p>  “教材管理”用于對教材庫存,教材計劃,教材預訂,班級預收款,教材采購及教材銷售等工作進

35、行有效管理,包含的功能模塊如下圖所示。</p><p>  說明:說了一下需求分析,由于本人掌握基礎有限,另外還有本系統(tǒng)的關系復雜性,并沒有全部開發(fā),只開發(fā)了其中子部分,望老師包涵。</p><p>  下面把本系統(tǒng)的所有功能作成流程圖,讓讀者明確本系統(tǒng)的所有功能:</p><p>  2.2教務管理系統(tǒng)數(shù)據(jù)庫分析:</p><p>  建立

36、本系統(tǒng)所使用基礎數(shù)據(jù)的關鍵表,如下圖所示:</p><p>  用戶表(在數(shù)據(jù)庫中為youghu )</p><p>  班級信息表 (在數(shù)據(jù)庫中為j_bjxxb) </p><p>  學生信息表(在數(shù)據(jù)庫中為j_xsxxb)</p><p>  課程信息表(在數(shù)據(jù)庫中為j_kcxxb)</p><p> 

37、 課程表(在數(shù)據(jù)庫中為j_kcb)</p><p>  選課表(在數(shù)據(jù)庫中為j_xkb)</p><p>  成績表(在數(shù)據(jù)庫中為j_cjb)</p><p>  學籍代碼表(本數(shù)據(jù)庫叫作j_xjdmb)</p><p>  政治面貌表(在本數(shù)據(jù)庫中為j_zzmmb)</p><p>  民族代碼表(在本數(shù)據(jù)庫中為j_

38、mzdmb)</p><p>  籍貫代碼表(在本數(shù)據(jù)庫中為j_jgdmb)</p><p>  新建access數(shù)據(jù)庫步首先建立表本系統(tǒng)需要的表(如圖所示):</p><p>  第三章 程序開發(fā)</p><p>  3.1 登錄窗口布置</p><p>  3.1.1 登錄界面</p>

39、<p>  1.點擊開始|程序|Sybase|powerbuilder9.0打開系統(tǒng)主窗體,進入PB程序設計界面,點擊file→new命令,打開一個選項卡,建立本軟件的工作區(qū)間:</p><p>  2.點擊OK按鈕,設置 workspace工作區(qū)間的名字為:j_jwglxt(教務管理系統(tǒng)的縮寫),再點擊新建按鈕,在target選項卡,選中applicaton按鈕,點擊OK 并起名為j_jwglxt(與

40、上一個擴展名是不相同的)。</p><p>  3.此時已建立了工作區(qū)間和application ,下面建一個窗體并保存名為j_main即為系統(tǒng)的登錄界面,登錄界面如下圖所示。</p><p>  4.在數(shù)據(jù)庫連接時,進入登錄界面(五福娃_falsh),有時候需要很長的一段時間,所以在這里安排一個flash窗口,使軟件使用者在等待連接數(shù)據(jù)庫的枯燥的時間里制作一個動畫窗口,使使用者不在等不急

41、,心情快樂舒暢!</p><p><b> ?。ㄈ鐖D為登錄界面)</b></p><p> ?。?如圖:建立flash窗口)</p><p>  用戶在登錄窗口進入主菜單前的屬性值和進入“登錄”按鈕的clicked!事件代碼:</p><p>  J_main窗體的屬性設置:</p><p> 

42、 在“登錄”的clicked事件中加入以下代碼:</p><p>  單擊窗中下方 標簽,定入實例變量</p><p>  Boolean user_auth,login_name</p><p>  在單擊layout標簽輸入:</p><p>  Open(j_falsh) //打開falsh窗口</p><p>

43、;  // Profile EAS Demo DB V9</p><p>  SQLCA.DBMS = "ODBC"</p><p>  SQLCA.AutoCommit) = False</p><p>  SQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V9;UID=dba;PW

44、D=sql'"</p><p>  If sqlca.sqlcode<>0 then</p><p>  Messagebox(“提示”, “連接數(shù)據(jù)庫失?。≌堉匦逻B接或檢查是否正確!”)</p><p><b>  Return</b></p><p><b>  End if

45、</b></p><p><b>  Connect;</b></p><p>  String pass</p><p><b>  Int count</b></p><p>  Login_time=0</p><p>  Login_time =login

46、_time+1</p><p>  If login_time <3 then</p><p>  Select count(*) into :count from youhu </p><p>  Where yhmc=:sle_1.text;</p><p>  If count<=0 then</p><

47、;p>  Messagebox(“提示”, “用戶名不正確,請重新輸入!”)</p><p>  Sle_info.textcolor=red //使文本框變成紅色</p><p>  If login_time<3 then</p><p>  Messagebox(“提示”, “用戶名不正確,請重新輸入!”)</p><p>

48、;  Sle_1.text=“”</p><p>  Sle_2.text=“”</p><p>  Sle_1.setfocus( )</p><p><b>  Else</b></p><p>  Messagebox(“提示”,你無權使用本軟件,謝謝!)</p><p>  Close(p

49、arent)</p><p><b>  End if </b></p><p><b>  Else</b></p><p>  Select yhmm into:pass from youghu </p><p>  Where yhmc=:sle_1.text;</p><

50、p>  If sle_2.text =pass then</p><p>  Sle_info.textcolor=green</p><p>  User_auth=true</p><p>  Login_name=sle_1.text</p><p>  Open(j_main)</p><p>  Cl

51、ose(j_falsh)</p><p><b>  Else</b></p><p>  Messagebox(“提示”, “密碼不正確,請重試!”) </p><p>  Sle_info.textcolor=red</p><p>  If login_time<3 then</p><p

52、>  Sle_info.text=“密碼不正確,請重新輸入!”</p><p>  Close(j_falsh)</p><p><b>  End if </b></p><p><b>  End if </b></p><p><b>  End if </b>&l

53、t;/p><p><b>  End if </b></p><p>  在“退出”按鈕的clicked事件中加入代碼:</p><p>  Close(parent)</p><p>  3.1.2創(chuàng)建系統(tǒng)主菜單:</p><p>  選擇file|new菜單命令,的彈出的對話框中,選中PB o

54、bject選項卡,然后選擇menu對象,單擊OK按鈕,創(chuàng)建一個菜單名為j_menu,如下圖所示:</p><p>  3.2 基礎信息查詢</p><p>  3.2.1 系部信息查詢界面:</p><p>  1.依次打開其他代碼打開表單窗口(如下圖所示):</p><p>  在窗體w_xbxx中定義實例變量:</p>

55、<p>  Integer il_row,,il_rowcount //當前行和記錄總數(shù)</p><p>  String is_sql, //數(shù)據(jù)窗口的dw_1原始語法</p><p>  2.在窗體中打開open事件并加入以下代碼,將數(shù)據(jù)窗口連接到數(shù)據(jù)庫,并得到數(shù)據(jù)窗口dw_1的原始語法,為后面查詢作準備。</p><p>  (如圖為創(chuàng)建

56、系部信息查詢的數(shù)據(jù)窗口)</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫</p><p>  Is_sql=dw_1.getsqlselect //得到數(shù)據(jù)窗口原始語法</p><p>  3.在dw_1中clicked事件中加入代碼(下面的代碼的作用是控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行):</p><

57、;p>  if row=0 then return</p><p>  if dw_1.isselected(row)=false then </p><p>  dw_1.selectrow(row,true)</p><p><b>  else</b></p><p>  dw_1.selectrow(ro

58、w,false)</p><p><b>  end if</b></p><p><b>  return 1</b></p><p>  在查詢命令按鈕單擊(clicked)事件加入代碼:</p><p>  String ls_select,ls_xbbh</p><p&g

59、t;  Integer ls_xbmc</p><p>  Ls_xbbh=trim(sle_1.text)</p><p>  Ls_xbmc=trim(sle_2.text)</p><p>  Ls_select =””</p><p>  If not isnull(ls_xbbh) and sl_xbbh <>”” t

60、hen </p><p>  Ls_xbbh=”%”+sl_xbbh+”%”</p><p>  Ls_select=ls_select+”系部編號 like’”+ls_xbbh+”’”</p><p><b>  End if</b></p><p>  If not isnull(sl_xhmc) and ls_xb

61、mc<>”” then </p><p>  Ls_xbmc=”%”+ls_xbmc+”%”</p><p>  Ls_select=ls_select+”系部名稱 like’”+ls_xbmc+”’”</p><p><b>  End if</b></p><p>  If ls_select <&

62、gt; “” then </p><p>  Ls_select=is_sql+”where” +ls_select </p><p><b>  Else</b></p><p>  Ls_select=is_sql</p><p><b>  End if </b></p><

63、;p>  Dw_1.setsqlselect(ls_select)</p><p>  Il_row=dw_1.retrieve()</p><p>  3.2.2.班級信息查詢:</p><p><b>  如下圖所示圖片:</b></p><p>  在選擇file|new菜單命令,建立一個新的窗體,保存名為j

64、_bjxx,在窗體的open事件中加入以下代碼:</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫</p><p>  Is_sql=dw_1.getsqlselect //得到數(shù)據(jù)窗口原始語法</p><p>  2 在dw_1中clicked事件中加入代碼:</p><p>  if row=0

65、then return</p><p>  if dw_1.isselected(row)=false then </p><p>  dw_1.selectrow(row,true)</p><p><b>  else</b></p><p>  dw_1.selectrow(row,false)</p>

66、;<p><b>  end if</b></p><p>  return 1 //控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行</p><p>  在窗體中的查詢的clicked中加入代碼:</p><p>  String ls_select,ls_bjbh,ls_nj,ls_njmc</p><p> 

67、 Ls_bjbh=trim(sle_1.text)</p><p>  Ls_nj=trim(sle_2.text)</p><p>  Ls_njmc=trim(sle_3.text)</p><p>  Ls_select=’’”</p><p>  If not isnull(ls_bjbh) and ls_bjbh<>””

68、 then </p><p>  Ls_bjbh=”%”+ls_bjbh+”%”</p><p>  Ls_select=ls_select+”班級編號 like’”+ls_bjbj+”’”</p><p><b>  End if </b></p><p>  If not isnull(ls_nj) and ls_n

69、j<>”” then </p><p>  Ls_nj=”%”+ls_nj+”%”</p><p>  If ls_select =”” then </p><p>  Ls_select=”年級 like’”+ls_nj+”’”</p><p><b>  Else</b></p><p

70、>  Ls_select=ls_select+”and 年級 like’”+ls_nj”’”</p><p><b>  End if</b></p><p><b>  End if </b></p><p>  If not isnull(ls_njmc) and ls_njmc<>”” then

71、</p><p>  Ls_njmc=”%”+ls_njmc+”%”</p><p>  If ls_select=”” then</p><p>  ls_select=”班級名稱 like’”+ls_njmc+”’”</p><p><b>  else</b></p><p>  ls_se

72、lect=ls_select+”and 班級名稱 like’”+ls_njmc+”’”</p><p><b>  end if </b></p><p><b>  end if </b></p><p>  // 獲得SQL的原始語法</p><p>  If ls_select <>

73、;”” then</p><p>  Ls_select=is_sql+”where”+ls_select</p><p><b>  Else</b></p><p>  Ls_select=is_sql</p><p><b>  End if </b></p><p>

74、  Dw_1.setsqlselect(ls_select) //重新連接數(shù)據(jù)庫 </p><p>  il_rowcount =dw_1.retrieve( ) //重新檢索數(shù)據(jù)</p><p>  3.2.3.學生信息查詢:</p><p>  1.新建一個窗體保存名為j_xsxx,其如圖所示:</p><p>  2.在窗體的

75、open事件中加入以下代碼:</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫</p><p>  Is_sql=dw_1.getsqlselect //得到數(shù)據(jù)窗口原始語法</p><p>  3.在dw_1中clicked事件中加入代碼:</p><p>  if row=0 then retur

76、n</p><p>  if dw_1.isselected(row)=false then </p><p>  dw_1.selectrow(row,true)</p><p><b>  else</b></p><p>  dw_1.selectrow(row,false)</p><p&g

77、t;<b>  end if</b></p><p>  return 1 //控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行</p><p>  4.在窗體中的查詢的clicked中加入代碼:</p><p>  String ls_select,ls_xh,ls_xm</p><p>  Integer li_nj<

78、/p><p>  Ls_xh=trim(sle_1.text)</p><p>  Ls_nj=integer(trim(sle_2.text))</p><p>  Ls_xm=trim(sle_3.text)</p><p>  Ls_select=””</p><p>  If not isnull(ls_xh )

79、and ls_xh <>”” then</p><p>  Ls_xh =”%”+ls_xh+”%”</p><p>  Ls_select=ls_select +”學號 like’”+ls_xh+”’”</p><p><b>  End if </b></p><p>  If not isnull(ls

80、_xm) and ls_xm<>”” then</p><p>  Ls_xm=”%”+ls_xm+”%”</p><p>  If ls_select =”” then</p><p>  Ls_select=”姓名 like’”+ls_xm+”’”</p><p><b>  Else</b></p

81、><p>  Ls_select=ls_select+”and 姓名 like’”+ls_xm+”’” </p><p><b>  End if </b></p><p><b>  End if </b></p><p>  If not isnull(li_nj) and li_nj<>

82、;0 then </p><p>  If ls_select=”” then</p><p>  Ls_select=”年級=”+string(li_nj) </p><p><b>  Else</b></p><p>  Ls_select=ls_select+”and 年級=”+string(li_nj)&

83、lt;/p><p><b>  End if </b></p><p><b>  End if </b></p><p>  If ls_select=”” then</p><p>  Ls_select=is_sql+”where”+ls_select</p><p>&l

84、t;b>  Else</b></p><p>  Ls_select=is_sql</p><p><b>  End if </b></p><p>  Dw_1.setsqlselec(ls_select)</p><p>  Il_rowcount=dw_1.retrieve()</p>

85、;<p>  3.2.4.院校職工查詢和課程信息查詢:</p><p>  1.新建一個窗體保存名為j_yxzg,其如圖所示:</p><p>  2.在窗體的open事件中加入以下代碼:</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫</p><p>  Is_sql=dw_1.get

86、sqlselect //得到數(shù)據(jù)窗口原始語法</p><p>  3. 在dw_1中clicked事件中加入代碼:</p><p>  if row=0 then return</p><p>  if dw_1.isselected(row)=false then </p><p>  dw_1.selectrow(row,true)&

87、lt;/p><p><b>  else</b></p><p>  dw_1.selectrow(row,false)</p><p><b>  end if</b></p><p>  return 1 //控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行</p><p>  4.

88、在窗體中的查詢的數(shù)據(jù)窗口的open事件中加入代碼:</p><p>  String ls_select,ls_kcmc,ls_pym</p><p>  Integer li_kcbh</p><p>  Li_kcbh=integer(trim(sle_1.text))</p><p>  Ls_kcmc=trim(sle_2.text)

89、</p><p>  Ls_pym=trim(sel_3.test)</p><p>  Ls_select=””</p><p>  If not isnull(li_kcbh) and libh<>0 then</p><p>  Ls_select=ls_select+”課程=”+string(li_kcbh)</p&

90、gt;<p><b>  End if </b></p><p>  If not isnull(ls_kcmc) and ls_kcmc<>”” then</p><p>  Ls_kcmc=”%”+ls_kcmc +”%”</p><p>  If ls_select=”” then </p><

91、;p>  Ls_select=”課程名稱 like’”+ls_kcmc+”’”</p><p><b>  Else </b></p><p>  Ls_select=ls_select+”and 課程名稱 like’”+ls_kcmc+”’”</p><p><b>  End if </b></p>

92、<p><b>  End if </b></p><p>  Dw1.setsqlselect(ls_select)</p><p>  Il_rowcount=dw_1.retrieve( ) </p><p><b>  3.3 教務管理</b></p><p>  3.3.1

93、學生選課:</p><p><b>  如下圖所示:</b></p><p>  把sle_xm,sle_nj,r displayonly屬性改為true ,由于實例變量在前面的窗口已經(jīng)定義。在后面的窗口中可以直接引用。但根據(jù)后面的需要,也可以定義自己的變量。 String is_sqlchild,is_status</p><p>  學生

94、選課就是學生根據(jù)學生自己的需要,選擇學習一些學習的課程,程序中需要控制學生后面的選擇的課程時間不能跟前面選課的時間有時間沖突。</p><p>  在文框 sle_xh 輸入內(nèi)容顯示學生的姓名,年級,并得到學生的選課情況。</p><p>  String ls_bh,ls_xm,ls_xjbh</p><p>  Ls_xh=trim(sle_xh.text)&l

95、t;/p><p>  Select xsxx.xm,xsxx.nj,xsxx.xjbh into :ls_xm,:ls_nj,:ls_xjbh from xsxx </p><p>  Where xh=:ls_xh;</p><p>  If ls_xjbh<>”1” then //不是在籍學生,不能選擇</p><p>  M

96、essagebox(“提示”,”不是在籍的學生!”)</p><p>  Sle_xh.text=””</p><p><b>  Return</b></p><p><b>  End if </b></p><p>  Sle_xm.text=ls_xm</p><p>

97、;  Sle_nj.text=string(li_nj)</p><p>  Dw_1.retrieve(ls_xh)</p><p>  4. j_xsxk的打開事件(open):</p><p>  Dw_1.settransobject(sqlca)</p><p>  Dw_2.settransobject(sqlca)</p

98、><p>  Is_sql=dw_1.getsqlselect</p><p>  Is_sqlchild=dw_2.getsqlselect()</p><p>  在窗口自定事件 ue_query ,在程序中查詢課程信息的很多條件,有課程拼音、課程名稱、課程編號、課程序號,無論在哪個條件文本框中輸入條件后,單擊回車鍵系統(tǒng)都會自動查詢課程信息。如果什么都有確認,則查詢

99、所有的課程信息,因此將在自定義事件中加入以下代碼,用于查詢數(shù)據(jù)窗口dw_2中的課程信息。</p><p>  String ls_kcpy,ls_kcnc,ls_kcnc,ls_kcbh,ls_kcxh</p><p>  String ls_select</p><p>  Ls_kcpy=trim(sle_kcpy.text)</p><p&

100、gt;  Ls_kcmd=trim(sle_kcmc.text)</p><p>  Ls_kcbh=trim(sle_kcbh.text)</p><p>  Ls_kcxh=sle_kcxh.text</p><p>  Ls_select=””</p><p>  If not isnull(ls_kcpy) and ls_kcpy&l

101、t;>”” then</p><p>  Ls_kcpy=”%”+ls_kcpy+”%”</p><p>  Ls_select=ls_select+”kcxx.pym like’”+ls_kcpy+”’”</p><p><b>  End if </b></p><p>  If not isnull(ls_k

102、cmc) and ls_kcmc<>”” then</p><p>  Ls_kcmc=”%”+ls_kcmc+”%”</p><p>  If ls_select=”” then</p><p>  Ls_select=ls_select+”kcxx.kcmc like’”+ls_kcmc+”’”</p><p><b&g

103、t;  Else </b></p><p>  ls_select=ls_select+”kcxx.kcmc like’”+ls_kcmc+”’”</p><p><b>  end if </b></p><p><b>  end if </b></p><p>  if not i

104、snull(ls_kcbh) and ls_kcbh <>”” then</p><p>  ls_kcbh=”%”+ls_kcbh+”%”</p><p>  if ls_select=”” then</p><p>  ls_select=ls_select+”kcxx.kcbh like’”+ls_kcbh+”’” </p><

105、p><b>  else</b></p><p>  ls_select=ls_select+” and kcxx.kcbh like’”+ls_kcbh+”’”</p><p><b>  end if </b></p><p><b>  end if </b></p><

106、;p>  if not isunll(ls_kcxh) and ls_kcxh<>”” then</p><p>  ls_kcxh=”%”+ls_kcxh+”%”</p><p>  if ls_select =”” then </p><p>  ls_select=ls_select+”kcb.kxh like’”+ls_kcxh+”’”&l

107、t;/p><p><b>  else</b></p><p>  ls_select=ls_select+” and kcb.kxh like’”+ls_kcxh+”’”</p><p><b>  end if </b></p><p><b>  end if </b><

108、;/p><p>  if ls_select=”” then</p><p>  dw_2.retrieve()</p><p><b>  else</b></p><p>  ls_select=is_sqlchild+’and ’+ls_select</p><p>  dw_2.setsqls

109、elect(ls_select)</p><p>  dw_2.retrieve()</p><p><b>  enf if </b></p><p>  6. 在文本框自定義事件,enter_1選擇PB自身定義事件 pbm_dwnkey,該事件是當焦點在文本框時,單擊回車鍵,就響應此事件。調(diào)用窗口自定義事件,enter_1來查詢數(shù)據(jù)。如下

110、圖所示:</p><p>  If key=keyenter! Then </p><p>  Parent.trigger(‘ue_query’)</p><p><b>  End if </b></p><p>  在按鈕cb_select 的clicked事件加入以下代碼,調(diào)用窗口的自定義事件ue_query來

111、查詢數(shù)據(jù)窗口dw_2中課程信息的數(shù)據(jù)。</p><p>  Parent.trigger(‘ue_query’)</p><p>  8.在查詢的clicked事件中:加入代碼,根據(jù)數(shù)據(jù)窗口dw_2選中的行得到數(shù)據(jù)。如果選中的課程的上課時間跟已經(jīng)選修的課程時間有沖突。也提示不能修改該課程。</p><p>  Integer il_row,li_insertrow,

112、li_count</p><p>  String ls_kxh,ls_kcmc,ls_js,ls_kkxb</p><p>  Integer li_sjt,li_sjj,li_kcbh,i</p><p>  If li_row<1 then return</p><p>  Ls_xh=trim(sle_xh.text)<

113、/p><p>  If isnull(ls_xh) or ls_xh=”” then</p><p>  Messagebox(“提示”,”請先輸入學號!”)</p><p><b>  Return</b></p><p><b>  End if </b></p><p> 

114、 Li_kcbh=dw_2.getitemnumber(il_row,”kcbh”) //課程編號</p><p>  Ls_kxh=dw_2.getitemnumber(il_row,”kxh”) // 課序號</p><p>  // 判斷是否已經(jīng)選擇的課程</p><p>  Select count(*) into :li_count form x

115、kb,kcxxb,kcb </p><p>  where(kcb.kcbh=kcb.kcbh) and </p><p>  ( xkb.kxh=kcb.kxh) and </p><p>  (xkb.xh=:ls_xh) and (kcb.kcbh=:li_kcbh);</p><p>  If li_count >0 t

116、hen </p><p>  Messagebox(“ 提示”,”已經(jīng)選擇該課程!”)</p><p><b>  Return</b></p><p><b>  End if </b></p><p>  Lds_kxh=create datastore</p><p>

117、  Lds_kxh.dataobject=’d_kxh.store’</p><p>  Lds.kxh.settransobject(sqlca)</p><p>  Lds.kxh.retrieve(ls_kxh)</p><p>  For i=1 lds_kxh rowcount()</p><p>  Li_sjt=lds.kxh

118、.getitemnumber(I,”sksjt”) //上課時間天</p><p>  Li_sjj=lds_kxh.getitemnumber(I,”sksjj”) //上課時間節(jié)</p><p>  Select count(*) into:li_count from kcb,xkb</p><p>  Where kcb.kxh=xkb.kxh and

119、 kcb.sksjt=:li_sjt</p><p>  And kcb.hksjj =:li_sjj and xkb.xh=:ls_xh;</p><p>  If li_count>0 then </p><p>  Messagebox(“提示”,”選擇的時間以前時間重疊!”)</p><p>  Destroy.lao.kx

120、h</p><p><b>  Return</b></p><p><b>  End if</b></p><p><b>  next </b></p><p>  destroy lds_kxh; //破壞數(shù)據(jù)存儲</p><p>  //

121、得到數(shù)據(jù)窗口中選擇行,并保存到需要的地方。</p><p>  Ls_kxh=dw_2.getitemstring(li_row,”kxh”)</p><p>  Ls_kcmc=dw_2.getitemstring(li_row,”kcmc”)</p><p>  Ls_js=dw_2.getitemstring(li_row,”js”)</p>&

122、lt;p>  Li_kcbh=dw_2.getitemstring(li_row,”kcbh”)</p><p>  Li_kkxb=dw_2.getitemstring(li_row,”kkxb”)</p><p>  // 定義游標取得課程表信息</p><p>  Dwclare ld_ke cursor for </p><p>

123、;  Select sksjt,sksjj,sksj from kcb where kxh=ls_kxh;</p><p>  Open(ld_ke); </p><p>  Do while ld_ke into :li_sjt,:li_sjj,:ls_dd;</p><p>  Fetch ld_ke into:li_sjt,:ls_dd</p>

溫馨提示

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

評論

0/150

提交評論