基于VB的學(xué)生信息管理系統(tǒng)的開發(fā)_第1頁
基于VB的學(xué)生信息管理系統(tǒng)的開發(fā)_第2頁
基于VB的學(xué)生信息管理系統(tǒng)的開發(fā)_第3頁
基于VB的學(xué)生信息管理系統(tǒng)的開發(fā)_第4頁
基于VB的學(xué)生信息管理系統(tǒng)的開發(fā)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目錄畢業(yè)論文題目………………………2摘要…………………2正文…………………3、引言…………3管理信息系統(tǒng)的開展歷史……………3管理信息系統(tǒng)的開展方向……………3管理信息系統(tǒng)的特點(diǎn)…………………3、系統(tǒng)設(shè)計(jì)………………………4系統(tǒng)功能分析…………4系統(tǒng)功能模塊設(shè)計(jì)……………………4、數(shù)據(jù)庫(kù)設(shè)計(jì)……………………5數(shù)據(jù)庫(kù)需求分析………5數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)…………………6數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)…………………9、數(shù)據(jù)庫(kù)結(jié)構(gòu)的實(shí)現(xiàn)……………………9、學(xué)生信息管理系統(tǒng)主窗體的創(chuàng)立……………9、系統(tǒng)用戶管理模塊的創(chuàng)立……………………12、課程設(shè)置模塊的創(chuàng)立…………………15、成績(jī)管理模塊的創(chuàng)立…………………18、系統(tǒng)的實(shí)現(xiàn)……………21、系統(tǒng)的編譯………………21、總結(jié)………………………22、致謝……………………22參考文獻(xiàn)……………23附錄程序………………………24基于VB的學(xué)生信息管理系統(tǒng)的開發(fā)——學(xué)生課程及成績(jī)信息管理系統(tǒng)梁春妙【摘要】本文研究了管理信息系統(tǒng)的開展歷史、開展方向及特點(diǎn)。從而提出了學(xué)生信息管理系統(tǒng)來提高學(xué)生管理工作效率的重要性,系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、標(biāo)準(zhǔn)化和自動(dòng)化。由于我作的是學(xué)生課程的設(shè)置、修改及學(xué)生成績(jī)的輸入、修改、查詢和統(tǒng)計(jì)。重點(diǎn)介紹了其系統(tǒng),利用SQLServer2000數(shù)據(jù)庫(kù)系統(tǒng)中SQL查詢分析器實(shí)現(xiàn)該邏輯結(jié)構(gòu),使用VisualBasic來編寫數(shù)據(jù)庫(kù)系統(tǒng)的各個(gè)模塊程序。完成了各個(gè)功能模塊的創(chuàng)立后,將整個(gè)系統(tǒng)運(yùn)行并調(diào)試,最后對(duì)系統(tǒng)進(jìn)行編譯?!娟P(guān)鍵詞】管理信息系統(tǒng)數(shù)據(jù)庫(kù)查詢分析器功能模塊【Title】Theexploitureofthemanagesystemofstudent’sinformationbaseonVB——Themanagesystemofstudent’scourseandachievement【Abstract】Thisarticleresearchmanagesystem’sdevelopmenthistory、directionofdevelopmentandpeculiarity.Sowebringforwardtheessentialitythatwecanimprovetheworkefficiencybyusingthemanagesystemofstudent’sinformation.Thecollectivitymissionofsystem’sexploitationrealizationthatmanageinformationofstudentsystematization、standardizationandrobotization.Myjobisthesettingandrevampedofstudent’scourse,theinput、revamped、demandandstatisticofstudent’sachievement.Thisarticleintroduceitssystemstressly,realizationitslogicconfigurationbytheSOLdemandanalyzerfromSOLServer2000data-basesystem,compileeachmoduleformalityofthedata-basesystembyVisualBasic.Runninganddebuggingthissystemaftersetupeachfunctionmodule.Finally,translateandeditthesystem.【Keywords】TheinformationsystemofmanagerData-baseInquirerandanalyzerFunctionmodule一引言(一)、管理信息系統(tǒng)的開展歷史本文研究的是學(xué)生管理信息系統(tǒng),我們先來了解管理信息系統(tǒng)的開展歷史、應(yīng)用開展方向以及它的特點(diǎn)。管理信息系統(tǒng)就是MIS(ManagementInformationSystem),在強(qiáng)調(diào)管理方面,在強(qiáng)調(diào)信息的現(xiàn)代社會(huì)中它變得越來越普及。MIS是一門新的學(xué)科,它跨越了假設(shè)干個(gè)領(lǐng)域,比方管理科學(xué)、系統(tǒng)科學(xué)、運(yùn)籌學(xué)、統(tǒng)計(jì)學(xué)以及計(jì)算機(jī)科學(xué)。在這些學(xué)科的根底上,形成信息收集和加工的方法,從而形成一個(gè)縱橫交織的系統(tǒng)。管理信息系統(tǒng)在最初級(jí)階段是統(tǒng)計(jì)系統(tǒng),所研究的內(nèi)容是數(shù)量數(shù)據(jù)間外表的規(guī)律,它可以把數(shù)據(jù)分成較相關(guān)和較不相關(guān)的組,然后把數(shù)據(jù)轉(zhuǎn)換為信息。第二階段是數(shù)據(jù)更新系統(tǒng),其典型代表是美國(guó)航空公司于20世紀(jì)50年代建成的ASBRE預(yù)約頂票系統(tǒng)。它設(shè)有1008個(gè)頂票點(diǎn),可以存取600000個(gè)旅客記錄和27000個(gè)飛行記錄。它的操作比擬復(fù)雜,在任何一“點(diǎn)〞都可以查到某一航班是否有空座位。但從概念上來講,它只是一個(gè)數(shù)據(jù)更新系統(tǒng),比方它不能告訴你以現(xiàn)在的售票速度何時(shí)票將售完,從而采取補(bǔ)救措施。因而它也是管理信息系統(tǒng)的低級(jí)階段。第三階段是狀態(tài)報(bào)告系統(tǒng),它可以分為生產(chǎn)狀態(tài)報(bào)告、效勞狀態(tài)報(bào)告和研究狀態(tài)報(bào)告等系統(tǒng)。比方生產(chǎn)狀態(tài)報(bào)告系統(tǒng),它可以分為生產(chǎn)狀態(tài)報(bào)告、效勞狀態(tài)報(bào)告和研究狀態(tài)報(bào)告等系統(tǒng)。生產(chǎn)狀態(tài)報(bào)告系統(tǒng),它的典型代表是IBM公司的生產(chǎn)管理系統(tǒng)。狀態(tài)報(bào)告系統(tǒng)還有一種形式是數(shù)據(jù)處理系統(tǒng),它用來處理日常業(yè)務(wù)和生產(chǎn)報(bào)告,重點(diǎn)在于將手工作業(yè)自動(dòng)化。提高效率和節(jié)省人力。數(shù)據(jù)處理系統(tǒng)一般不能提供決策信息。最后的階段是決策支持系統(tǒng),它是用來輔助決策的信息系統(tǒng)。該系統(tǒng)可以方案、分析方案,審查解答和求解的誤差。它應(yīng)有較好的人機(jī)對(duì)話方式,可以和不怎么熟悉計(jì)算機(jī)的管理人員通話。它一般包括一些模型用以產(chǎn)生決策信息,但不強(qiáng)調(diào)全面的管理功能。(二)、管理信息系統(tǒng)的開展方向近20年間,管理信息系統(tǒng)的開展出現(xiàn)了3種變化:著重建立MIS系統(tǒng),使管理技術(shù)走向成熟。信息是決策的依據(jù),MIS為經(jīng)理們提供信息效勞。經(jīng)理通過MIS使其經(jīng)濟(jì)方案和具體的業(yè)務(wù)活動(dòng)聯(lián)系在一起。由于以上的變化,MIS應(yīng)用得到迅速開展。不僅大中型企業(yè)中普遍建立了自己的MIS,一些中小企業(yè)也不例外,普遍建立了公用數(shù)據(jù)網(wǎng)絡(luò),如電子郵件、電子數(shù)據(jù)交換等,尤其是近年來Internet的飛速開展,Internet技術(shù)得到應(yīng)用,為企業(yè)MIS提供了良好的支持環(huán)境。從國(guó)際技術(shù)開展趨勢(shì)看,20世紀(jì)90年代出現(xiàn)了幾種全新的管理技術(shù):BPR—企業(yè)過程重組,IDDS—智能化決策支持系統(tǒng),LeanProduction—精良生產(chǎn),AgileManufacture—靈捷制造。相應(yīng)的MIS在20世紀(jì)90年代也有了新的開展:信息綜合集成;Internet/Intranet;先進(jìn)的軟件開發(fā)工;;多媒體技術(shù)。(三)、管理信息系統(tǒng)的特點(diǎn)管理信息系統(tǒng)的組成管理信息系統(tǒng)在企業(yè)中的應(yīng)用存在三要素,這就是人、計(jì)算機(jī)和數(shù)據(jù)。人是指企業(yè)領(lǐng)導(dǎo)者、管理人員、技術(shù)人員,以及MIS建設(shè)的領(lǐng)導(dǎo)機(jī)構(gòu)和實(shí)施機(jī)構(gòu),他們?cè)谙到y(tǒng)中起主導(dǎo)作用。MIS是一項(xiàng)系統(tǒng)工程,不是只靠一些計(jì)算機(jī)開發(fā)人員就可以完成的,必須有企業(yè)管理人員,尤其是企業(yè)領(lǐng)導(dǎo)的積極參加。計(jì)算機(jī)技術(shù)是MIS得以實(shí)施的主要技術(shù)。在這些技術(shù)中,軟件開發(fā)是MIS開發(fā)的重點(diǎn)。第三個(gè)因素也不能無視。企業(yè)的管理數(shù)據(jù)是MIS正常運(yùn)行的根底。廣義地說,各項(xiàng)管理制度是MIS建設(shè)成功的根底。試想要計(jì)算一臺(tái)機(jī)床的本錢,需要按時(shí)輸入每個(gè)部件、每個(gè)零件以及每個(gè)螺釘螺帽的費(fèi)用,涉及企業(yè)的生產(chǎn)車間、采購(gòu)、庫(kù)房、工藝設(shè)計(jì)和財(cái)務(wù)等多個(gè)部門,必須有一整套管理制度做保證。管理信息系統(tǒng)的界面特點(diǎn)以通信功能作為界面設(shè)計(jì)的核心界面必須始終一致界面必須使用戶隨時(shí)掌任務(wù)的進(jìn)展情況界面必須能夠提供幫助界面友好、使用方便輸入畫面盡可能接近實(shí)際具有較強(qiáng)的容錯(cuò)功能二系統(tǒng)設(shè)計(jì)隨著學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長(zhǎng)。而對(duì)龐大的信息量,就需要有學(xué)生信息管理系統(tǒng)來提高學(xué)生管理工作的效率。通過這樣的系統(tǒng),可以做到的標(biāo)準(zhǔn)管理、科學(xué)統(tǒng)計(jì)和快速的查詢,從而減少管理方面的工作量。(一)、系統(tǒng)功能分析系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系化、標(biāo)準(zhǔn)化和自動(dòng)化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的根底上完成的。學(xué)生信息管理系統(tǒng)需要完成的功能主要有:有關(guān)學(xué)籍等信息的輸入,包括學(xué)生根本信息、所在班級(jí)、所學(xué)課程和成績(jī)等。學(xué)生信息的查詢,包括學(xué)生根本信息、所在班級(jí)、已學(xué)課程和成績(jī)等。學(xué)生信息的修改。班級(jí)管理信息的輸入,包括班級(jí)設(shè)置、年級(jí)信息等。班級(jí)管理信息的查詢。班級(jí)管理信息的修改。學(xué)校根本課程信息的輸入。根本課程信息的修改。學(xué)生課程的設(shè)置和修改。學(xué)生成績(jī)信息的輸入。學(xué)生成績(jī)信息的修改。學(xué)生成績(jī)信息的查詢。學(xué)生成績(jī)信息的統(tǒng)計(jì)。(二)、系統(tǒng)功能模塊設(shè)計(jì)對(duì)上述各項(xiàng)功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,等到如圖1-1所示的系統(tǒng)功能模塊圖。學(xué)生信息管理系統(tǒng)...學(xué)生信息管理系統(tǒng)...成績(jī)信息管理課程信息管理系統(tǒng)管理成績(jī)信息管理課程信息管理系統(tǒng)管理用戶管理成績(jī)信息統(tǒng)計(jì)密碼管理課程信息修改課程信息設(shè)置成績(jī)信息輸入成績(jī)信息修改成績(jī)信息查詢用戶管理成績(jī)信息統(tǒng)計(jì)密碼管理課程信息修改課程信息設(shè)置成績(jī)信息輸入成績(jī)信息修改成績(jī)信息查詢SHAPE2-1系統(tǒng)功能模塊圖三、數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)包括構(gòu)造和組織數(shù)據(jù)庫(kù)數(shù)據(jù)的各種概念和方法。數(shù)據(jù)庫(kù)設(shè)計(jì)分為兩方面:物理設(shè)計(jì)和邏輯設(shè)計(jì)。物理設(shè)計(jì)指SQLServer如何使用現(xiàn)有硬件。邏輯設(shè)計(jì)指數(shù)據(jù)庫(kù)結(jié)構(gòu)。數(shù)據(jù)庫(kù)在一個(gè)信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率保證數(shù)據(jù)的完整和一致。同時(shí),合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)也將有利于程序的實(shí)現(xiàn)。在設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)之前,首先要對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)目的和應(yīng)用背景進(jìn)行分析。在進(jìn)行設(shè)計(jì)目的分析時(shí),應(yīng)搞清數(shù)據(jù)庫(kù)要解決一個(gè)什么樣的問題、需要存儲(chǔ)那些數(shù)據(jù)、能夠想用戶提供那些統(tǒng)計(jì)信息、完成那些自動(dòng)化功能等。應(yīng)用背景指數(shù)據(jù)庫(kù)應(yīng)用于一個(gè)什么樣的場(chǎng)合,同樣的數(shù)據(jù)庫(kù)應(yīng)用于不同的場(chǎng)合,其特點(diǎn)和要求也不一樣。在開發(fā)數(shù)據(jù)庫(kù)之前,必須掌握一定的背景知識(shí)。(一)、數(shù)據(jù)庫(kù)需求分析對(duì)于用戶的需求,具體表達(dá)在各種信息的提供、保存、更新和查詢等方面,這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)充分滿足各種信息的輸出和輸入。我們收集根本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,為后面的具體設(shè)計(jì)打下根底。在仔細(xì)分析調(diào)查有關(guān)學(xué)生信息需要的根底上,將得到如圖3-1所示的本系統(tǒng)所處理數(shù)據(jù)流程。針對(duì)一般學(xué)生信息管理系統(tǒng)的需要,通過對(duì)學(xué)生學(xué)習(xí)過程的內(nèi)容和數(shù)據(jù)流程分析,如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):學(xué)生根本信息:包括的數(shù)據(jù)項(xiàng)有:學(xué)生學(xué)號(hào)、學(xué)生姓名、性別、出生日期、班級(jí)聯(lián)系、入校日期、家庭住址、備注等。班級(jí)信息:包括的數(shù)據(jù)項(xiàng)有:班號(hào)、所在年級(jí)、班主任姓名、所在教室等。課程根本信息:包括的數(shù)據(jù)項(xiàng)有:課程號(hào)、課程名稱、課程類別、課程描述等。課程設(shè)置信息:包括的數(shù)據(jù)項(xiàng)有:年級(jí)信息、所學(xué)課程等。學(xué)生成績(jī)信息:包括的數(shù)據(jù)項(xiàng)有:考試編號(hào)、所在班號(hào)、學(xué)生學(xué)號(hào)、學(xué)生姓名、所學(xué)課程、考試分?jǐn)?shù)等。學(xué)生注冊(cè)..學(xué)籍信息管理學(xué)生注冊(cè)..學(xué)籍信息管理成績(jī)信息輸入成績(jī)信息管理班級(jí)設(shè)置班級(jí)管理課程根本信息班級(jí)課程管理班級(jí)課程設(shè)計(jì)根本信息輸入有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項(xiàng)和數(shù)據(jù)流程,我們就能進(jìn)行下面數(shù)據(jù)庫(kù)設(shè)計(jì)。(二)、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)幾乎所有的應(yīng)用程序需要存放大量的數(shù)據(jù),并將其組織成易于讀取的格式,這種要求通??梢酝ㄟ^數(shù)據(jù)庫(kù)管理系統(tǒng)來實(shí)現(xiàn)。數(shù)據(jù)庫(kù)系統(tǒng)提供了數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)存方式的管理能力。數(shù)據(jù)庫(kù)就是一組排列成易于處理和讀取的相關(guān)信息的集合。得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下根底。這些實(shí)體包含各種具體信息,通過相互之間的作用形成數(shù)據(jù)的流動(dòng)。根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:學(xué)生實(shí)體、班級(jí)實(shí)體、年級(jí)實(shí)體、課程實(shí)體。各個(gè)實(shí)體具體的描述E-R圖如下。圖3-2為學(xué)生實(shí)體E-R圖。學(xué)....生…學(xué)生根本信息學(xué)....生…學(xué)生根本信息學(xué)生課程信息學(xué)生班級(jí)信息學(xué)生成績(jī)信息圖3-2為學(xué)生實(shí)體E-R圖圖3-3為班級(jí)實(shí)體E-R圖。班號(hào)…班班號(hào)…班…級(jí)…所在班級(jí)…班主任所在教室…圖3-4為課程實(shí)體E-R圖。課程名稱..課程編號(hào)..課程描述…課程類型…課程名稱..課程編號(hào)..課程描述…課程類型…課....程…圖3-5為年級(jí)實(shí)體E-R圖。包括班級(jí)年級(jí)名稱包括班級(jí)年級(jí)名稱設(shè)置課程年....級(jí)…實(shí)體和實(shí)體之間的關(guān)系E-R圖3-6所示考核過程學(xué)考核過程學(xué)…生…班級(jí)設(shè)置班…級(jí)…年級(jí)設(shè)置年…級(jí)…課程設(shè)置課…程…圖3-6實(shí)體之間關(guān)系E-R(三)、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)現(xiàn)在需要將上面的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為SQLServer2000數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。在上面的實(shí)體以及實(shí)體之間關(guān)系的根底上,形成數(shù)據(jù)庫(kù)中的表格以及各個(gè)表格之間的關(guān)系。學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如下面的幾個(gè)表格所示。每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。表3—1為課程根本信息表表3-1course_info課程根本信息表列名數(shù)據(jù)類型可否為空說明Course_NoINT(4)NOTNULL課程編號(hào)Course_NameCHAR(10)NULL課程名稱Course_TypeCHAR(10)NULL課程類型Course_DesCHAR(10)NULL課程描述表3-2為年級(jí)課程設(shè)置表表3-2gardecouse_info年級(jí)課程設(shè)置表格列名數(shù)據(jù)類型可否為空說明GradeCHAR(10)NULL年級(jí)Course_NameCHAR(10)NULL課程名稱表3—3為學(xué)生成績(jī)信息表表3—3result_info學(xué)生成績(jī)信息表列名數(shù)據(jù)類型可否為空說明Exam_NoCHAR(10)NOTNULL考試編號(hào)Student_IDINT(4)學(xué)生學(xué)號(hào)Student_nameCHAR(10)NULL學(xué)生姓名Class_NoINT(4)NULL學(xué)生班號(hào)Course_NameCHAR(10)NULL課程名稱resultFLOAT(8)NULL分?jǐn)?shù)表3-4為系統(tǒng)用戶表表3-4user_info系統(tǒng)用戶表列名數(shù)據(jù)類型可否為空說明User_IDCHAR(10)NOTNULL用戶名稱〔主鍵〕User_PWDCHAR(10)NULL用戶密碼User_DESCHAR(10)NULL用戶描述四、數(shù)據(jù)庫(kù)結(jié)構(gòu)的實(shí)現(xiàn)經(jīng)過前面的需求分析和概念結(jié)構(gòu)設(shè)計(jì)以后,得到數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)?,F(xiàn)在就可以在SQLServer2000數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)該邏輯結(jié)構(gòu)。這是利用SQLServer2000數(shù)據(jù)庫(kù)系統(tǒng)中的SQL查詢分析器實(shí)現(xiàn)的。創(chuàng)立這些表格的SQL語句見附錄。五、學(xué)生信息管理系統(tǒng)主窗體的創(chuàng)立前面的SQL語句在SQLServer2000中的查詢分析器執(zhí)行后,將自動(dòng)產(chǎn)生需要的所有表格。有關(guān)數(shù)據(jù)庫(kù)結(jié)構(gòu)的所有后臺(tái)工作已經(jīng)完成?,F(xiàn)在將通過學(xué)生信息管理體統(tǒng)中各個(gè)功能塊的實(shí)現(xiàn),講解如何使用VisualBasic來編寫數(shù)據(jù)庫(kù)系統(tǒng)的客戶端程序。(一)、創(chuàng)立工程工程——studet_MIS為了用VisualBasic創(chuàng)立應(yīng)用程序,應(yīng)當(dāng)使用工程。一個(gè)工程是用來建造和存放應(yīng)用程序文件的集合,它包括:跟蹤所有部件的工程文件〔.vbp〕。每個(gè)窗體的文件〔.frm〕。每個(gè)窗體的二進(jìn)制數(shù)據(jù)文件〔.frx〕,它含有窗體上的屬性數(shù)據(jù)。對(duì)含有二進(jìn)制如圖片或圖標(biāo)〕的任何.frm文件都是不可編輯的,這些文件都是自動(dòng)生的。每個(gè)類模塊的一個(gè)文件〔.cls〕,該文件是可選項(xiàng)。每個(gè)標(biāo)準(zhǔn)模塊的一個(gè)文件(.bas),該文件是可選項(xiàng)。一個(gè)或多個(gè)包含ActivexX控件的文件(.ocx),該文件是可選項(xiàng)。單個(gè)資源文件(.res),該文件是可選項(xiàng)。啟動(dòng)VsiualBasic后,單擊FileNewProject菜單,在如圖4—1所示的工程模板中StandardEXE,VisualBasic將自動(dòng)產(chǎn)生一個(gè)Form窗體,屬性都是缺省設(shè)置。這里我們刪除這個(gè)窗體,單擊FilelSaveProject菜單,將這個(gè)工程工程命名為StudentMIS。(二)、創(chuàng)立學(xué)生信息管理系統(tǒng)的主窗體VisualBasic創(chuàng)立的應(yīng)用程序可以是SDI〔單文檔界面〕和MDI〔多文檔界面〕。在SDI的程序中,每個(gè)窗體之間是獨(dú)立的。而MDI的程序中,有一個(gè)窗體是主窗體,可以包含其他的窗體,它的類型是MDIform。這個(gè)課題采用多文檔界面,這樣可以是程序更加美觀、整齊有序。圖5-1程序主窗體單擊工具欄中的“ADDMDIform〞按鈕,生成一個(gè)如圖4-2所示的窗體,屬性設(shè)置見表4-1,主菜單的設(shè)置方法將在后面介紹。表5-1主窗體及其控件屬性設(shè)置控件屬性屬性取值frmMain(form)NameFrmMainCaption學(xué)生信息管理系統(tǒng)StartUpPositonCenterScreenWindowStateMaximizedsbStatusBar(StatusBar)NameSbStatusBar在主窗體中參加狀態(tài)欄控件,可以實(shí)時(shí)反映系統(tǒng)中的各個(gè)狀態(tài)的變化。狀態(tài)欄控件需在通常的屬性窗口中設(shè)置一般屬性,還需要在特有的彈出式彩單中進(jìn)行設(shè)置。選中狀態(tài)控件,單擊鼠標(biāo)右鍵,選中Property彩單,出現(xiàn)如圖4—10所示的窗體。在“General〞屬性對(duì)一般屬性進(jìn)行設(shè)置,在“Panels〞屬性頁對(duì)各個(gè)文本框進(jìn)行設(shè)置,在〞Font〞屬性頁對(duì)文字體進(jìn)行設(shè)置,在〞Picture〞屬性頁可以添加圖片。圖5-2狀態(tài)欄控件特有的屬性菜單單擊InsertPanel按鈕,為狀態(tài)欄添加三個(gè)面板,設(shè)置屬性頁見表5-2。表5-2狀態(tài)欄控件中三個(gè)面板的屬性設(shè)置面板屬性屬性取值1StyleSbrText2StyleSbrDate3StyleSbrTime面板1用來顯示各種文本信息,面板2用來顯示當(dāng)前日期,面板3用來顯示當(dāng)前時(shí)間。(三)、創(chuàng)立公用模塊在VisualBasic中需要把各種數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,而且要求有些變量在不同的窗體中能夠使用,因此要?jiǎng)?chuàng)立用公用模塊來存放整個(gè)工程工程公用的函數(shù)、全局變量等。整個(gè)工程工程中的任何地方都可以調(diào)用公用模塊中的函數(shù)、變量,這樣可以極大地提高代碼的效率,給編程人員帶來方便。在工程資源管理器中為工程添加一個(gè)Module,保存為Module1.bas。下面就可以開始添加需要的代碼了。由于系統(tǒng)中各個(gè)功能模塊都將頻繁使用數(shù)據(jù)庫(kù)中的各種數(shù)據(jù),因此需要一個(gè)公用的數(shù)據(jù)操作函數(shù),用以執(zhí)行各種SQL語句。添加函數(shù)ExecuteSQL,編程代碼見附錄〔創(chuàng)立公用模塊〕。ExecuteSQL函數(shù)有兩個(gè)參數(shù):SQL和MsgString。其中SQL用來存放需要執(zhí)行的語句,MsgString用來返回執(zhí)行的提示信息。函數(shù)執(zhí)行時(shí),首先判斷SQL語句中包含的內(nèi)當(dāng)執(zhí)行查詢操作時(shí),ExecuteSQL函數(shù)將返回一個(gè)與函數(shù)同名的記錄集對(duì)象〔Recordset〕,有滿足條件的記錄包含在對(duì)象中;當(dāng)執(zhí)行如刪除、更新、添加等操作時(shí),不返回記錄集對(duì),在ExecuteSQL函數(shù)中使用了ConnectString函數(shù),這個(gè)函數(shù)用來連接數(shù)據(jù)庫(kù),這兩個(gè)函數(shù)在后面中也將頻繁使用,因?yàn)樗鼈儗?duì)任何數(shù)據(jù)庫(kù)連接都是有效的。由于學(xué)生信息管理系統(tǒng)啟動(dòng)后,需要對(duì)用戶進(jìn)行判斷。如果登錄者是授權(quán)用戶,將進(jìn)入系統(tǒng),否那么將停止程序的執(zhí)行。這個(gè)判斷需要在系統(tǒng)運(yùn)行的最初進(jìn)行,因此將代碼放在公用模塊中。過程Main將在系統(tǒng)啟動(dòng)時(shí)首先執(zhí)行,這就保證對(duì)用戶的管理。六系統(tǒng)用戶管理模塊的創(chuàng)立系統(tǒng)用戶管理模塊主要實(shí)現(xiàn):用戶登錄。添加用戶。修改用戶密碼。錄窗體的創(chuàng)立系統(tǒng)啟動(dòng)后,將首先出現(xiàn)如圖6-1所示的用戶登錄窗體,用戶首先輸入用戶名,然后輸入密碼。單擊確定后如果用戶三次輸入密碼不正確,將退出程序。圖6-1用戶登錄窗體用戶登錄窗體中放置了兩個(gè)文本框〔TextBox〕,用來輸入用戶名和用戶密碼;兩個(gè)按鈕〔CommandButton〕用來確定或者取消登錄;四個(gè)標(biāo)簽〔Label〕用來標(biāo)示窗體的信息??丶膶傩栽O(shè)置見表6-1。表6-1登錄窗體中各個(gè)控件的屬性設(shè)置控件屬性屬性取值FrmLogi(form)NamefrmLoginCaprtion登錄StartUpPositonCenterScreenWindowStateNomaltxtUserNameNameNomaltxtPasswordNametztPasswordPasswordChar*cmdOKNameCmdOKCaption確定cmdCancelNameCmdCancelCaption取消Label1Caption學(xué)生管理信息系統(tǒng)Label2Caption用戶名Label3Caption用戶密碼Label4Caption版權(quán)提供:LLSoftwareCorp.文本框txtPassword的PasswordChar屬性是用指定字符來掩蓋用戶輸入的密碼。為窗體定義全局變量OK,用來判斷登錄是否成功;定義miCount,用來記載輸入密碼的次數(shù)。并且在載入窗體時(shí)初始化這兩個(gè)全局變量,OptionExplicit是用來規(guī)定所有變量使用前必須定義。這樣可以防止由于輸入錯(cuò)誤而產(chǎn)生的新變量。當(dāng)用戶輸入完用戶名和用戶密碼,單擊該按鈕,將觸發(fā)按鈕cmdOK的Click事件。用戶如果沒有輸入用戶名和用戶密碼,將出現(xiàn)消息框提示。如果輸入的用戶名在表格中沒有找到,將提示重新輸入用戶名,文本框txtUserName將重新獲得輸入焦點(diǎn)。用戶輸入的密碼不正確,文本框txtPassword將重新獲得輸入焦點(diǎn)。用戶登錄成功,全OK將被賦值為True;一旦三次輸入密碼均不正確,全局變量OK將被賦值為False??熘械腗ain過程將根據(jù)OK的值決定是退出,或者進(jìn)入系統(tǒng)。如果用戶取消登錄,單擊cmdCancel按鈕,將觸發(fā)按鈕的Click事件。添加用戶窗體的創(chuàng)立進(jìn)入系統(tǒng)后,選擇菜單“系統(tǒng)/添加用戶〞就可以添加用戶,出現(xiàn)如圖6-2所示的添加用戶窗體。在這個(gè)窗體中放置了3個(gè)文本框,用來輸入用戶名和密碼;兩個(gè)按鈕用來確定是否添加用戶;3個(gè)標(biāo)簽用來標(biāo)示文本框的提示。這些控件屬性的設(shè)置見表6-2所示。用戶需要兩次輸入密碼,用來確保輸入密碼的正確。用戶輸入信息完畢,單擊cmdOK按鈕將觸發(fā)Clidk事件。系統(tǒng)將首先查詢數(shù)據(jù)庫(kù)中與新建用戶名相同的記錄,如果有相同提示用戶重新輸入用戶。當(dāng)確定數(shù)據(jù)庫(kù)中沒有相同的用戶名,并且兩次輸入密碼一樣時(shí)將把該條記錄添加到數(shù)據(jù)庫(kù)中。如果輸入密碼為空時(shí),那么顯示“密碼不能為空!〞,單擊cmdCancel按鈕將會(huì)取消添加用戶的操作。圖6-2添加用戶窗體表6-2添加用戶窗體中各個(gè)控件的設(shè)置控件屬性屬性取值FrmAdduser(Form)NamefrmAdduserCaption添加用戶StartUpPossitonCenterScreenWindowStateNomalTxtUserNameNameTxtUserNameTxtPassword1NameTxt{asswprd1PasswordChar*TxtPassword2NameTxtPassword2PasswordChar*CmdOKNameCmdOKCaption確定CmdCancelNameCmdCanelCaption取消Label1Caption請(qǐng)輸入用戶名Label2Caption請(qǐng)輸入密碼Label3Caption請(qǐng)確認(rèn)密碼〔三〕修改用戶密碼窗體的創(chuàng)立為了方便用戶較容易記密碼,用戶可以對(duì)系統(tǒng)修改自己的密碼,選擇菜單“系統(tǒng)修改密碼〞,出現(xiàn)如圖6-3所示的窗體。在這個(gè)窗體中放置了兩個(gè)文本框,用來輸入密碼;兩個(gè)按鈕用來確定是否修改密碼;兩個(gè)標(biāo)簽用來標(biāo)示文本框的內(nèi)容。這些控件屬性的設(shè)置見表6-3圖6-3修改密碼窗體兩次輸入密碼后,單擊cmdOK按鈕,將觸發(fā)事件判斷是否修改密碼,當(dāng)兩次輸入密碼一致時(shí),數(shù)據(jù)庫(kù)中的記錄將更新。不一致時(shí)出現(xiàn)“密碼輸入密碼不正確!〞如果要取消修改密碼時(shí),單擊cmdCanel按鈕即可。表6-3修改用戶密碼窗體中各個(gè)控件的屬性設(shè)置控件屬性屬性取值FrmModifyuserinfo(Form)NamefrmAdduserCaption修改密碼StartUpPossitonCenterScreenWindowStateNomalTxtPassword1NameTxt{asswprd1PasswordChar*TxtPassword2NameTxtPassword2PasswordChar*CmdOKNameCmdOKCaption確定CmdCancelNameCmdCanelCaption取消Label2Caption請(qǐng)輸入密碼Label3Caption請(qǐng)確認(rèn)密碼七、程設(shè)置模塊的創(chuàng)立課程設(shè)置模塊主要實(shí)現(xiàn)如下功能:修改課程信息。設(shè)置年級(jí)課程?!惨弧?、修改課程信息窗體的創(chuàng)立選擇“課程設(shè)置/修改課程信息〞菜單,將出現(xiàn)如圖7-1所示的窗體。窗體中各個(gè)控件的屬性見表7-2圖7-1修改課程信息窗體“查看課程信息〞框架中的4個(gè)按鈕用來移動(dòng)的數(shù)據(jù)集中記錄的位置,需要將記錄集對(duì)象定義為全局變量,程序在窗體載入時(shí)自動(dòng)參加各條記錄,由于程序中各處需要顯示數(shù)據(jù),所以需要定義函數(shù)ViewData。單擊“第一條記錄〞按鈕時(shí),將顯示第一條記錄,單擊“最后一條記錄〞按鈕時(shí),將顯示最后一條記錄,單擊“下一條記錄〞按鈕時(shí),將顯示下一條記錄,單擊“上一條記錄〞按鈕時(shí),將顯示上一條記錄,程序后面很多地方都將用到類似的查看信息的方法,后面就不重復(fù)了。“修改課程信息〞框架中的4個(gè)按鈕用來修改數(shù)據(jù)集中的記錄,單擊“修改記錄〞按扭,將進(jìn)入到修改狀態(tài)。窗體中各個(gè)控件的屬性見表7-1表7-1修改課程窗體中各個(gè)控件的屬性設(shè)置控件屬性屬性取值FrmModifycourseinfo(Form)FrmModifycourseinfo(Form)NamefrmModifycourseinfoCaption修改密碼MDIChildTrueCmdFirstNamecmdOKCaption第一條記錄CmdPreviousNameTxtPassword2Caption上一條記錄CmdNextNameCmdOKCaption下一條記錄CmdLastNameCmdCanelCaption最后一條記錄CmdEditNameCmdEditCaption修改記錄CmdUpdateNamecmdUpdateCaption更新記錄CmdCancelNamecmdCancelCaption取消修改記錄CmdDeleteNameCmdDeleteCaption刪除記錄Frame1Caption查看課程信息txtCoursenoNametxtClassnotxtCoursenaemNameTxtCoursenaemComboCoursetypeNameComboCoursetypetxtcoursedesNametxtcoursedesLabel1Caption課程編號(hào)Label2Caption課程名稱Label3Caption課程類型Label4Caption課程描述Frame2Caption修改課程信息〔三〕設(shè)置年級(jí)課程窗體的創(chuàng)立選擇菜單“課程設(shè)置/設(shè)置年級(jí)課程〞,將出現(xiàn)如圖7-2所示的窗體。圖7-2設(shè)置年級(jí)課程窗體窗體各個(gè)控件的屬性設(shè)置見表7-2表7-2修改課程信息中各個(gè)控件的屬性設(shè)置控件屬性屬性取值FrmModifycourseinfo(Form)NamefrmModifycourseinfoCaption設(shè)置年級(jí)課程MDIChildTrueCombogradeNamecombogradeListallcourse(listbox)NamelistallcourseListselectcourse(listbox)NamelistselectcourseCmdSetNamecmdsetCaption設(shè)置課程CmdModifyNamecmdModifyCaption確認(rèn)設(shè)置CmdAddNameCmdEditCaption-CmdDeleteNameCmdDeleteCaption--Label1Caption選擇年級(jí)Label2Caption所有課程Label3Caption已經(jīng)選擇課程程序開始運(yùn)行后,選擇年級(jí),將在“已經(jīng)選擇課程〞列表框中顯示內(nèi)容。單擊“年級(jí)〞下拉式文本框,將觸發(fā)Click事件顯示所選擇年級(jí)的課程,程序根據(jù)選擇的年級(jí)查詢獲得相應(yīng)的信息,并顯示在列表框中。單擊“設(shè)置課程〞按鈕,將進(jìn)入設(shè)置狀態(tài),“所有課程〞列表框?qū)@示所有課程。列表框的ListIndex屬性用來指示當(dāng)前選擇項(xiàng),-1說明沒有被選中的數(shù)據(jù)項(xiàng)。單擊“確認(rèn)設(shè)置〞按鈕,將課程設(shè)置數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,單擊“退出課程設(shè)置〞按鈕將退出程序。八成績(jī)管理模塊的創(chuàng)立成績(jī)管理模塊主要實(shí)現(xiàn)如下功能添加成績(jī)信息。修改成績(jī)信息。查詢成績(jī)信息。統(tǒng)計(jì)成績(jī)信息。加成績(jī)信息窗體的創(chuàng)立選擇“成績(jī)管理/添加成績(jī)信息〞菜單,將出現(xiàn)如圖8-1所示的窗體。圖8-1添加成績(jī)信息窗體窗體中各個(gè)控件的屬性設(shè)置見表8-1表8-1添加成績(jī)信息窗體中各個(gè)控件的屬性設(shè)置控件屬性屬性取值FrmModifycourseinfo(Form)NamefrmAddresultCaption添加成績(jī)信息MDIChildTrueCmdOKNamecmdOKCaption確定添加CmdCancelNameCmdCancelCaption退出添加comboExamtypeNamecomboExamtypecomboClassnoNametxtClassnocomboCourseNamecomboCoursetxtResultNametxtResultcomboSIDNamecomboSIDtxtNameNametxtNameLabel1Caption考試編號(hào)Label2Caption選擇班號(hào)Label3Caption選擇學(xué)號(hào)Label4Caption姓名Label5Caption選擇課程Label6Caption分?jǐn)?shù)選擇班級(jí)后,將觸發(fā)Click事件,學(xué)號(hào)的文本框中自動(dòng)參加相關(guān)班級(jí)的所有學(xué)號(hào),單擊“確認(rèn)添加〞按鈕,將輸入內(nèi)容添加到數(shù)據(jù)庫(kù)中。單擊“取消添加〞按鈕,將輸入的內(nèi)容刪除?!捕?、修改成績(jī)管理信息窗體的創(chuàng)立選擇“成績(jī)管理修改成績(jī)信息〞菜單,將出現(xiàn)如圖8-2所示的窗體。圖8-2修改成績(jī)信息窗體窗體中各個(gè)控件的屬性設(shè)置見表8-2表8-2修改成績(jī)信息窗體中各個(gè)控件的屬性設(shè)置控件屬性屬性取值FrmModifycourseinfo(Form)NamefrmModifycourseinfoCaption修改密碼MDIChildTrueCmdFirstNamecmdOKCaption第一條記錄CmdPreviousNameTxtPassword2Caption上一條記錄CmdNextNameCmdOKCaption下一條記錄CmdLastNameCmdCanelCaption最后一條記錄CmdEditNameCmdEditCaption修改記錄CmdUpdateNamecmdUpdateCaption更新記錄CmdCancelNamecmdCancelCaption取消修改記錄CmdDeleteNameCmdDeleteCaption刪除記錄Frame1Caption查看成績(jī)信息comboTestnoNamecomboTestnocomboClassnoNamecomboClassnocomboNoNameComboNotxtNameNametxtNamecomboCourseNamecomboCoursetxtResultNametztResultFrame2Caption修改成績(jī)信息Label1Caption考試編號(hào)Label2Caption選擇班級(jí)Label3Caption選擇學(xué)號(hào)Label4Caption姓名Label5Caption選擇課程Label6Caption輸入分?jǐn)?shù)“查看成績(jī)信息〞框架中的4個(gè)按鈕用來移動(dòng)的數(shù)據(jù)集中記錄的位置,需要將記錄集對(duì)象定義為全局變量,程序在窗體載入時(shí)自動(dòng)參加各條記錄,由于程序中各處需要顯示數(shù)據(jù),所以需要定義函數(shù)ViewData。單擊“第一條記錄〞按鈕時(shí),將顯示第一條記錄,單擊“最后一條記錄〞按鈕時(shí),將顯示最后一條記錄,單擊“下一條記錄〞按鈕時(shí),將顯示下一條記錄,單擊“上一條記錄〞按鈕時(shí),將顯示上一條記錄,程序后面很多地方都將用到類似的查看信息的方法,后面就不重復(fù)了?!靶薷某煽?jī)信息〞框架中的4個(gè)按鈕用來修改數(shù)據(jù)集中的記錄,單擊“修改記錄〞按扭,將進(jìn)入到修改狀態(tài)?!踩巢樵兂煽?jī)信息窗體的創(chuàng)立查詢成績(jī)信息窗體的創(chuàng)立方法與上面的窗體創(chuàng)立方法相同。選擇“成績(jī)管理/查詢成績(jī)信息〞菜單,將出現(xiàn)查詢信息的窗體,設(shè)置窗體中各個(gè)控件的屬性。(四)統(tǒng)計(jì)成績(jī)信息窗體的創(chuàng)立選擇“成績(jī)管理/統(tǒng)計(jì)成績(jī)信息〞菜單,將出現(xiàn)統(tǒng)計(jì)信息的窗體,設(shè)置窗體中各個(gè)控件的屬性。把成績(jī)統(tǒng)計(jì)出來并排好名次,然后編寫程序代碼。九、系統(tǒng)實(shí)現(xiàn)完成以上各個(gè)功能模塊的創(chuàng)立后,當(dāng)啟動(dòng)該系統(tǒng)時(shí),首先出現(xiàn)登錄窗口。在窗口的文本框中輸入用戶名和密碼,如果用戶三次輸入密碼不正確,將退出該程序。如果進(jìn)入系統(tǒng)。出現(xiàn)學(xué)生信息管理系統(tǒng)的主窗體。選擇“系統(tǒng)/添加用戶〞會(huì)出現(xiàn)添加用戶窗口,輸入用戶名和密碼,并對(duì)密碼確實(shí)認(rèn),單擊確認(rèn)即可添加用戶。選擇“系統(tǒng)/修改用戶密碼〞當(dāng)兩次輸入密碼一致時(shí),數(shù)據(jù)庫(kù)中的記錄將更新。選擇“課程設(shè)置/修改課程〞菜單,就可以對(duì)課程進(jìn)行修改。選擇“課程設(shè)置/設(shè)置年級(jí)課程〞出現(xiàn)設(shè)置課程窗口,選擇年級(jí),通過按鈕可以增加或刪除該年級(jí)的課程,單擊“確認(rèn)設(shè)置〞按鈕,將課程設(shè)置數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。單擊“退出課程設(shè)置〞按鈕將退出程序。選擇“成績(jī)管理/添加成績(jī)信息〞菜單,選擇班級(jí)后,學(xué)號(hào)的文本框中自動(dòng)參加相關(guān)班級(jí)的所有學(xué)號(hào),單擊“確認(rèn)添加〞按鈕,將輸入內(nèi)容添加到數(shù)據(jù)庫(kù)中。單擊“取消添加〞按鈕,將輸入的內(nèi)容刪除。選擇“成績(jī)管理/修改成績(jī)信息〞菜單,“查看成績(jī)信息〞框架中的4個(gè)按鈕用來移動(dòng)的數(shù)據(jù)集中記錄的位置,“修改成績(jī)信息〞框架中的4個(gè)按鈕用來修改數(shù)據(jù)集中的記錄,單擊“修改記錄〞按扭,將進(jìn)入到修改狀態(tài)。選擇“成績(jī)管理/查詢成績(jī)信息〞首先選擇查詢方式,然后輸入查詢內(nèi)容。單擊“查詢〞按鈕,就可以查出成績(jī)信息。選擇“成績(jī)管理/統(tǒng)計(jì)成績(jī)信息〞,單擊“統(tǒng)計(jì)〞按鈕,即可統(tǒng)計(jì)成績(jī)。十、系統(tǒng)的編譯完成了學(xué)生信息管理系統(tǒng)的編程和調(diào)試工作,最后一步就是該系統(tǒng)的編譯。這涉及工程工程屬性的設(shè)置、可執(zhí)行應(yīng)用程序的生成。在系統(tǒng)的編譯和發(fā)行以前,設(shè)置工程工程的屬性。選擇菜單“ProjectlStudentProperties〞,將會(huì)出現(xiàn)屬性頁并對(duì)其進(jìn)行修改。最后選擇“FileMakeStudent_Mis.exe〞菜單,編譯開始。編譯完畢后,即生成了相對(duì)的可執(zhí)行文件。編譯成功后,生成可執(zhí)行文件Student_Mis.exe。需要在發(fā)行前對(duì)生成的可執(zhí)行文件進(jìn)行測(cè)試。通過測(cè)試的可執(zhí)行文件就可以發(fā)布運(yùn)行了。一個(gè)完整的學(xué)生信息管理系統(tǒng)就創(chuàng)立完畢了。十一、總結(jié)歷時(shí)六周的畢業(yè)設(shè)計(jì)終于劃上了一個(gè)圓滿的句號(hào),感慨亦多。這次畢業(yè)設(shè)計(jì)讓我穩(wěn)固了VisualBasic的程序設(shè)計(jì)以及數(shù)據(jù)庫(kù)的知識(shí),使我較系統(tǒng)、全面地了解其他相關(guān)學(xué)科的知識(shí),拓寬自己的視野。更重要的是通過親自動(dòng)手編寫程序;調(diào)試系統(tǒng);提高了自己應(yīng)用知識(shí)和動(dòng)手能力。同時(shí)也讓我感到在大學(xué)三年的理論學(xué)習(xí)中,根底理論掌握的不夠扎實(shí),在畢業(yè)設(shè)計(jì)過程中許多地方還要重新學(xué)習(xí),以至浪費(fèi)了不少珍貴的時(shí)間。但是從一無所知,到能獨(dú)立制作出一個(gè)簡(jiǎn)單的系統(tǒng),是學(xué)習(xí)的過程,也是挑戰(zhàn)自我的過程??傮w講這次畢業(yè)設(shè)計(jì)對(duì)我是受益匪淺的,它不僅讓我穩(wěn)固了大學(xué)三年所學(xué)的專業(yè)知識(shí),而且有效地提高了我獨(dú)立思考問題能力及與他人協(xié)作共同解決問題的能力。通過本次畢業(yè)設(shè)計(jì),使我積累了VisualBasic程序設(shè)計(jì)的經(jīng)驗(yàn)。對(duì)我以后從事VisualBasic程序設(shè)計(jì)的工作增添了信心。十二、致謝詞經(jīng)過了為期六周的畢業(yè)設(shè)計(jì),我學(xué)到了許多珍貴的工程實(shí)踐經(jīng)驗(yàn),并且從中感受到了作為一名工程人員的樂趣,收獲很大。在此我首先要感謝我的指導(dǎo)老師——李宏偉老師,是他把我領(lǐng)進(jìn)門,對(duì)我耐心的指導(dǎo),教給了我豐富的知識(shí),也正是從本次畢業(yè)設(shè)計(jì)開始,我深入地了解了VisualBasic程序設(shè)計(jì),并掌握了VisualBasic程序設(shè)計(jì)技術(shù)方法的一般應(yīng)用,為我將來走上工作崗位打下了堅(jiān)實(shí)的根底。參考文獻(xiàn)[1][美]Microsoft公司著.MicrosoftVisualBasic6.0ControlsReference控件參考手冊(cè)北京希望電子出版社,1999[2]段銀田,陳勇孝,郎洪VisualBasic程序設(shè)計(jì)根底北京:高等教育出版社,1999[3][美]DiannesieboldVisualBasic開發(fā)指南—SQLServer篇北京:電子工業(yè)出版社,2000[4]胡榮根VisualBasic6.0中文版數(shù)據(jù)庫(kù)和Internet編程北京:清華大學(xué)出版社1999[5]宋琦凡付敬平使用VisualBasic開發(fā)數(shù)據(jù)庫(kù)應(yīng)用軟件北京:電子工業(yè)出版社,1996[6]龔沛曾陸慰民揚(yáng)志強(qiáng)VisualBasic程序設(shè)計(jì)教程[6.0]北京:高等教育出版社2000[7]丁莉等編著VisualBasic6.0中文版編程實(shí)例詳解北京:電子工業(yè)出版社,1999附錄創(chuàng)立表格的SQL語句:〔一〕創(chuàng)立系統(tǒng)用戶表格user_InfoCREATETABLE[dbo].[user_Info1]([user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]〔二〕創(chuàng)立課程根本信息表course_InfoCREATETABLE[dbo].[course_Info]([course_No][int]NOTNULL,[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,[curse_Des][char](50)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]〔三〕創(chuàng)立年級(jí)課程設(shè)置信息表gradecourse_InfoCREATETABLE[dbo].[gradecourse_Info]([grade][char](10)COLLATEChinese_PRC_CI_ASNULL,[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]〔四〕創(chuàng)立學(xué)生成績(jī)信息表result_InfoCREATETABLE[dbo].[result_Info]([exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL[student_ID][int]NOTNULL,[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,[class_No][int]NULL,[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,[result][float]NULL)ON[PRIMARY]五、學(xué)生信息管理系統(tǒng)主窗體的創(chuàng)立〔四〕創(chuàng)立公用模塊程序:PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)DimcnnAsADODB.ConnectionDimrstAsADODB.RecordsetDimsTokens()AsStringOnErrorGoToExecuteSQL_ErrorsTokens=Split(SQL)Setcnn=NewADODB.Connectioncnn.OpenConnectStringIfInStr("INSERT,DELETE,UPDATE",UCase$(sTokens(0)))Thencnn.ExecuteSQLMsgString=sTokens(0)&"querysuccessful"ElseSetrst=NewADODB.Recordsetrst.OpenTrim&(SQL),cnn,adOpenKeyset,adLockOptisticSetExecuteSQL=rstMsgString="查詢到"&rst.RecordCount&"記錄條"EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:MsgString="查詢錯(cuò)誤:"&Err.DescriptionResumeExecuteSQL_ExitEndFunctionPublicFunctionConnectString()AsStringConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="EndFunctionPublicFunctionTesttxt(txtAsString)AsBooleanIfTrim(txt)=""ThenTesttxt=FalseElseTesttxt=TrueEndIfEndFunctionSubMian()DimfLoginAsNewFrmlogicfLogin.ShowvbModalIfNotfLogin.OKThenEndEndIfUnloadfLoginSetfMainForm=NewfrmMainfMainForm.ShowEndSubPublicUserNameAsString用戶登錄窗體的創(chuàng)立程序:OptionExplicitPublicOKAsBooleanDimimCountAsIntegerPrivateSubForm_Load()OK=Falsemicount=0EndSubPrivateSubcmdok_Click()DimtxtsSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsStringUserName=""IfTrim(txtUserName.Text="")ThenMsgBox"沒有這個(gè)用戶,請(qǐng)重新輸入用戶名!",vbOKOnly+vbExclamation,"警告"txtUserName.SetFocusElsetxtsql="select*fromuser_Infowhereuser_ID=""&txtUserName.Text&"""Setmrc=ExecuteSQL(txtsql,MsgText)Ifmrc.EOF=TrueThenMsgBox"沒有這個(gè)用戶,請(qǐng)重新輸入用戶名!",vbOKOnly+vbExclamation,"警告"txtUserName.SetFocusElseIfTrim(mrc.Fields(1))=Trim(txtPassword.Text)ThenOK=Truemrc.CloseMe.HideUserName=Trim(txtUserName.Text)ElseMsgBox"輸入密碼不正確,請(qǐng)重新輸入!",vbOKOnly+vbExclamation,"警告"txtPassword.SetFocustxtPassword.Text=""EndIfEndIfEndIfmicount=micount+1Ifmicount=3ThenMe.HideEndIfExitSubEndSubPrivateSubcmdCancel_Click()OK=FalseMe.HideEndSub添加用戶窗體的創(chuàng)立程序:PrivateSubCmdCancel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimtxtSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsStringIfTrim(Text1(0).Text)=""ThenMsgBox"請(qǐng)輸入用戶名稱!",vbOKOnly+vbExclamation,"警告"ExitSubText1(0).SetFocusElsetxtSQL="select*fromuser_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)IfTrim(mrc.Fields(0))=Trim(Text1(0))ThenMsgBox"用戶已經(jīng)存在,請(qǐng)重新輸入用戶名!",vbOKOnly+vbExclamation,"警告"Text1(0).SetFocusText1(0).Text=""Text1(1).Text=""Text1(2).Text=""ExitSubElsemrc.MoveNextEndIfWendIfTrim(Text1(1).Text)<>Trim(Text1(2).Text)ThenMsgBox"兩次輸入密碼不一樣,請(qǐng)確認(rèn)!",vbOKOnly+vbExclamation,"警告"Text1(1).SetFocusText1(1).Text=""Text1(2).Text=""Elsemrc.AddNewmrc.Fields(0)=Trim(Trim(0).Text)mrc.Fields(1)=Trim(Trim(1).Text)mrc.Updatemrc.CloseMsgBox"添加用戶成功!",vbOKOnly+vbExclamation,"添加用戶"EndIfEndIfEndSub修改用戶密碼窗體的創(chuàng)立程序:PrivateSubcmdCanel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimtxtSQL,MsgTextAsStringDimmrcAsADODB.RecordsetIfTrim(Text1(1).Text)<>Trim(Text1(2).Text)ThenMsgBox"密碼輸入不正確!",vbOKOnly+vbExclamation,"警告"Text1(1).SetFocsText1(1).Text=""ElsetxtSQL="select*fromuser_Infowhereuser_ID=""&UserName&"""Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.Fields(1)=Text1(1).Textmrc.Updatemrc.CloseMsgBox"密碼修改成功!",vbOKOnly+vbExclamation,"修改密碼"Me.HideEndIfEndSub修改課程信息窗體的創(chuàng)立程序:DimmrcAsADODB.RecordsetDimmyBookmarkAsVariantDimmccleanAsBooleanPrivateSubCmdCancel_Click()IfNotmccleanThenFrame2.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=TruetxtCourseno.Enabled=FalsetxtCoursenaem.Enabled=FalsecomboCoursetype.Enabled=Falsetxtcoursedes.Enabled=Falsemrc.Bookmark=myBookmarkCallviewDataElseMsgBox"什么都沒有修改,有什么好取消的!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubCmdDelete_click()myBookmark=mrc.Bookmarkstr2$=MsgBox("是否刪除當(dāng)前記錄?",vbOKCancel,"刪除當(dāng)前記錄")Ifstr2$=vbOKThenmrc.MoveNextIfmrc.EOFThenmrc.MoveFirstmyBookmark=mrc.Bookmarkmrc.MoveLastmrc.Deletemrc.BookmarkCallviewDataElsemyBookmark=mrc.Bookmarkmrc.MovePreviousmrc.Deletemrc.Bookmark=myBookmarkCallviewDataEndIfElsemrc.Bookmark=myBookmarkCallviewDataEndIfEndSubPrivateSubCmdEdit_Click()mcclean=FalseFrame2.Enabled=FalseCmdFirst.Enabled=FalseCmdPrevious.Enabled=FalseCmdNext.Enabled=FalseCmdLast.Enabled=FalsetxtCourseno.Enabled=TruetxtCoursenaem.Enabled=TruecomboCoursetype.Enabled=Truetxtcoursedes.Enabled=TruemyBookmark=mrc.boodmarkEndSubPrivateSubCmdFirst_Click()mrc.MoveLastCallviewDataEndSubPrivateSubCmdLast_Click()mrc.MoveLastCallviewDataEndSubPrivateSubCmdNext_Click()mrc.MoveFirstIfmrc.EOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubCmdPrevious_Click()mrc.MoveFirstIfmrc.BOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubCmdUpdate_click()DimtxtSQLAsStringDimMsgTextAsStringDimmrccAsADODB.RecordsetIfmccleanThenMsgBox"請(qǐng)先修改課程信息",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(txtCourseno.Text)ThenMsgBox"請(qǐng)輸入課程編號(hào)",vbOKOnly+vbExclamation,"警告"txtCourseno.SetFocusExitSubEndIfIfNotTesttxt(txtCoursenaem.Text)ThenMsgBox"請(qǐng)輸入課程名稱",vbOKOnly+vbExclamation,"警告"txtCoursenaem.SetFocusExitSubEndIfIfNotTesttxt(comboCoursetype.Text)ThenMsgBox"請(qǐng)選擇課程類型",vbOKOnly+vbExclamation,"警告"comboCoursetype.SetFocusExitSubEndIfIfNotTesttxt(txtcoursedes.Text)ThenMsgBox"請(qǐng)對(duì)課程進(jìn)行描述",vbOKOnly+vbExclamation,"警告"txtcoursedes.SetFocusExitSubEndIfmrc.DeletetxtSQL="select*fromstudent_Infowherestudet_ID=""&Trim(txtCourseno.Text)&"""Setmrcc=ExecuteSQL(txtCourseno,MsgText)Ifmrcc.EOF=FalseThenMsgBox"課程編號(hào)重復(fù),請(qǐng)重新輸入!",vbOKOnly+vbExclamation,"警告"mrcc.ClosetxtCourseno.SetFocusElsemrc.AddNewmrc.Fields(0)=Trim(txtCourseno.Text)mrc.Fields(1)=Trim(txtCoursenaem.Text)mrc.Fields(2)=Trim(comboCoursetype.Text)mrc.Fields(3)=Trim(txtcoursedes.Text)mrc.UpdateMsgBox"修改課程信息成功",vbOKOnly+vbExclamation,"修改課程信息"mrc.Bookmark=myBoomarkCallviewDataFrame2.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=TruetxtCourseno.Enabled=FalsetxtCoursenaem.Enabled=FalsecomboCoursetype.Enabled=Falsetxtcoursedes.Enabled=Falsemcclean=TrueEndIfEndSubPrivateSubForm_Load()DimtxtSQLAsStringDimMsgTextAsStringtxtSQL="select*fromstudent_Info"Setmrc=ExecuteSQL(txtSQL,,MsgText)mrc.MoveFirstCallviewDatamcbookmark=mrc.Bookmarkmcclean=TrueEndSubPrivateSubviewData()txtCourseno.Text=mrc.Fields(0)txtCoursenaem.Text=mrc.Fields(1)comboCoursetype.Text=mrc.Fields(2)txtcoursedes.Text=mrc.Fields(3)EndSub設(shè)置年級(jí)課程窗體的創(chuàng)立程序:PrivateSubCmdAdd_Click()IfListallcourse.ListIndex<>-1ThenListselectcourse.AddItemListallcourse.List(Listallcourse.ListIndex)EndIfEndSubPrivateSubCmdDelete_click()IfListselectcourse.ListIndex<>-1ThenListselectcourse.RemoveItemListselectcourse.ListIndexEndIfEndSubPrivateSubcmdModify_Click()DimiAsIntegerDimmrcAsADODB.RecordsetDimmrccAsADODB.RecordsetDimMsgTextAsStringDimmyBookmarkAsVariantIfNotTesttxt(comboGrade.Text)ThenMsgBox"請(qǐng)先選擇年級(jí)!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(Listselectcourse.List(0))ThenMsgBox"請(qǐng)先選擇課程!",vbOKOnly+vbExclamation,"警告"ExitSubEndIftxtSQL="select*fromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOFThenFori=1ToListselectcourse.ListCountmrc.AddNewmrc.Fields(0)=comboGrade.Textmrc.Fields(1)=Listselectcourse.List(i-1)mrc.UpdateNextimrc.CloseMsgBox"課程設(shè)置成功!",vbOKOnly+vbExclamation,"警告"Elsemrc.ClosetxtSQL="delete*fromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)txtSQL="selete*fromgradecourse_Info"Setmrcc=ExecuteSQL(txtSQL,MsgText)Fori=1ToListselectcourse.ListCountmrcc.AddNewmrcc.Fields(0)=comboGrade.Textmrcc.Fields(1)=Listselectcourse.List*(i-1)mrcc.UpdateNextimrcc.CloseMsgBox"課程設(shè)置成功!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubcmdSet_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringListallcourse.Enabled=TrueListselectcourse.Enabled=TruecmdModify.Enabled=TruetxtSQL="select*fromcourse_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)Listallcourse.AddItemmrc.Fields(1)mrc.MoveNextWendmrc.CloseflagSet=TrueEndSubPrivateSubcomboGrade_Change()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimiAsIntegerListselectcourse.CleartxtSQL="select*fromgradecourse_Infowheregrade=""&comboGrade.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)IfNotmrc.EOFThenFori=1Tomrc.RecoudCountListselectcourse.AddItemmrc.Fields(1)mrc.MoveNextNextiEndIfmrc.CloseEndSubPrivateSubCommand5_Click()UnloadMeEndSub添加成績(jī)信息窗體的創(chuàng)立:PrivateSubcomboClassno_Change()DimmrcAsADODB.Records

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論