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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

3、;  2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)及過(guò)程 ------------------------------------------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 基礎(chǔ)信息查詢-----------------------------------------------13</p><p> 

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

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

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

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

9、  3.5.2 班級(jí)信息維護(hù)----------------------------------------34</p><p>  3.5.3 學(xué)生信息維護(hù)----------------------------------------34</p><p>  3.5.4 課程信息維護(hù)----------------------------------------34</p&

10、gt;<p>  3.5.5 院校職工維護(hù)----------------------------------------34</p><p>  3.5.6 用戶登錄維護(hù)----------------------------------------34</p><p>  參考文獻(xiàn)--------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

29、<p>  “注冊(cè)收費(fèi)”用于記錄學(xué)生新學(xué)期的注冊(cè)情況,如果未注冊(cè)將記錄學(xué)生的未注冊(cè)原因及未注冊(cè)的去向。“收費(fèi)管理”用于記錄學(xué)生開學(xué)初的收費(fèi)情況,每個(gè)學(xué)生的收費(fèi)標(biāo)準(zhǔn)來(lái)自學(xué)生學(xué)籍信息中的收費(fèi)類別。</p><p>  2.1.6排課選課管理:</p><p>  “排課管理”用于根據(jù)教學(xué)計(jì)劃、教師資源等,制訂每學(xué)期的課程表。</p><p>  2.1.7

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

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

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

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

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

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

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

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

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

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

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

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

42、 在“登錄”的clicked事件中加入以下代碼:</p><p>  單擊窗中下方 標(biāo)簽,定入實(shí)例變量</p><p>  Boolean user_auth,login_name</p><p>  在單擊layout標(biāo)簽輸入:</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ù)庫(kù)失敗!請(qǐng)重新連接或檢查是否正確!”)</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(“提示”, “用戶名不正確,請(qǐng)重新輸入!”)</p><p>  Sle_info.textcolor=red //使文本框變成紅色</p><p>  If login_time<3 then</p><p>  Messagebox(“提示”, “用戶名不正確,請(qǐng)重新輸入!”)</p><p>

48、;  Sle_1.text=“”</p><p>  Sle_2.text=“”</p><p>  Sle_1.setfocus( )</p><p><b>  Else</b></p><p>  Messagebox(“提示”,你無(wú)權(quán)使用本軟件,謝謝!)</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(“提示”, “密碼不正確,請(qǐng)重試!”) </p><p>  Sle_info.textcolor=red</p><p>  If login_time<3 then</p><p

52、>  Sle_info.text=“密碼不正確,請(qǐng)重新輸入!”</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菜單命令,的彈出的對(duì)話框中,選中PB o

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

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

56、系部信息查詢的數(shù)據(jù)窗口)</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫(kù)</p><p>  Is_sql=dw_1.getsqlselect //得到數(shù)據(jù)窗口原始語(yǔ)法</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+”系部編號(hào) 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.班級(jí)信息查詢:</p><p><b>  如下圖所示圖片:</b></p><p>  在選擇file|new菜單命令,建立一個(gè)新的窗體,保存名為j

64、_bjxx,在窗體的open事件中加入以下代碼:</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫(kù)</p><p>  Is_sql=dw_1.getsqlselect //得到數(shù)據(jù)窗口原始語(yǔ)法</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+”班級(jí)編號(hào) 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=”年級(jí) like’”+ls_nj+”’”</p><p><b>  Else</b></p><p

70、>  Ls_select=ls_select+”and 年級(jí) 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=”班級(jí)名稱 like’”+ls_njmc+”’”</p><p><b>  else</b></p><p>  ls_se

72、lect=ls_select+”and 班級(jí)名稱 like’”+ls_njmc+”’”</p><p><b>  end if </b></p><p><b>  end if </b></p><p>  // 獲得SQL的原始語(yǔ)法</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ù)庫(kù) </p><p>  il_rowcount =dw_1.retrieve( ) //重新檢索數(shù)據(jù)</p><p>  3.2.3.學(xué)生信息查詢:</p><p>  1.新建一個(gè)窗體保存名為j_xsxx,其如圖所示:</p><p>  2.在窗體的

75、open事件中加入以下代碼:</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫(kù)</p><p>  Is_sql=dw_1.getsqlselect //得到數(shù)據(jù)窗口原始語(yǔ)法</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 +”學(xué)號(hào) 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=”年級(jí)=”+string(li_nj) </p><p><b>  Else</b></p><p>  Ls_select=ls_select+”and 年級(jí)=”+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.新建一個(gè)窗體保存名為j_yxzg,其如圖所示:</p><p>  2.在窗體的open事件中加入以下代碼:</p><p>  Dw_1.settransobject(sqlca) //連接數(shù)據(jù)庫(kù)</p><p>  Is_sql=dw_1.get

86、sqlselect //得到數(shù)據(jù)窗口原始語(yǔ)法</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 教務(wù)管理</b></p><p>  3.3.1

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

94、選課就是學(xué)生根據(jù)學(xué)生自己的需要,選擇學(xué)習(xí)一些學(xué)習(xí)的課程,程序中需要控制學(xué)生后面的選擇的課程時(shí)間不能跟前面選課的時(shí)間有時(shí)間沖突。</p><p>  在文框 sle_xh 輸入內(nèi)容顯示學(xué)生的姓名,年級(jí),并得到學(xué)生的選課情況。</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 //不是在籍學(xué)生,不能選擇</p><p>  M

96、essagebox(“提示”,”不是在籍的學(xué)生!”)</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 ,在程序中查詢課程信息的很多條件,有課程拼音、課程名稱、課程編號(hào)、課程序號(hào),無(wú)論在哪個(gè)條件文本框中輸入條件后,單擊回車鍵系統(tǒng)都會(huì)自動(dòng)查詢課程信息。如果什么都有確認(rèn),則查詢

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,該事件是當(dāng)焦點(diǎn)在文本框時(shí),單擊回車鍵,就響應(yīng)此事件。調(diào)用窗口自定義事件,enter_1來(lái)查詢數(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來(lái)

111、查詢數(shù)據(jù)窗口dw_2中課程信息的數(shù)據(jù)。</p><p>  Parent.trigger(‘ue_query’)</p><p>  8.在查詢的clicked事件中:加入代碼,根據(jù)數(shù)據(jù)窗口dw_2選中的行得到數(shù)據(jù)。如果選中的課程的上課時(shí)間跟已經(jīng)選修的課程時(shí)間有沖突。也提示不能修改該課程。</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(“提示”,”請(qǐng)先輸入學(xué)號(hào)!”)</p><p><b>  Return</b></p><p><b>  End if </b></p><p> 

114、 Li_kcbh=dw_2.getitemnumber(il_row,”kcbh”) //課程編號(hào)</p><p>  Ls_kxh=dw_2.getitemnumber(il_row,”kxh”) // 課序號(hào)</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”) //上課時(shí)間天</p><p>  Li_sjj=lds_kxh.getitemnumber(I,”sksjj”) //上課時(shí)間節(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(“提示”,”選擇的時(shí)間以前時(shí)間重疊!”)</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ù)存儲(chǔ)</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>  // 定義游標(biāo)取得課程表信息</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. 本站所有資源如無(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論