2017畢業(yè)論文-教務(wù)管理系統(tǒng).doc
《2017畢業(yè)論文-教務(wù)管理系統(tǒng).doc》由會員分享,可在線閱讀,更多相關(guān)《2017畢業(yè)論文-教務(wù)管理系統(tǒng).doc(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、吉林農(nóng)業(yè)工程職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(論文)摘 要在日新月異的今天社會經(jīng)濟發(fā)展高速增長,計算機已經(jīng)成為人們不可分割的一部分。為了加強計算機的智能化,人們開發(fā)了各種管理系統(tǒng)來解決現(xiàn)實生活的尖端問題。教務(wù)管理系統(tǒng)就是管理系統(tǒng)很重要的一部分。教務(wù)管理系統(tǒng)的需要是面向所有的教職工和學(xué)生,用戶數(shù)量大,地點分布廣。在這里我們使用的是C/S模式系統(tǒng)。 關(guān)鍵詞:powerbuilder程序設(shè)計 Access數(shù)據(jù)庫 教務(wù)管理系統(tǒng)。目 錄第一章 前言1第二章 系統(tǒng)流程及庫文件32.1 數(shù)據(jù)庫需求分析32.2 數(shù)據(jù)庫設(shè)計及過程 -7第三章 程序開發(fā)103.1 登錄布置-10 3.1.1 登錄界面-10 3.1.2 創(chuàng)建
2、系統(tǒng)系統(tǒng)主菜單-133.2 基礎(chǔ)信息查詢-133.2.1 系部信息查詢界面-133.2.2 班級信息查詢界面-163.2.3 學(xué)生信息查詢界面-173.2.4 院校職工信息和課程信息查詢界面-193.3 教務(wù)管理20 3.3.1 學(xué)生選課-20 3.3.2 課表查詢-25 3.3.3 成績輸入-263.4 報表統(tǒng)計29 3.4.1 成績輸出-29 3.4.2 打印成績單-313.5 系統(tǒng)維護31 3.5.1 系部信息維護-31 3.5.2 班級信息維護-34 3.5.3 學(xué)生信息維護-34 3.5.4 課程信息維護-34 3.5.5 院校職工維護-34 3.5.6 用戶登錄維護-34參考文獻(xiàn)-
3、38致謝-39第一章 前 言信息管理系統(tǒng)(MIS)是集計算機技術(shù)、網(wǎng)絡(luò)通信技術(shù)為一體的信息系統(tǒng)工程,它能夠使企業(yè)運行的數(shù)據(jù)更加準(zhǔn)確、及時、全面、詳實,同時對各種信息進(jìn)一步的加工,使企業(yè)領(lǐng)導(dǎo)層對生產(chǎn)、經(jīng)營的決策依據(jù)更充分,更具有合理性科學(xué)性,并創(chuàng)造出更多的發(fā)展機會;另外也進(jìn)一步加強企業(yè)的科學(xué)化、合理化、制度化、規(guī)范化管理,為企業(yè)的管理水平跨上新臺階,為企業(yè)持續(xù)、健康、穩(wěn)定的發(fā)展打下基礎(chǔ)。MIS系統(tǒng)開發(fā)過程不僅僅是一個編寫應(yīng)用程序的過程,而是以軟件工程的思想為指導(dǎo),從可行性研究開始,經(jīng)過系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施等主要階段而進(jìn)行規(guī)范的開發(fā)過程。目前國內(nèi)使用和發(fā)展的MIS平臺模式大體上分為兩種:客
4、戶機/服務(wù)器(Client/Server,簡稱C/S)模式和瀏覽器/服務(wù)器(Browser/Server,簡稱C/S)模式。MIS系統(tǒng)不僅僅使用在企業(yè)中,它可以應(yīng)用的方面很廣,各行各業(yè)都可以應(yīng)用:金融、保險、農(nóng)業(yè)、工業(yè)等等。只要是有數(shù)據(jù)采集整理紀(jì)錄的方面,都可以應(yīng)用。學(xué)校作為一個獨立的機構(gòu)同樣也不例外。而且學(xué)校的各種情況都比較復(fù)雜,各個機構(gòu)都各自獨立,又相互聯(lián)系,這就需要一個比較復(fù)雜的MIS系統(tǒng)。學(xué)校的MIS系統(tǒng)一般由以下管理部分組成:學(xué)生信息管理,教學(xué)管理,教務(wù)處管理,財務(wù)管理,物資管理,后勤管理等。學(xué)校的各個系統(tǒng)又分為不同的管理人員,不同的管理人員所看到的以及所操作管理的部分又不同,這就需
5、要給不同的操作者提供不同的操作管理權(quán)限。不同身份的用戶所需要的資料也不同,這需要給不同的用戶提供不同的操作界面,進(jìn)行不同的操作。而且不同身份的客戶所關(guān)心的問題也不同,比如學(xué)校的使用者大體分學(xué)生、教師、教務(wù)處、這就需要在做MIS系統(tǒng)開發(fā)之前一定要做好前期的需求分析,中期的系統(tǒng)設(shè)計、程序開發(fā),而且也要注意后期的系統(tǒng)維護。開發(fā)工具介紹:PowerBuilder提供了對目前流行的大多數(shù)關(guān)系數(shù)據(jù)庫管理系統(tǒng)的支持,由于在PowerBuilder的應(yīng)用程序中對數(shù)據(jù)庫訪問的部分一般采用國際化標(biāo)準(zhǔn)數(shù)據(jù)庫查詢語言SQL,使得用PowerBuilder開發(fā)的應(yīng)用程序可以不做修改或者只做少量的修改就可以在不同的后臺數(shù)
6、據(jù)庫管理系統(tǒng)上使用。也就是說用PowerBuilder開發(fā)的應(yīng)用程序是獨立于服務(wù)器上的數(shù)據(jù)庫管理系統(tǒng)的。和大多數(shù)的WINDOWS應(yīng)用程序一樣,PowerBuilder也是事件驅(qū)動工作方式。在這種工作方式中,程序的運行沒有固定的流程,程序中的代碼也是為各種可能發(fā)生的事件編寫的,當(dāng)程序開始運行之后,它就可以接受來自系統(tǒng),用戶或者其它應(yīng)用程序觸發(fā)的事件,然后執(zhí)行相應(yīng)的事件代碼。事件驅(qū)動的工作方式與面向?qū)ο蠹夹g(shù)是緊密相關(guān)的,在PowerBuilder應(yīng)用程序中,接受發(fā)生的事件的往往就是程序界面中的各種可視化對象。PowerBuilder是一種面向?qū)ο蟮拈_發(fā)工具,各種WINDOWS應(yīng)用程序中常見的窗口、
7、菜單、控件等在PowerBuilder中都是一個個的對象。在PowerBuilder中我們還可以創(chuàng)建自己的用戶對象。特別要指出的是PowerBuilder提供了對面向?qū)ο蠓椒ㄖ械母鞣N技術(shù)的全面支持,我們可以利用面向?qū)ο蠓椒ㄖ械膶ο蟮姆庋b性、繼承性、多態(tài)性等特點使得我們開發(fā)的應(yīng)用程序具有極大的可重用性和可擴展性,而這一點正是軟件工程中對應(yīng)用程序所提出的重要目標(biāo)。在當(dāng)前,由于網(wǎng)絡(luò)技術(shù)的發(fā)展,許多種不同的操作系統(tǒng)平臺在INTERNET網(wǎng)上同時被使用,這對開發(fā)的應(yīng)用程序的跨平臺性提出了更高的要求,而PowerBuilder就提供了良好的跨平臺性,比如在PowerBuilder中,利用WINDOWS平臺
8、開發(fā)的各種對象可以方便地應(yīng)用到UNIX平臺中,因為PowerBuilder支持對象的跨平臺性。這樣使得把應(yīng)用程序從一個平臺移到另一個平臺變得并不復(fù)雜。為了給用戶提供各個方面的支持,PowerBuilder具有自己的編程語言POWERSCRIPT,這個語言除了提供基本的流程控制語句,還提供了幾百個函數(shù)來操縱各種對象和提供諸如DDE,OLE等方面的支持。此外我們還可以定義自己的函數(shù),處理特定的事件。學(xué)習(xí)PowerBuilder時相當(dāng)一部分的時間就是用來了解和熟悉PowerBuilder提供的各種函數(shù)。PowerBuilder一個很大的特點就是提出了數(shù)據(jù)窗口對象的概念。數(shù)據(jù)窗口對象也是PowerBu
9、ilder中的一種對象類型,與其它對象不同的是數(shù)據(jù)窗口對象是專門為了訪問后臺的數(shù)據(jù)庫服務(wù)的,在數(shù)據(jù)窗口對象中我們定義了數(shù)據(jù)的來源和數(shù)據(jù)的顯示風(fēng)格,這樣在應(yīng)用程序中我們就可以把精力完全放在程序的運行流程控制上,而不用關(guān)心具體數(shù)據(jù)的來源,因為我們在數(shù)據(jù)窗口對象中已經(jīng)定義好了數(shù)據(jù)的來源。如果需要使用數(shù)據(jù)庫中不同的數(shù)據(jù)也只要對數(shù)據(jù)窗口對象進(jìn)行修改就可以了。特別要指出的是PowerBuilder在數(shù)據(jù)窗口對象中提供了豐富的數(shù)據(jù)顯示方式,可以滿足各種不同的需要。 在PowerBuilder較新的版本中提供了基礎(chǔ)類庫PFC,它為應(yīng)用程序的開發(fā)提供了許多可重用的預(yù)定義類和對象,利用基本類庫PFC可以快速開發(fā)出
10、高質(zhì)量重用性好的應(yīng)用程序。真正發(fā)揮面向?qū)ο缶幊痰木薮笸?。最后要指出的是PowerBuilder有三個不同的版本,分別為DESKTOP型,PROFESSIONAL型,和ENTERPRISE型,DESKTOP型是為個人使用的桌面型應(yīng)用程序,在這里可以利用PowerBuilder內(nèi)置的數(shù)據(jù)庫管理系統(tǒng)SYBASE SQL ANYWHERE來創(chuàng)建和使用本地數(shù)據(jù)庫,為個人的應(yīng)用服務(wù);PROFESSIONAL型的PowerBuilder最重要的一點就是提供了對MICROSOFT ODBC(數(shù)據(jù)庫標(biāo)準(zhǔn)連接接口)的支持,在PROFESSIONAL版本中我們就可以使用PowerBuilder的繼承,多態(tài)等絕大多
11、數(shù)特性;在ENTERPRISE版本中最重要的一點就是提供了對開發(fā)大型的數(shù)據(jù)庫應(yīng)用程序的全面的支持,提供了開發(fā)大型應(yīng)用程序的許多輔助的工具,比如C+ CLASS BUILDER等第二章 系統(tǒng)流程及庫文件2.1教務(wù)管理系統(tǒng)需求分析:將通用教務(wù)管理系統(tǒng)所必備的功能歸納如下圖所示,其中每個功能都由若干相關(guān)聯(lián)的子功能模塊組成,除此之外,系統(tǒng)還應(yīng)包括信息系統(tǒng)必須具備的通用功能如:權(quán)限設(shè)置、數(shù)據(jù)備份與恢復(fù)。教務(wù)管理系統(tǒng)基礎(chǔ)數(shù)據(jù)管理教學(xué)計劃管理課程管理學(xué)籍管理教師管理注冊收費管理排課選課管理考分管理畢業(yè)管理教材管理系統(tǒng)管理2.1.1系統(tǒng)數(shù)據(jù)流程: 如下圖所示:2.1.2 基礎(chǔ)數(shù)據(jù)管理“基礎(chǔ)數(shù)據(jù)管理”用于維護整
12、個教務(wù)管理系統(tǒng)正常運行所需的基礎(chǔ)數(shù)據(jù)集,以保證教系統(tǒng)有一個統(tǒng)一的標(biāo)準(zhǔn)的基礎(chǔ)數(shù)據(jù)集,便于數(shù)據(jù)的共享使用,內(nèi)容包括入學(xué)年份、學(xué)年學(xué)期、院系數(shù)據(jù)、專業(yè)設(shè)計、教室情況等。如下圖所示:基礎(chǔ)數(shù)據(jù)管理基本信息專業(yè)代碼學(xué)期代碼學(xué)年代碼科屬部門代碼班級代碼教室代碼學(xué)歷代碼職稱代碼教學(xué)計劃名稱管理教師代碼管理其他基礎(chǔ)信息管理2.1.3 教學(xué)計劃管理:“教學(xué)計劃管理”用于維護學(xué)校中各系各專業(yè)的課程、課組計劃安排信息,作為選課和畢業(yè)審查的標(biāo)準(zhǔn),包括的功能有課程計劃登記、課和計劃審批、選課情況查詢、選課信息審批等。2.1.4 課程管理:“課程管理”用于學(xué)校所有開設(shè)課程的情況,包括課程編號、課程名稱、上課學(xué)時、開課系、上
13、課教師等相關(guān)信息,功能包括課程的增加、刪除、查詢、統(tǒng)計等。學(xué)籍管理:“學(xué)藉管理”主要包括了高校學(xué)籍基本信息的錄入、查詢修改、打印輸出、維護等常用功能、并提供學(xué)號、編排、學(xué)生照片輸入與顯示、學(xué)籍變動(留級、休學(xué)、跳級、轉(zhuǎn)班、轉(zhuǎn)學(xué)、退學(xué)等)、獎懲登記、畢業(yè)情況統(tǒng)計等功能。教師管理:“教師管理”用于管理教師相關(guān)的信息,提高教學(xué)質(zhì)量,保證教學(xué)工作的高效運行,包含的功能模塊如下圖所示:教師管理教師基本信息教師任課檔案教師獎懲 檔案教師考評管理教師課時數(shù)統(tǒng)計教師進(jìn)修檔案2.1.5注冊收費管理:“注冊收費”用于記錄學(xué)生新學(xué)期的注冊情況,如果未注冊將記錄學(xué)生的未注冊原因及未注冊的去向。“收費管理”用于記錄學(xué)生
14、開學(xué)初的收費情況,每個學(xué)生的收費標(biāo)準(zhǔn)來自學(xué)生學(xué)籍信息中的收費類別。2.1.6排課選課管理:“排課管理”用于根據(jù)教學(xué)計劃、教師資源等,制訂每學(xué)期的課程表。2.1.7教務(wù)管理:“教務(wù)管理”用于根據(jù)課程自動生成本學(xué)期的考試地點考試時間監(jiān)考老師等數(shù)據(jù),并對考試的過程和結(jié)果進(jìn)行監(jiān)控,包含的功能模塊如下圖所示?!敖虅?wù)信息發(fā)布”用于發(fā)布教務(wù)信息,如學(xué)年,學(xué)期,期中(期未)考試,考試時間等,以及其他一些有關(guān)事務(wù)的事項。、“考試日程安排”用于管理考試日期,時間,考試科目,考試班級,監(jiān)考教師/,考場等信息?!霸u卷安排”用于對評卷專業(yè),評卷科目,評卷教師,評卷教師,評卷日期,時間等評卷信息進(jìn)行管理。“考場情況記錄”
15、用于考場情況進(jìn)行管理,如考試班級,考試科目,應(yīng)考人數(shù),實到人數(shù),違紀(jì)記錄情況等?!俺煽冧浫搿庇糜谑谡n教師輸入學(xué)生的考試成績。“補考成績錄入”用于授課教師輸入學(xué)生的補考考試成績。“補考通知單”用于教務(wù)處依據(jù)班級,個人,課程進(jìn)行不及格統(tǒng)計,并打印出學(xué)生的補考通知單。“班級成績單”用于以班級為單位,打印該班級所開設(shè)課程的每個學(xué)生的成績,送教務(wù)處存檔用??紕?wù)管理考務(wù)信息發(fā)布考試日程安排評卷安排考場情況記錄學(xué)生成績錄入補考成績錄入補考通知單班級成績單2.1.8畢業(yè)管理:“畢業(yè)管理”用于對學(xué)生畢業(yè)進(jìn)行處理,同時對畢業(yè)信息,學(xué)位授予,證書授予及校友信息等進(jìn)行管理,包含的功能模塊如下圖所示?!凹寄芄芾怼庇糜趯?/p>
16、學(xué)生在校期間獲得的資格證書進(jìn)行存檔,有利于提高學(xué)生的綜合素質(zhì)?!皩嵙?xí)管理”用于記錄學(xué)生在校期間的實習(xí)情況?!罢撐墓芾怼庇糜谟涗泴W(xué)生的畢業(yè)論文情況,供日后查詢或借鑒?!爱厴I(yè)審核”用于根據(jù)學(xué)生所在系所,專業(yè)的教學(xué)計劃,選課成績和學(xué)籍來審查來審查該生是否具備畢業(yè)資格。“畢業(yè)管理”用于記錄學(xué)生畢業(yè)信息,包括畢業(yè)證書號,工作去向等。2.1.9教材管理: “教材管理”用于對教材庫存,教材計劃,教材預(yù)訂,班級預(yù)收款,教材采購及教材銷售等工作進(jìn)行有效管理,包含的功能模塊如下圖所示。教材管理教材信息設(shè)置開課教材設(shè)置教材計劃庫存管理教材采購教師領(lǐng)書說明:說了一下需求分析,由于本人掌握基礎(chǔ)有限,另外還有本系統(tǒng)的關(guān)系
17、復(fù)雜性,并沒有全部開發(fā),只開發(fā)了其中子部分,望老師包涵。下面把本系統(tǒng)的所有功能作成流程圖,讓讀者明確本系統(tǒng)的所有功能:教務(wù)管理系統(tǒng)退出系統(tǒng)維護教務(wù)管理報表統(tǒng)計基礎(chǔ)信息查詢退出系統(tǒng)成績輸出打印成績單系部信息查詢班級信息查詢學(xué)生信息查詢課程信息查詢院校職工查詢學(xué)生選課課表查詢成績輸入班級信息系部信息維護維護學(xué)生信息維護系統(tǒng)維護課程信息維護院校信息查詢用戶登錄維護2.2教務(wù)管理系統(tǒng)數(shù)據(jù)庫分析:建立本系統(tǒng)所使用基礎(chǔ)數(shù)據(jù)的關(guān)鍵表,如下圖所示: 用戶表(在數(shù)據(jù)庫中為youghu )字段名數(shù)據(jù)類型是否為空說明YhmcChar(10)Not null用戶名稱YhmmChar(10)Not null用戶密碼 班
18、級信息表 (在數(shù)據(jù)庫中為j_bjxxb) 字段名數(shù)據(jù)類型是否為空說明BjbkChar(14)Not null班級編號(主關(guān)鍵字)NjChar(4)Not Null年級BjmcChar(30)Not null班級名稱BjjcChar(16)Not null班級簡稱RsInt (3,0)Not null人數(shù)BjInt(10)null班級學(xué)生信息表(在數(shù)據(jù)庫中為j_xsxxb)字段名數(shù)據(jù)類型是否為空說明XhChar(14)Not null學(xué)號(主關(guān)鍵字) XmChar(8)Not null姓名BjbhChar(14)Not null班級編號(外鍵班級信息表)XbChar(2)Not null性別Nj
19、Int(2)Not null班級ZzmmbhInt(10)Not null政治面貌編號(外鍵政治面貌表)MzbhInt(10)Not null民族編號(外鍵民族代碼表)JgbhInt(10)Not null籍貫編號(外鍵籍貫代碼表)SfzhInt(18)Not null身份證號XjbhInt(10)Not null學(xué)籍編號(外鍵學(xué)籍代碼表) 課程信息表(在數(shù)據(jù)庫中為j_kcxxb)字段名數(shù)據(jù)類型是否為空說明KcbhInt(10)Not null課程編號(主關(guān)鍵字)KcmcChar(40)Not null課程名稱KcjcChar(40)Not null課程間稱PymInt(10)Not null
20、拼音碼BxqkcChar(2)Not null本學(xué)期課程JsChar(10)Not null教師KkxbChar(30)Not null開課系別XfInt (100)Not null學(xué)分 課程表(在數(shù)據(jù)庫中為j_kcb)字段名數(shù)據(jù)類型是否為空說明BhInt(10)Not null編號(主關(guān)鍵字)KxhChar(14)Not null課序號KcbhInt(10)Not null課程編號(外鍵課程信息表)SksjtInt(5)Not null上課時間天sksjjInt(2)Not null上課時間節(jié)SkddChar(20)Not null上課地點 選課表(在數(shù)據(jù)庫中為j_xkb)字段名數(shù)據(jù)類型是否
21、為空說明BhChar(10)Not null編號(主關(guān)鍵字)XhChar(14)Not null學(xué)號KxhChar(14)Not null課序號 成績表(在數(shù)據(jù)庫中為j_cjb)字段名數(shù)據(jù)類型是否為空說明BhChar(10)Not null編號(主關(guān)鍵字)Xh Char(14)Not null學(xué)號(外鍵學(xué)生信息表)KcbhInt(14)Not null 課程編號(課程信息表)CjInt (2)Not null成績KsjsInt(2)Not null考試次數(shù)SfbxInt(2)Not nul是否補修JfbkChar(2)Not null 是否補考 學(xué)籍代碼表(本數(shù)據(jù)庫叫作j_xjdmb)字段名數(shù)
22、據(jù)類型是否為空說明XjbhChar(2)Not null學(xué)籍編號(主關(guān)鍵字)XjdmChar(8)Not null學(xué)籍名稱 政治面貌表(在本數(shù)據(jù)庫中為j_zzmmb)字段名數(shù)據(jù)類型是否為空說明ZzmmbhChar(14)Not null政治面貌編號(主關(guān)鍵字)ZzmmChar(14)Not nul政治面貌 民族代碼表(在本數(shù)據(jù)庫中為j_mzdmb)字段名數(shù)據(jù)類型是否為空說明MzbhChar(2)Not null民族編號(主關(guān)鍵字)MzChar(2)Not null民族 籍貫代碼表(在本數(shù)據(jù)庫中為j_jgdmb)字段名數(shù)據(jù)類型是否為空說明JgbhChar(2)Not null籍貫編號(主關(guān)鍵字)
23、JgChar(30)Not null籍貫新建access數(shù)據(jù)庫步首先建立表本系統(tǒng)需要的表(如圖所示):第三章 程序開發(fā)3.1 登錄窗口布置 3.1.1 登錄界面 1點擊開始|程序|Sybase|powerbuilder9.0打開系統(tǒng)主窗體,進(jìn)入PB程序設(shè)計界面,點擊filenew命令,打開一個選項卡,建立本軟件的工作區(qū)間:2點擊OK按鈕,設(shè)置 workspace工作區(qū)間的名字為:j_jwglxt(教務(wù)管理系統(tǒng)的縮寫),再點擊新建按鈕,在target選項卡,選中applicaton按鈕,點擊OK 并起名為j_jwglxt(與上一個擴展名是不相同的)。3此時已建立了工作區(qū)間和application
24、 ,下面建一個窗體并保存名為j_main即為系統(tǒng)的登錄界面,登錄界面如下圖所示。4.在數(shù)據(jù)庫連接時,進(jìn)入登錄界面(五福娃_falsh),有時候需要很長的一段時間,所以在這里安排一個flash窗口,使軟件使用者在等待連接數(shù)據(jù)庫的枯燥的時間里制作一個動畫窗口,使使用者不在等不急,心情快樂舒暢! (如圖為登錄界面) ( 如圖:建立flash窗口) 用戶在登錄窗口進(jìn)入主菜單前的屬性值和進(jìn)入“登錄”按鈕的clicked!事件代碼:J_main窗體的屬性設(shè)置:控件類型對象名屬性說明WindowJ_mianTitle教務(wù)管理系統(tǒng)SinglelineSle_1textNullSinglelineSle_2Te
25、xtNullRichboxRb_1Text登錄RichboxRb_1text退出在“登錄”的clicked事件中加入以下代碼: 單擊窗中下方 標(biāo)簽,定入實例變量Boolean user_auth,login_name在單擊layout標(biāo)簽輸入:Open(j_falsh) /打開falsh窗口 / Profile EAS Demo DB V9SQLCA.DBMS = ODBCSQLCA.AutoCommit) = FalseSQLCA.DBParm = ConnectString=DSN=EAS Demo DB V9;UID=dba;PWD=sqlIf sqlca.sqlcode0 then M
26、essagebox(“提示”, “連接數(shù)據(jù)庫失??!請重新連接或檢查是否正確!”) ReturnEnd if Connect;String passInt countLogin_time=0Login_time =login_time+1If login_time 3 then Select count(*) into :count from youhu Where yhmc=:sle_1.text;If count=0 then Messagebox(“提示”, “用戶名不正確,請重新輸入!”) Sle_info.textcolor=red /使文本框變成紅色 If login_time3 t
27、hen Messagebox(“提示”, “用戶名不正確,請重新輸入!”) Sle_1.text=“” Sle_2.text=“” Sle_1.setfocus( )Else Messagebox(“提示”,你無權(quán)使用本軟件,謝謝!) Close(parent)End if ElseSelect yhmm into:pass from youghu Where yhmc=:sle_1.text;If sle_2.text =pass then Sle_info.textcolor=green User_auth=true Login_name=sle_1.text Open(j_main) C
28、lose(j_falsh)Else Messagebox(“提示”, “密碼不正確,請重試!”) Sle_info.textcolor=red If login_time3 then Sle_info.text=“密碼不正確,請重新輸入!” Close(j_falsh) End if End if End if End if 在“退出”按鈕的clicked事件中加入代碼: Close(parent)3.1.2創(chuàng)建系統(tǒng)主菜單: 選擇file|new菜單命令,的彈出的對話框中,選中PB object選項卡,然后選擇menu對象,單擊OK按鈕,創(chuàng)建一個菜單名為j_menu,如下圖所示:3.2 基礎(chǔ)信
29、息查詢3.2.1 系部信息查詢界面:1依次打開其他代碼打開表單窗口(如下圖所示): 在窗體w_xbxx中定義實例變量: Integer il_row,il_rowcount /當(dāng)前行和記錄總數(shù) String is_sql, /數(shù)據(jù)窗口的dw_1原始語法2在窗體中打開open事件并加入以下代碼,將數(shù)據(jù)窗口連接到數(shù)據(jù)庫,并得到數(shù)據(jù)窗口dw_1的原始語法,為后面查詢作準(zhǔn)備。 (如圖為創(chuàng)建系部信息查詢的數(shù)據(jù)窗口) Dw_1.settransobject(sqlca) /連接數(shù)據(jù)庫 Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語法3在dw_1中clicked事件中加入代碼(下面的
30、代碼的作用是控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行): if row=0 then return if dw_1.isselected(row)=false then dw_1.selectrow(row,true) else dw_1.selectrow(row,false) end if return 1在查詢命令按鈕單擊(clicked)事件加入代碼: String ls_select,ls_xbbhInteger ls_xbmcLs_xbbh=trim(sle_1.text)Ls_xbmc=trim(sle_2.text)Ls_select =”If not isnull(ls_xbbh
31、) and sl_xbbh ” then Ls_xbbh=”%”+sl_xbbh+”%” Ls_select=ls_select+”系部編號 like”+ls_xbbh+”End ifIf not isnull(sl_xhmc) and ls_xbmc” then Ls_xbmc=”%”+ls_xbmc+”%” Ls_select=ls_select+”系部名稱 like”+ls_xbmc+”End ifIf ls_select “” then Ls_select=is_sql+”where” +ls_select Else Ls_select=is_sqlEnd if Dw_1.setsql
32、select(ls_select)Il_row=dw_1.retrieve()3.2.2班級信息查詢: 如下圖所示圖片:1 在選擇file|new菜單命令,建立一個新的窗體,保存名為j_bjxx,在窗體的open事件中加入以下代碼: Dw_1.settransobject(sqlca) /連接數(shù)據(jù)庫 Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語法2 在dw_1中clicked事件中加入代碼: if row=0 then return if dw_1.isselected(row)=false then dw_1.selectrow(row,true) else dw_
33、1.selectrow(row,false) end if return 1 /控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行3 在窗體中的查詢的clicked中加入代碼:String ls_select,ls_bjbh,ls_nj,ls_njmcLs_bjbh=trim(sle_1.text)Ls_nj=trim(sle_2.text)Ls_njmc=trim(sle_3.text)Ls_select=”If not isnull(ls_bjbh) and ls_bjbh” then Ls_bjbh=”%”+ls_bjbh+”%” Ls_select=ls_select+”班級編號 like”+ls_
34、bjbj+”End if If not isnull(ls_nj) and ls_nj” then Ls_nj=”%”+ls_nj+”%” If ls_select =” then Ls_select=”年級 like”+ls_nj+” Else Ls_select=ls_select+”and 年級 like”+ls_nj” End ifEnd if If not isnull(ls_njmc) and ls_njmc” then Ls_njmc=”%”+ls_njmc+”%” If ls_select=” thenls_select=”班級名稱 like”+ls_njmc+”else ls
35、_select=ls_select+”and 班級名稱 like”+ls_njmc+”end if end if / 獲得SQL的原始語法If ls_select ” then Ls_select=is_sql+”where”+ls_selectElse Ls_select=is_sqlEnd if Dw_1.setsqlselect(ls_select) /重新連接數(shù)據(jù)庫 il_rowcount =dw_1.retrieve( ) /重新檢索數(shù)據(jù)3.2.3學(xué)生信息查詢: 1新建一個窗體保存名為j_xsxx,其如圖所示: 2在窗體的open事件中加入以下代碼: Dw_1.settransobj
36、ect(sqlca) /連接數(shù)據(jù)庫 Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語法 3在dw_1中clicked事件中加入代碼: if row=0 then return if dw_1.isselected(row)=false then dw_1.selectrow(row,true) else dw_1.selectrow(row,false) end if return 1 /控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行 4在窗體中的查詢的clicked中加入代碼:String ls_select,ls_xh,ls_xmInteger li_njLs_xh=trim(
37、sle_1.text)Ls_nj=integer(trim(sle_2.text)Ls_xm=trim(sle_3.text)Ls_select=”If not isnull(ls_xh ) and ls_xh ” then Ls_xh =”%”+ls_xh+”%” Ls_select=ls_select +”學(xué)號 like”+ls_xh+”End if If not isnull(ls_xm) and ls_xm” then Ls_xm=”%”+ls_xm+”%” If ls_select =” then Ls_select=”姓名 like”+ls_xm+” Else Ls_select=
38、ls_select+”and 姓名 like”+ls_xm+” End if End if If not isnull(li_nj) and li_nj0 then If ls_select=” then Ls_select=”年級=”+string(li_nj) Else Ls_select=ls_select+”and 年級=”+string(li_nj) End if End if If ls_select=” then Ls_select=is_sql+”where”+ls_select Else Ls_select=is_sql End if Dw_1.setsqlselec(ls_
39、select)Il_rowcount=dw_1.retrieve()3.2.4院校職工查詢和課程信息查詢:1新建一個窗體保存名為j_yxzg,其如圖所示: 2在窗體的open事件中加入以下代碼: Dw_1.settransobject(sqlca) /連接數(shù)據(jù)庫 Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語法3. 在dw_1中clicked事件中加入代碼: if row=0 then return if dw_1.isselected(row)=false then dw_1.selectrow(row,true) else dw_1.selectrow(row,fa
40、lse) end if return 1 /控制在數(shù)據(jù)數(shù)據(jù)窗口每一次選中的都是行4.在窗體中的查詢的數(shù)據(jù)窗口的open事件中加入代碼:String ls_select,ls_kcmc,ls_pymInteger li_kcbhLi_kcbh=integer(trim(sle_1.text) Ls_kcmc=trim(sle_2.text) Ls_pym=trim(sel_3.test) Ls_select=” If not isnull(li_kcbh) and libh0 then Ls_select=ls_select+”課程=”+string(li_kcbh) End if If not
41、 isnull(ls_kcmc) and ls_kcmc” then Ls_kcmc=”%”+ls_kcmc +”%” If ls_select=” then Ls_select=”課程名稱 like”+ls_kcmc+” Else Ls_select=ls_select+”and 課程名稱 like”+ls_kcmc+” End if End if Dw1.setsqlselect(ls_select)Il_rowcount=dw_1.retrieve( ) 3.3 教務(wù)管理3.3.1 學(xué)生選課:如下圖所示: 1 把sle_xm,sle_nj,r displayonly屬性改為true ,由
42、于實例變量在前面的窗口已經(jīng)定義。在后面的窗口中可以直接引用。但根據(jù)后面的需要,也可以定義自己的變量。 String is_sqlchild,is_status2 學(xué)生選課就是學(xué)生根據(jù)學(xué)生自己的需要,選擇學(xué)習(xí)一些學(xué)習(xí)的課程,程序中需要控制學(xué)生后面的選擇的課程時間不能跟前面選課的時間有時間沖突。3 在文框 sle_xh 輸入內(nèi)容顯示學(xué)生的姓名,年級,并得到學(xué)生的選課情況。String ls_bh,ls_xm,ls_xjbhLs_xh=trim(sle_xh.text)Select xsxx.xm,xsxx.nj,xsxx.xjbh into :ls_xm,:ls_nj,:ls_xjbh from
43、xsxx Where xh=:ls_xh;If ls_xjbh”1” then /不是在籍學(xué)生,不能選擇 Messagebox(“提示”,”不是在籍的學(xué)生!”) Sle_xh.text=” ReturnEnd if Sle_xm.text=ls_xmSle_nj.text=string(li_nj)Dw_1.retrieve(ls_xh) 4. j_xsxk的打開事件(open): Dw_1.settransobject(sqlca) Dw_2.settransobject(sqlca) Is_sql=dw_1.getsqlselect Is_sqlchild=dw_2.getsqlselec
44、t()5. 在窗口自定事件 ue_query ,在程序中查詢課程信息的很多條件,有課程拼音、課程名稱、課程編號、課程序號,無論在哪個條件文本框中輸入條件后,單擊回車鍵系統(tǒng)都會自動查詢課程信息。如果什么都有確認(rèn),則查詢所有的課程信息,因此將在自定義事件中加入以下代碼,用于查詢數(shù)據(jù)窗口dw_2中的課程信息。 String ls_kcpy,ls_kcnc,ls_kcnc,ls_kcbh,ls_kcxh String ls_select Ls_kcpy=trim(sle_kcpy.text) Ls_kcmd=trim(sle_kcmc.text) Ls_kcbh=trim(sle_kcbh.text)
45、 Ls_kcxh=sle_kcxh.text Ls_select=” If not isnull(ls_kcpy) and ls_kcpy” then Ls_kcpy=”%”+ls_kcpy+”%” Ls_select=ls_select+”kcxx.pym like”+ls_kcpy+” End if If not isnull(ls_kcmc) and ls_kcmc” then Ls_kcmc=”%”+ls_kcmc+”%” If ls_select=” then Ls_select=ls_select+”kcxx.kcmc like”+ls_kcmc+”Else ls_select=l
46、s_select+”kcxx.kcmc like”+ls_kcmc+” end if end if if not isnull(ls_kcbh) and ls_kcbh ” then ls_kcbh=”%”+ls_kcbh+”%” if ls_select=” then ls_select=ls_select+”kcxx.kcbh like”+ls_kcbh+” else ls_select=ls_select+” and kcxx.kcbh like”+ls_kcbh+” end if end if if not isunll(ls_kcxh) and ls_kcxh” then ls_kc
47、xh=”%”+ls_kcxh+”%” if ls_select =” then ls_select=ls_select+”kcb.kxh like”+ls_kcxh+” else ls_select=ls_select+” and kcb.kxh like”+ls_kcxh+” end if end if if ls_select=” then dw_2.retrieve() else ls_select=is_sqlchild+and +ls_select dw_2.setsqlselect(ls_select) dw_2.retrieve() enf if 6. 在文本框自定義事件,ent
48、er_1選擇PB自身定義事件 pbm_dwnkey,該事件是當(dāng)焦點在文本框時,單擊回車鍵,就響應(yīng)此事件。調(diào)用窗口自定義事件,enter_1來查詢數(shù)據(jù)。如下圖所示: If key=keyenter! Then Parent.trigger(ue_query) End if 7 在按鈕cb_select 的clicked事件加入以下代碼,調(diào)用窗口的自定義事件ue_query來查詢數(shù)據(jù)窗口dw_2中課程信息的數(shù)據(jù)。 Parent.trigger(ue_query)8在查詢的clicked事件中:加入代碼,根據(jù)數(shù)據(jù)窗口dw_2選中的行得到數(shù)據(jù)。如果選中的課程的上課時間跟已經(jīng)選修的課程時間有沖突。也提示
49、不能修改該課程。 Integer il_row,li_insertrow,li_count String ls_kxh,ls_kcmc,ls_js,ls_kkxb Integer li_sjt,li_sjj,li_kcbh,i If li_row0 then Messagebox(“ 提示”,”已經(jīng)選擇該課程!”) ReturnEnd if Lds_kxh=create datastoreLds_kxh.dataobject=d_kxh.storeLds.kxh.settransobject(sqlca)Lds.kxh.retrieve(ls_kxh)For i=1 lds_kxh rowco
50、unt() Li_sjt=lds.kxh.getitemnumber(I,”sksjt”) /上課時間天 Li_sjj=lds_kxh.getitemnumber(I,”sksjj”) /上課時間節(jié) Select count(*) into:li_count from kcb,xkb Where kcb.kxh=xkb.kxh and kcb.sksjt=:li_sjt And kcb.hksjj =:li_sjj and xkb.xh=:ls_xh; If li_count0 then Messagebox(“提示”,”選擇的時間以前時間重疊!”) Destroy.lao.kxh Return End ifnext destroy lds_kxh; /破壞數(shù)據(jù)存儲/ 得到數(shù)據(jù)窗口中選擇行,并保存到需要的地方。Ls_kxh=dw_2.getitemstring(li_row,”kxh”)Ls
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 空前嚴(yán)重的資本主義世界經(jīng)濟危機講義
- 丹田降脂丸推廣策劃OTC0427教學(xué)課件
- 專業(yè)代理公司組織架構(gòu)及崗位職責(zé)
- 宮頸癌術(shù)后輔助放射治療通用PPT課件
- 家庭常用醫(yī)療器械的使用課件
- 給圖形做標(biāo)記
- 高三政治人教版一輪復(fù)習(xí)課件:課時11經(jīng)濟全球化與對外開放共44張
- 五年級下冊英語Recycle1人教版課件
- 五年級上冊科學(xué)《母雞生蛋了》粵教版課件
- 二年級上冊道德與法治大家排好隊課件
- 復(fù)習(xí)課件工業(yè)革命
- 第六章組織文化
- 勤助上崗培訓(xùn)課件
- 南川中學(xué) 剪紙課件 第2課
- 華師大版九年級上冊課件:2312平行線分線段成比例