2017畢業(yè)論文-教務(wù)管理系統(tǒng).doc
《2017畢業(yè)論文-教務(wù)管理系統(tǒng).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《2017畢業(yè)論文-教務(wù)管理系統(tǒng).doc(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、吉林農(nóng)業(yè)工程職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)摘 要在日新月異的今天社會(huì)經(jīng)濟(jì)發(fā)展高速增長(zhǎng),計(jì)算機(jī)已經(jīng)成為人們不可分割的一部分。為了加強(qiáng)計(jì)算機(jī)的智能化,人們開(kāi)發(fā)了各種管理系統(tǒng)來(lái)解決現(xiàn)實(shí)生活的尖端問(wèn)題。教務(wù)管理系統(tǒng)就是管理系統(tǒng)很重要的一部分。教務(wù)管理系統(tǒng)的需要是面向所有的教職工和學(xué)生,用戶數(shù)量大,地點(diǎn)分布廣。在這里我們使用的是C/S模式系統(tǒng)。 關(guān)鍵詞:powerbuilder程序設(shè)計(jì) Access數(shù)據(jù)庫(kù) 教務(wù)管理系統(tǒng)。目 錄第一章 前言1第二章 系統(tǒng)流程及庫(kù)文件32.1 數(shù)據(jù)庫(kù)需求分析32.2 數(shù)據(jù)庫(kù)設(shè)計(jì)及過(guò)程 -7第三章 程序開(kāi)發(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 班級(jí)信息查詢界面-163.2.3 學(xué)生信息查詢界面-173.2.4 院校職工信息和課程信息查詢界面-193.3 教務(wù)管理20 3.3.1 學(xué)生選課-20 3.3.2 課表查詢-25 3.3.3 成績(jī)輸入-263.4 報(bào)表統(tǒng)計(jì)29 3.4.1 成績(jī)輸出-29 3.4.2 打印成績(jī)單-313.5 系統(tǒng)維護(hù)31 3.5.1 系部信息維護(hù)-31 3.5.2 班級(jí)信息維護(hù)-34 3.5.3 學(xué)生信息維護(hù)-34 3.5.4 課程信息維護(hù)-34 3.5.5 院校職工維護(hù)-34 3.5.6 用戶登錄維護(hù)-34參考文獻(xiàn)-
3、38致謝-39第一章 前 言信息管理系統(tǒng)(MIS)是集計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通信技術(shù)為一體的信息系統(tǒng)工程,它能夠使企業(yè)運(yùn)行的數(shù)據(jù)更加準(zhǔn)確、及時(shí)、全面、詳實(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ǔ)。MIS系統(tǒng)開(kāi)發(fā)過(guò)程不僅僅是一個(gè)編寫(xiě)應(yīng)用程序的過(guò)程,而是以軟件工程的思想為指導(dǎo),從可行性研究開(kāi)始,經(jīng)過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施等主要階段而進(jìn)行規(guī)范的開(kāi)發(fā)過(guò)程。目前國(guó)內(nèi)使用和發(fā)展的MIS平臺(tái)模式大體上分為兩種:客
4、戶機(jī)/服務(wù)器(Client/Server,簡(jiǎn)稱C/S)模式和瀏覽器/服務(wù)器(Browser/Server,簡(jiǎn)稱C/S)模式。MIS系統(tǒng)不僅僅使用在企業(yè)中,它可以應(yīng)用的方面很廣,各行各業(yè)都可以應(yīng)用:金融、保險(xiǎn)、農(nóng)業(yè)、工業(yè)等等。只要是有數(shù)據(jù)采集整理紀(jì)錄的方面,都可以應(yīng)用。學(xué)校作為一個(gè)獨(dú)立的機(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ù)管理,物資管理,后勤管理等。學(xué)校的各個(gè)系統(tǒng)又分為不同的管理人員,不同的管理人員所看到的以及所操作管理的部分又不同,這就需
5、要給不同的操作者提供不同的操作管理權(quán)限。不同身份的用戶所需要的資料也不同,這需要給不同的用戶提供不同的操作界面,進(jìn)行不同的操作。而且不同身份的客戶所關(guān)心的問(wèn)題也不同,比如學(xué)校的使用者大體分學(xué)生、教師、教務(wù)處、這就需要在做MIS系統(tǒng)開(kāi)發(fā)之前一定要做好前期的需求分析,中期的系統(tǒng)設(shè)計(jì)、程序開(kāi)發(fā),而且也要注意后期的系統(tǒng)維護(hù)。開(kāi)發(fā)工具介紹:PowerBuilder提供了對(duì)目前流行的大多數(shù)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的支持,由于在PowerBuilder的應(yīng)用程序中對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的部分一般采用國(guó)際化標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)查詢語(yǔ)言SQL,使得用PowerBuilder開(kāi)發(fā)的應(yīng)用程序可以不做修改或者只做少量的修改就可以在不同的后臺(tái)數(shù)
6、據(jù)庫(kù)管理系統(tǒng)上使用。也就是說(shuō)用PowerBuilder開(kāi)發(fā)的應(yīng)用程序是獨(dú)立于服務(wù)器上的數(shù)據(jù)庫(kù)管理系統(tǒng)的。和大多數(shù)的WINDOWS應(yīng)用程序一樣,PowerBuilder也是事件驅(qū)動(dòng)工作方式。在這種工作方式中,程序的運(yùn)行沒(méi)有固定的流程,程序中的代碼也是為各種可能發(fā)生的事件編寫(xiě)的,當(dāng)程序開(kāi)始運(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ì)象。PowerBuilder是一種面向?qū)ο蟮拈_(kāi)發(fā)工具,各種WINDOWS應(yīng)用程序中常見(jiàn)的窗口、
7、菜單、控件等在PowerBuilder中都是一個(gè)個(gè)的對(duì)象。在PowerBuilder中我們還可以創(chuàng)建自己的用戶對(duì)象。特別要指出的是PowerBuilder提供了對(duì)面向?qū)ο蠓椒ㄖ械母鞣N技術(shù)的全面支持,我們可以利用面向?qū)ο蠓椒ㄖ械膶?duì)象的封裝性、繼承性、多態(tài)性等特點(diǎn)使得我們開(kāi)發(fā)的應(yīng)用程序具有極大的可重用性和可擴(kuò)展性,而這一點(diǎn)正是軟件工程中對(duì)應(yīng)用程序所提出的重要目標(biāo)。在當(dāng)前,由于網(wǎng)絡(luò)技術(shù)的發(fā)展,許多種不同的操作系統(tǒng)平臺(tái)在INTERNET網(wǎng)上同時(shí)被使用,這對(duì)開(kāi)發(fā)的應(yīng)用程序的跨平臺(tái)性提出了更高的要求,而PowerBuilder就提供了良好的跨平臺(tái)性,比如在PowerBuilder中,利用WINDOWS平臺(tái)
8、開(kāi)發(fā)的各種對(duì)象可以方便地應(yīng)用到UNIX平臺(tái)中,因?yàn)镻owerBuilder支持對(duì)象的跨平臺(tái)性。這樣使得把應(yīng)用程序從一個(gè)平臺(tái)移到另一個(gè)平臺(tái)變得并不復(fù)雜。為了給用戶提供各個(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ù)。PowerBuilder一個(gè)很大的特點(diǎn)就是提出了數(shù)據(jù)窗口對(duì)象的概念。數(shù)據(jù)窗口對(duì)象也是PowerBu
9、ilder中的一種對(duì)象類型,與其它對(duì)象不同的是數(shù)據(jù)窗口對(duì)象是專門為了訪問(wèn)后臺(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ù)窗口對(duì)象中提供了豐富的數(shù)據(jù)顯示方式,可以滿足各種不同的需要。 在PowerBuilder較新的版本中提供了基礎(chǔ)類庫(kù)PFC,它為應(yīng)用程序的開(kāi)發(fā)提供了許多可重用的預(yù)定義類和對(duì)象,利用基本類庫(kù)PFC可以快速開(kāi)發(fā)出
10、高質(zhì)量重用性好的應(yīng)用程序。真正發(fā)揮面向?qū)ο缶幊痰木薮笸?。最后要指出的是PowerBuilder有三個(gè)不同的版本,分別為DESKTOP型,PROFESSIONAL型,和ENTERPRISE型,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)等絕大多
11、數(shù)特性;在ENTERPRISE版本中最重要的一點(diǎn)就是提供了對(duì)開(kāi)發(fā)大型的數(shù)據(jù)庫(kù)應(yīng)用程序的全面的支持,提供了開(kāi)發(fā)大型應(yīng)用程序的許多輔助的工具,比如C+ CLASS BUILDER等第二章 系統(tǒng)流程及庫(kù)文件2.1教務(wù)管理系統(tǒng)需求分析:將通用教務(wù)管理系統(tǒng)所必備的功能歸納如下圖所示,其中每個(gè)功能都由若干相關(guān)聯(lián)的子功能模塊組成,除此之外,系統(tǒng)還應(yīng)包括信息系統(tǒng)必須具備的通用功能如:權(quán)限設(shè)置、數(shù)據(jù)備份與恢復(fù)。教務(wù)管理系統(tǒng)基礎(chǔ)數(shù)據(jù)管理教學(xué)計(jì)劃管理課程管理學(xué)籍管理教師管理注冊(cè)收費(fèi)管理排課選課管理考分管理畢業(yè)管理教材管理系統(tǒng)管理2.1.1系統(tǒng)數(shù)據(jù)流程: 如下圖所示:2.1.2 基礎(chǔ)數(shù)據(jù)管理“基礎(chǔ)數(shù)據(jù)管理”用于維護(hù)整
12、個(gè)教務(wù)管理系統(tǒng)正常運(yùn)行所需的基礎(chǔ)數(shù)據(jù)集,以保證教系統(tǒng)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)的基礎(chǔ)數(shù)據(jù)集,便于數(shù)據(jù)的共享使用,內(nèi)容包括入學(xué)年份、學(xué)年學(xué)期、院系數(shù)據(jù)、專業(yè)設(shè)計(jì)、教室情況等。如下圖所示:基礎(chǔ)數(shù)據(jù)管理基本信息專業(yè)代碼學(xué)期代碼學(xué)年代碼科屬部門代碼班級(jí)代碼教室代碼學(xué)歷代碼職稱代碼教學(xué)計(jì)劃名稱管理教師代碼管理其他基礎(chǔ)信息管理2.1.3 教學(xué)計(jì)劃管理:“教學(xué)計(jì)劃管理”用于維護(hù)學(xué)校中各系各專業(yè)的課程、課組計(jì)劃安排信息,作為選課和畢業(yè)審查的標(biāo)準(zhǔn),包括的功能有課程計(jì)劃登記、課和計(jì)劃審批、選課情況查詢、選課信息審批等。2.1.4 課程管理:“課程管理”用于學(xué)校所有開(kāi)設(shè)課程的情況,包括課程編號(hào)、課程名稱、上課學(xué)時(shí)、開(kāi)課系、上
13、課教師等相關(guān)信息,功能包括課程的增加、刪除、查詢、統(tǒng)計(jì)等。學(xué)籍管理:“學(xué)藉管理”主要包括了高校學(xué)籍基本信息的錄入、查詢修改、打印輸出、維護(hù)等常用功能、并提供學(xué)號(hào)、編排、學(xué)生照片輸入與顯示、學(xué)籍變動(dòng)(留級(jí)、休學(xué)、跳級(jí)、轉(zhuǎn)班、轉(zhuǎn)學(xué)、退學(xué)等)、獎(jiǎng)懲登記、畢業(yè)情況統(tǒng)計(jì)等功能。教師管理:“教師管理”用于管理教師相關(guān)的信息,提高教學(xué)質(zhì)量,保證教學(xué)工作的高效運(yùn)行,包含的功能模塊如下圖所示:教師管理教師基本信息教師任課檔案教師獎(jiǎng)懲 檔案教師考評(píng)管理教師課時(shí)數(shù)統(tǒng)計(jì)教師進(jìn)修檔案2.1.5注冊(cè)收費(fèi)管理:“注冊(cè)收費(fèi)”用于記錄學(xué)生新學(xué)期的注冊(cè)情況,如果未注冊(cè)將記錄學(xué)生的未注冊(cè)原因及未注冊(cè)的去向?!笆召M(fèi)管理”用于記錄學(xué)生
14、開(kāi)學(xué)初的收費(fèi)情況,每個(gè)學(xué)生的收費(fèi)標(biāo)準(zhǔn)來(lái)自學(xué)生學(xué)籍信息中的收費(fèi)類別。2.1.6排課選課管理:“排課管理”用于根據(jù)教學(xué)計(jì)劃、教師資源等,制訂每學(xué)期的課程表。2.1.7教務(wù)管理:“教務(wù)管理”用于根據(jù)課程自動(dòng)生成本學(xué)期的考試地點(diǎn)考試時(shí)間監(jiān)考老師等數(shù)據(jù),并對(duì)考試的過(guò)程和結(jié)果進(jìn)行監(jiān)控,包含的功能模塊如下圖所示。“教務(wù)信息發(fā)布”用于發(fā)布教務(wù)信息,如學(xué)年,學(xué)期,期中(期未)考試,考試時(shí)間等,以及其他一些有關(guān)事務(wù)的事項(xiàng)。、“考試日程安排”用于管理考試日期,時(shí)間,考試科目,考試班級(jí),監(jiān)考教師/,考場(chǎng)等信息。“評(píng)卷安排”用于對(duì)評(píng)卷專業(yè),評(píng)卷科目,評(píng)卷教師,評(píng)卷教師,評(píng)卷日期,時(shí)間等評(píng)卷信息進(jìn)行管理?!翱紙?chǎng)情況記錄”
15、用于考場(chǎng)情況進(jìn)行管理,如考試班級(jí),考試科目,應(yīng)考人數(shù),實(shí)到人數(shù),違紀(jì)記錄情況等?!俺煽?jī)錄入”用于授課教師輸入學(xué)生的考試成績(jī)。“補(bǔ)考成績(jī)錄入”用于授課教師輸入學(xué)生的補(bǔ)考考試成績(jī)。“補(bǔ)考通知單”用于教務(wù)處依據(jù)班級(jí),個(gè)人,課程進(jìn)行不及格統(tǒng)計(jì),并打印出學(xué)生的補(bǔ)考通知單?!鞍嗉?jí)成績(jī)單”用于以班級(jí)為單位,打印該班級(jí)所開(kāi)設(shè)課程的每個(gè)學(xué)生的成績(jī),送教務(wù)處存檔用??紕?wù)管理考務(wù)信息發(fā)布考試日程安排評(píng)卷安排考場(chǎng)情況記錄學(xué)生成績(jī)錄入補(bǔ)考成績(jī)錄入補(bǔ)考通知單班級(jí)成績(jī)單2.1.8畢業(yè)管理:“畢業(yè)管理”用于對(duì)學(xué)生畢業(yè)進(jìn)行處理,同時(shí)對(duì)畢業(yè)信息,學(xué)位授予,證書(shū)授予及校友信息等進(jìn)行管理,包含的功能模塊如下圖所示。“技能管理”用于對(duì)
16、學(xué)生在校期間獲得的資格證書(shū)進(jìn)行存檔,有利于提高學(xué)生的綜合素質(zhì)?!皩?shí)習(xí)管理”用于記錄學(xué)生在校期間的實(shí)習(xí)情況。“論文管理”用于記錄學(xué)生的畢業(yè)論文情況,供日后查詢或借鑒?!爱厴I(yè)審核”用于根據(jù)學(xué)生所在系所,專業(yè)的教學(xué)計(jì)劃,選課成績(jī)和學(xué)籍來(lái)審查來(lái)審查該生是否具備畢業(yè)資格?!爱厴I(yè)管理”用于記錄學(xué)生畢業(yè)信息,包括畢業(yè)證書(shū)號(hào),工作去向等。2.1.9教材管理: “教材管理”用于對(duì)教材庫(kù)存,教材計(jì)劃,教材預(yù)訂,班級(jí)預(yù)收款,教材采購(gòu)及教材銷售等工作進(jìn)行有效管理,包含的功能模塊如下圖所示。教材管理教材信息設(shè)置開(kāi)課教材設(shè)置教材計(jì)劃庫(kù)存管理教材采購(gòu)教師領(lǐng)書(shū)說(shuō)明:說(shuō)了一下需求分析,由于本人掌握基礎(chǔ)有限,另外還有本系統(tǒng)的關(guān)系
17、復(fù)雜性,并沒(méi)有全部開(kāi)發(fā),只開(kāi)發(fā)了其中子部分,望老師包涵。下面把本系統(tǒng)的所有功能作成流程圖,讓讀者明確本系統(tǒng)的所有功能:教務(wù)管理系統(tǒng)退出系統(tǒng)維護(hù)教務(wù)管理報(bào)表統(tǒng)計(jì)基礎(chǔ)信息查詢退出系統(tǒng)成績(jī)輸出打印成績(jī)單系部信息查詢班級(jí)信息查詢學(xué)生信息查詢課程信息查詢?cè)盒B毠げ樵儗W(xué)生選課課表查詢成績(jī)輸入班級(jí)信息系部信息維護(hù)維護(hù)學(xué)生信息維護(hù)系統(tǒng)維護(hù)課程信息維護(hù)院校信息查詢用戶登錄維護(hù)2.2教務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)分析:建立本系統(tǒng)所使用基礎(chǔ)數(shù)據(jù)的關(guān)鍵表,如下圖所示: 用戶表(在數(shù)據(jù)庫(kù)中為youghu )字段名數(shù)據(jù)類型是否為空說(shuō)明YhmcChar(10)Not null用戶名稱YhmmChar(10)Not null用戶密碼 班
18、級(jí)信息表 (在數(shù)據(jù)庫(kù)中為j_bjxxb) 字段名數(shù)據(jù)類型是否為空說(shuō)明BjbkChar(14)Not null班級(jí)編號(hào)(主關(guān)鍵字)NjChar(4)Not Null年級(jí)BjmcChar(30)Not null班級(jí)名稱BjjcChar(16)Not null班級(jí)簡(jiǎn)稱RsInt (3,0)Not null人數(shù)BjInt(10)null班級(jí)學(xué)生信息表(在數(shù)據(jù)庫(kù)中為j_xsxxb)字段名數(shù)據(jù)類型是否為空說(shuō)明XhChar(14)Not null學(xué)號(hào)(主關(guān)鍵字) XmChar(8)Not null姓名BjbhChar(14)Not null班級(jí)編號(hào)(外鍵班級(jí)信息表)XbChar(2)Not null性別Nj
19、Int(2)Not null班級(jí)ZzmmbhInt(10)Not null政治面貌編號(hào)(外鍵政治面貌表)MzbhInt(10)Not null民族編號(hào)(外鍵民族代碼表)JgbhInt(10)Not null籍貫編號(hào)(外鍵籍貫代碼表)SfzhInt(18)Not null身份證號(hào)XjbhInt(10)Not null學(xué)籍編號(hào)(外鍵學(xué)籍代碼表) 課程信息表(在數(shù)據(jù)庫(kù)中為j_kcxxb)字段名數(shù)據(jù)類型是否為空說(shuō)明KcbhInt(10)Not null課程編號(hào)(主關(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開(kāi)課系別XfInt (100)Not null學(xué)分 課程表(在數(shù)據(jù)庫(kù)中為j_kcb)字段名數(shù)據(jù)類型是否為空說(shuō)明BhInt(10)Not null編號(hào)(主關(guān)鍵字)KxhChar(14)Not null課序號(hào)KcbhInt(10)Not null課程編號(hào)(外鍵課程信息表)SksjtInt(5)Not null上課時(shí)間天sksjjInt(2)Not null上課時(shí)間節(jié)SkddChar(20)Not null上課地點(diǎn) 選課表(在數(shù)據(jù)庫(kù)中為j_xkb)字段名數(shù)據(jù)類型是否
21、為空說(shuō)明BhChar(10)Not null編號(hào)(主關(guān)鍵字)XhChar(14)Not null學(xué)號(hào)KxhChar(14)Not null課序號(hào) 成績(jī)表(在數(shù)據(jù)庫(kù)中為j_cjb)字段名數(shù)據(jù)類型是否為空說(shuō)明BhChar(10)Not null編號(hào)(主關(guān)鍵字)Xh Char(14)Not null學(xué)號(hào)(外鍵學(xué)生信息表)KcbhInt(14)Not null 課程編號(hào)(課程信息表)CjInt (2)Not null成績(jī)KsjsInt(2)Not null考試次數(shù)SfbxInt(2)Not nul是否補(bǔ)修JfbkChar(2)Not null 是否補(bǔ)考 學(xué)籍代碼表(本數(shù)據(jù)庫(kù)叫作j_xjdmb)字段名數(shù)
22、據(jù)類型是否為空說(shuō)明XjbhChar(2)Not null學(xué)籍編號(hào)(主關(guān)鍵字)XjdmChar(8)Not null學(xué)籍名稱 政治面貌表(在本數(shù)據(jù)庫(kù)中為j_zzmmb)字段名數(shù)據(jù)類型是否為空說(shuō)明ZzmmbhChar(14)Not null政治面貌編號(hào)(主關(guān)鍵字)ZzmmChar(14)Not nul政治面貌 民族代碼表(在本數(shù)據(jù)庫(kù)中為j_mzdmb)字段名數(shù)據(jù)類型是否為空說(shuō)明MzbhChar(2)Not null民族編號(hào)(主關(guān)鍵字)MzChar(2)Not null民族 籍貫代碼表(在本數(shù)據(jù)庫(kù)中為j_jgdmb)字段名數(shù)據(jù)類型是否為空說(shuō)明JgbhChar(2)Not null籍貫編號(hào)(主關(guān)鍵字)
23、JgChar(30)Not null籍貫新建access數(shù)據(jù)庫(kù)步首先建立表本系統(tǒng)需要的表(如圖所示):第三章 程序開(kāi)發(fā)3.1 登錄窗口布置 3.1.1 登錄界面 1點(diǎn)擊開(kāi)始|程序|Sybase|powerbuilder9.0打開(kāi)系統(tǒng)主窗體,進(jìn)入PB程序設(shè)計(jì)界面,點(diǎn)擊filenew命令,打開(kāi)一個(gè)選項(xiàng)卡,建立本軟件的工作區(qū)間:2點(diǎn)擊OK按鈕,設(shè)置 workspace工作區(qū)間的名字為:j_jwglxt(教務(wù)管理系統(tǒng)的縮寫(xiě)),再點(diǎn)擊新建按鈕,在target選項(xiàng)卡,選中applicaton按鈕,點(diǎn)擊OK 并起名為j_jwglxt(與上一個(gè)擴(kuò)展名是不相同的)。3此時(shí)已建立了工作區(qū)間和application
24、 ,下面建一個(gè)窗體并保存名為j_main即為系統(tǒng)的登錄界面,登錄界面如下圖所示。4.在數(shù)據(jù)庫(kù)連接時(shí),進(jìn)入登錄界面(五福娃_falsh),有時(shí)候需要很長(zhǎng)的一段時(shí)間,所以在這里安排一個(gè)flash窗口,使軟件使用者在等待連接數(shù)據(jù)庫(kù)的枯燥的時(shí)間里制作一個(gè)動(dòng)畫(huà)窗口,使使用者不在等不急,心情快樂(lè)舒暢! (如圖為登錄界面) ( 如圖:建立flash窗口) 用戶在登錄窗口進(jìn)入主菜單前的屬性值和進(jìn)入“登錄”按鈕的clicked!事件代碼:J_main窗體的屬性設(shè)置:控件類型對(duì)象名屬性說(shuō)明WindowJ_mianTitle教務(wù)管理系統(tǒng)SinglelineSle_1textNullSinglelineSle_2Te
25、xtNullRichboxRb_1Text登錄RichboxRb_1text退出在“登錄”的clicked事件中加入以下代碼: 單擊窗中下方 標(biāo)簽,定入實(shí)例變量Boolean user_auth,login_name在單擊layout標(biāo)簽輸入:Open(j_falsh) /打開(kāi)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ù)庫(kù)失?。≌?qǐng)重新連接或檢查是否正確!”) 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(“提示”, “用戶名不正確,請(qǐng)重新輸入!”) Sle_info.textcolor=red /使文本框變成紅色 If login_time3 t
27、hen Messagebox(“提示”, “用戶名不正確,請(qǐng)重新輸入!”) Sle_1.text=“” Sle_2.text=“” Sle_1.setfocus( )Else Messagebox(“提示”,你無(wú)權(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(“提示”, “密碼不正確,請(qǐng)重試!”) Sle_info.textcolor=red If login_time3 then Sle_info.text=“密碼不正確,請(qǐng)重新輸入!” Close(j_falsh) End if End if End if End if 在“退出”按鈕的clicked事件中加入代碼: Close(parent)3.1.2創(chuàng)建系統(tǒng)主菜單: 選擇file|new菜單命令,的彈出的對(duì)話框中,選中PB object選項(xiàng)卡,然后選擇menu對(duì)象,單擊OK按鈕,創(chuàng)建一個(gè)菜單名為j_menu,如下圖所示:3.2 基礎(chǔ)信
29、息查詢3.2.1 系部信息查詢界面:1依次打開(kāi)其他代碼打開(kāi)表單窗口(如下圖所示): 在窗體w_xbxx中定義實(shí)例變量: Integer il_row,il_rowcount /當(dāng)前行和記錄總數(shù) String is_sql, /數(shù)據(jù)窗口的dw_1原始語(yǔ)法2在窗體中打開(kāi)open事件并加入以下代碼,將數(shù)據(jù)窗口連接到數(shù)據(jù)庫(kù),并得到數(shù)據(jù)窗口dw_1的原始語(yǔ)法,為后面查詢作準(zhǔn)備。 (如圖為創(chuàng)建系部信息查詢的數(shù)據(jù)窗口) Dw_1.settransobject(sqlca) /連接數(shù)據(jù)庫(kù) Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語(yǔ)法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+”系部編號(hào) 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班級(jí)信息查詢: 如下圖所示圖片:1 在選擇file|new菜單命令,建立一個(gè)新的窗體,保存名為j_bjxx,在窗體的open事件中加入以下代碼: Dw_1.settransobject(sqlca) /連接數(shù)據(jù)庫(kù) Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語(yǔ)法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+”班級(jí)編號(hào) 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=”年級(jí) like”+ls_nj+” Else Ls_select=ls_select+”and 年級(jí) like”+ls_nj” End ifEnd if If not isnull(ls_njmc) and ls_njmc” then Ls_njmc=”%”+ls_njmc+”%” If ls_select=” thenls_select=”班級(jí)名稱 like”+ls_njmc+”else ls
35、_select=ls_select+”and 班級(jí)名稱 like”+ls_njmc+”end if end if / 獲得SQL的原始語(yǔ)法If ls_select ” then Ls_select=is_sql+”where”+ls_selectElse Ls_select=is_sqlEnd if Dw_1.setsqlselect(ls_select) /重新連接數(shù)據(jù)庫(kù) il_rowcount =dw_1.retrieve( ) /重新檢索數(shù)據(jù)3.2.3學(xué)生信息查詢: 1新建一個(gè)窗體保存名為j_xsxx,其如圖所示: 2在窗體的open事件中加入以下代碼: Dw_1.settransobj
36、ect(sqlca) /連接數(shù)據(jù)庫(kù) Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語(yǔ)法 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é)號(hào) 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=”年級(jí)=”+string(li_nj) Else Ls_select=ls_select+”and 年級(jí)=”+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新建一個(gè)窗體保存名為j_yxzg,其如圖所示: 2在窗體的open事件中加入以下代碼: Dw_1.settransobject(sqlca) /連接數(shù)據(jù)庫(kù) Is_sql=dw_1.getsqlselect /得到數(shù)據(jù)窗口原始語(yǔ)法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、于實(shí)例變量在前面的窗口已經(jīng)定義。在后面的窗口中可以直接引用。但根據(jù)后面的需要,也可以定義自己的變量。 String is_sqlchild,is_status2 學(xué)生選課就是學(xué)生根據(jù)學(xué)生自己的需要,選擇學(xué)習(xí)一些學(xué)習(xí)的課程,程序中需要控制學(xué)生后面的選擇的課程時(shí)間不能跟前面選課的時(shí)間有時(shí)間沖突。3 在文框 sle_xh 輸入內(nèi)容顯示學(xué)生的姓名,年級(jí),并得到學(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的打開(kāi)事件(open): Dw_1.settransobject(sqlca) Dw_2.settransobject(sqlca) Is_sql=dw_1.getsqlselect Is_sqlchild=dw_2.getsqlselec
44、t()5. 在窗口自定事件 ue_query ,在程序中查詢課程信息的很多條件,有課程拼音、課程名稱、課程編號(hào)、課程序號(hào),無(wú)論在哪個(gè)條件文本框中輸入條件后,單擊回車鍵系統(tǒng)都會(huì)自動(dò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)焦點(diǎn)在文本框時(shí),單擊回車鍵,就響應(yīng)此事件。調(diào)用窗口自定義事件,enter_1來(lái)查詢數(shù)據(jù)。如下圖所示: If key=keyenter! Then Parent.trigger(ue_query) End if 7 在按鈕cb_select 的clicked事件加入以下代碼,調(diào)用窗口的自定義事件ue_query來(lái)查詢數(shù)據(jù)窗口dw_2中課程信息的數(shù)據(jù)。 Parent.trigger(ue_query)8在查詢的clicked事件中:加入代碼,根據(jù)數(shù)據(jù)窗口dw_2選中的行得到數(shù)據(jù)。如果選中的課程的上課時(shí)間跟已經(jīng)選修的課程時(shí)間有沖突。也提示
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”) /上課時(shí)間天 Li_sjj=lds_kxh.getitemnumber(I,”sksjj”) /上課時(shí)間節(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(“提示”,”選擇的時(shí)間以前時(shí)間重疊!”) Destroy.lao.kxh Return End ifnext destroy lds_kxh; /破壞數(shù)據(jù)存儲(chǔ)/ 得到數(shù)據(jù)窗口中選擇行,并保存到需要的地方。Ls_kxh=dw_2.getitemstring(li_row,”kxh”)Ls
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 空前嚴(yán)重的資本主義世界經(jīng)濟(jì)危機(jī)講義
- 丹田降脂丸推廣策劃OTC0427教學(xué)課件
- 專業(yè)代理公司組織架構(gòu)及崗位職責(zé)
- 宮頸癌術(shù)后輔助放射治療通用PPT課件
- 家庭常用醫(yī)療器械的使用課件
- 給圖形做標(biāo)記
- 高三政治人教版一輪復(fù)習(xí)課件:課時(shí)11經(jīng)濟(jì)全球化與對(duì)外開(kāi)放共44張
- 五年級(jí)下冊(cè)英語(yǔ)Recycle1人教版課件
- 五年級(jí)上冊(cè)科學(xué)《母雞生蛋了》粵教版課件
- 二年級(jí)上冊(cè)道德與法治大家排好隊(duì)課件
- 復(fù)習(xí)課件工業(yè)革命
- 第六章組織文化
- 勤助上崗培訓(xùn)課件
- 南川中學(xué) 剪紙課件 第2課
- 華師大版九年級(jí)上冊(cè)課件:2312平行線分線段成比例