版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)生成績(jī)管理系統(tǒng)(VFP-標(biāo)準(zhǔn)化文件發(fā)布號(hào):(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KIIPAGEPAGE49摘要:學(xué)生成績(jī)管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。本文簡(jiǎn)要介紹了本學(xué)校學(xué)生成績(jī)管理的情況和系統(tǒng)的實(shí)現(xiàn)過(guò)程,闡述了課題來(lái)源,系統(tǒng)及需求分析,系統(tǒng)規(guī)劃,設(shè)計(jì)及實(shí)現(xiàn)情況。關(guān)鍵字:控件、窗體、域。Abstract:Student’sachievementadministrativesystemisatypicalinformationmanagementsystem(knowasMIS),Itsdevelopmentincludebackstagesupporterthefoundationandmaintainandfrontthetwoesrespectsofdevelopmentofapplicationprogramsofdatamainly.Astotheformerrequiresetupdataconsistencyandintegralitystrong,datasecuritykindstorehouse.Requireapplicationprogramnottobecomplete,easytousecharacteristicofwaitingforfunctionthelatter.Thistexthasrecommendedasituationofstudent’sachievementmanagementofinstituteandsystematicrealizationcoursebriefly,Havingexplainedthesubjectsource,thesystemanddemandanalyse,thesystemisplanned,Designandrealizethesituation.Keyword:Accuseofone,windowbody,land.目錄摘要 2—前言 3二課題來(lái)源 4三系統(tǒng)及需求分析 4(一)、系統(tǒng)需求 4(二)、可行性分析………… 4(三)、VFP5.0以上的中文版概述 5四系統(tǒng)規(guī)劃 6(一)、項(xiàng)目規(guī)劃 6(二)、功能框圖 7(三)、規(guī)劃數(shù)據(jù)庫(kù) 7五系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn) 9(一)、數(shù)據(jù)分析與項(xiàng)目的建立 9(二)、數(shù)據(jù)庫(kù)設(shè)計(jì) 9(三)、模塊設(shè)計(jì) 10(四)、系統(tǒng)性能測(cè)試 31六結(jié)束語(yǔ)……………31參考文獻(xiàn) 32附錄 33一前言VisualFoxPro(VFP)WindowsOLEVFP6.0、VFP7.0,它在VFP5.0OLE接、ActiveX集成、幫助系統(tǒng)制作、數(shù)據(jù)導(dǎo)入和導(dǎo)出等方面的功能?!皩W(xué)生成績(jī)管理系統(tǒng)”就是在這樣一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)管理系統(tǒng)下開(kāi)發(fā)而成的,可VFP5.0.EXEWINDOWSVFP數(shù)據(jù)庫(kù)管理就能使用該系統(tǒng)。VFP查詢與視圖,表單設(shè)計(jì),報(bào)表,工作環(huán)境的設(shè)置方法與步驟等內(nèi)容。“學(xué)生成績(jī)管理系統(tǒng)”是目前學(xué)校應(yīng)該普遍需要使用的學(xué)生管理系統(tǒng)之一,鑒于這種情況,提出問(wèn)題、分析問(wèn)題,也是我這次畢業(yè)論文設(shè)計(jì)的基本目的。二 課題來(lái)源計(jì)算機(jī)已經(jīng)成為我們學(xué)習(xí)和工作的得力助手,今天,計(jì)算機(jī)的價(jià)格已經(jīng)十分低廉,性能卻有了長(zhǎng)足的進(jìn)步。它已經(jīng)被應(yīng)用于許多領(lǐng)域,計(jì)算機(jī)之所以如此流行的原因主要有以下幾個(gè)方面:首先,計(jì)算機(jī)可以代替人工進(jìn)行許多繁雜的勞動(dòng);其次,計(jì)算機(jī)可以節(jié)省許多資源;第三,計(jì)算機(jī)可以大大的提高人們的工作效率;第四,計(jì)算機(jī)可以使敏感文檔更加安全,等等。由于我校每個(gè)學(xué)期都要進(jìn)行期終考試,每期的考試成績(jī)又要進(jìn)行登記入冊(cè),原來(lái)學(xué)校是由教務(wù)處的一位老師專門管理這件事,主要是進(jìn)行手寫登記,費(fèi)時(shí)又費(fèi)心,而且有時(shí)還出現(xiàn)很多錯(cuò)誤登記?,F(xiàn)在我校學(xué)生成績(jī)管理水平還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機(jī)制已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了許多人力和物力,在信息時(shí)代這種傳統(tǒng)的管理方法必然被計(jì)算機(jī)為基礎(chǔ)的信息管理所取代。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生成績(jī)進(jìn)行管理,具有著手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:不易出錯(cuò)、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生成績(jī)管理的效率,也是學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開(kāi)發(fā)這樣一套管理軟件成為很有必要的事情。三系統(tǒng)及需求分析(一)、系統(tǒng)需求·盡量采用學(xué)?,F(xiàn)有軟硬件環(huán)境,及先進(jìn)的管理系統(tǒng)開(kāi)發(fā)方案,從而達(dá)到充分利用學(xué)?,F(xiàn)有資源,提高系統(tǒng)開(kāi)發(fā)水平和應(yīng)用效果的目的?!は到y(tǒng)應(yīng)符合學(xué)校學(xué)生成績(jī)管理的規(guī)定,滿足對(duì)學(xué)校學(xué)生成績(jī)管理的需要,并達(dá)到操作過(guò)程中的直觀、方便、實(shí)用、安全等要求?!は到y(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開(kāi)發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)。·系統(tǒng)應(yīng)具備數(shù)據(jù)庫(kù)維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、備份等操作。通過(guò)調(diào)查,要求系統(tǒng)需要有以下功能:1、由于操作人員的計(jì)算機(jī)知識(shí)普遍較差,要求有良好的人機(jī)界面,可以存儲(chǔ)歷屆的學(xué)生成績(jī),安全、高效;2、原始數(shù)據(jù)修改簡(jiǎn)單方便;3、數(shù)據(jù)查詢方便;4、刪除數(shù)據(jù)方便簡(jiǎn)單,數(shù)據(jù)穩(wěn)定性好;5、數(shù)據(jù)計(jì)算自動(dòng)完成,盡量減少人工干預(yù);6、強(qiáng)大的報(bào)表打印功能;7、退出系統(tǒng)。(二)、可行性分析由于本系統(tǒng)管理的對(duì)象單一,且每個(gè)班級(jí)的學(xué)生數(shù)據(jù)內(nèi)容基本是一致的,涉及的計(jì)算中心過(guò)程不是很復(fù)雜。因此,比較適合于采用數(shù)據(jù)庫(kù)管理。在存儲(chǔ)量、速度方面都能滿足數(shù)據(jù)庫(kù)運(yùn)行的要求。在技術(shù)難度方面,由于有指導(dǎo)老師和相關(guān)參考文獻(xiàn),特別是網(wǎng)上資料,以及學(xué)校給我提供的各種數(shù)據(jù)要求,完全可以實(shí)現(xiàn)。VFP5.0VFP5.0Windows(三)、VFP5.0以上的中文版概述1、概述VFP5.0Windows9X/2000WindowsNT323232Internet,WWWActiveX等。VFP5.0OOP(面向?qū)ο螅┦褂昧苏嬲念?,包括繼承性,封裝性和多態(tài)性。用可視方式創(chuàng)建類、查看類及類代碼;利用表單向?qū)нM(jìn)行專業(yè)級(jí)界面設(shè)計(jì);對(duì)表關(guān)系進(jìn)行可視化查看;可OLE(Excel、Word)中的對(duì)象并使用這些軟件。通過(guò)VisualFoxPro對(duì)象和事件模型,用戶可以快速創(chuàng)建和實(shí)現(xiàn)無(wú)模式(modeless)的應(yīng)用程序;利用生成器和工具欄,開(kāi)發(fā)人員可以快速開(kāi)發(fā)應(yīng)用程序,而省去編寫大量的代碼、定義繁多的屬性??傊?,VFP5.0是一種適用于專業(yè)人員的開(kāi)發(fā)工具。2、數(shù)據(jù)庫(kù)概念的發(fā)展FoxPro2.X(.DBF)及視圖的統(tǒng),它很可能需要對(duì)不同的用戶各自創(chuàng)建一個(gè)大型的文件系統(tǒng),它包括許多FoxPro2.XVisualFoxPor非常的容易,設(shè)計(jì)人員只要為不同的用戶創(chuàng)建不同的數(shù)據(jù)庫(kù),然后在這些數(shù)據(jù)庫(kù)下建立用戶自己的表就可以很容易對(duì)每個(gè)用戶進(jìn)行區(qū)別和維護(hù)了。而且,這樣的數(shù)據(jù)庫(kù)的關(guān)系能力更加強(qiáng)大,更加穩(wěn)定可靠。3、其他新特性VisualFoxPor5.0gstextboxVisualFoxPor5.0WIASTYLE.VCXsearchclass),可以按照需要給自己的數(shù)據(jù)庫(kù)定制相應(yīng)的菜單樣和工具欄。重新設(shè)計(jì)了項(xiàng)目管理器(ProjectManager),其最簡(jiǎn)單的用途是作為一種組織工具,保存屬于特定應(yīng)用程序所有文件的列表,而且根據(jù)文件類型將這些文件進(jìn)行劃分。它所提供的多頁(yè)框界面,使對(duì)項(xiàng)目文件的添加、建立和編程更加容易。1998VFP6.0VFP5.0了項(xiàng)目的管理器、向?qū)?、生成器、查詢與視圖、OLEActiveXOFFICE四系統(tǒng)規(guī)劃(一)、項(xiàng)目規(guī)劃學(xué)生成績(jī)管理系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)應(yīng)用程序,由用戶設(shè)置模塊、數(shù)據(jù)處理模塊、成績(jī)輸入模塊、成績(jī)管理模塊、成績(jī)查詢模塊、報(bào)表打印模塊等部分組成,特規(guī)劃功能模塊如下:1、用戶設(shè)置模塊該模塊主要包括添加用戶、修改密碼和刪除用戶。2、數(shù)據(jù)處理模塊該模塊的主要功能是建立登分冊(cè)和負(fù)責(zé)錄入學(xué)生數(shù)據(jù)。(1)建立登分冊(cè):是指建立考試的名稱。(2)學(xué)生管理:主要負(fù)責(zé)錄入學(xué)生的信息,如錄入學(xué)生的學(xué)號(hào)、年級(jí)、班次、姓名和性別。由于數(shù)據(jù)量大,所以該模塊的設(shè)計(jì)也發(fā)點(diǎn)應(yīng)從方便用戶操作的角度出發(fā),如采用中英文自動(dòng)切換。3、成績(jī)輸入模塊該模塊的主要功能是負(fù)責(zé)錄入學(xué)生的成績(jī),并且可以選擇要輸入成績(jī)的科目。4、成績(jī)管理該模塊的主要功能是對(duì)學(xué)生成績(jī)自動(dòng)核算,總分、排名。5、成績(jī)查詢模塊查詢模塊是一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中所必須的模塊。方便學(xué)校對(duì)每個(gè)學(xué)生的學(xué)生成績(jī)查詢和對(duì)每個(gè)班全部學(xué)生成績(jī)的查詢。6、報(bào)表打印模塊該模塊包括打印成績(jī)和打印設(shè)置兩個(gè)子菜單。學(xué)生個(gè)人成績(jī),打印班級(jí)學(xué)生成績(jī)和打印班級(jí)平均分的報(bào)表,以便學(xué)生對(duì)平時(shí)成績(jī)的查詢及畢業(yè)入檔時(shí)學(xué)生成績(jī)打印入冊(cè)的原始憑證。安裝打印機(jī),此時(shí)應(yīng)該點(diǎn)“否”并選“忽略”,否則系統(tǒng)將會(huì)產(chǎn)生錯(cuò)誤。7、退出功能模塊退出功能模塊用于結(jié)束所有操作,退出學(xué)生成績(jī)管理系統(tǒng)。根據(jù)以上分析,本系統(tǒng)將建立以下功能模塊。用戶設(shè)置學(xué)生成績(jī)管理系統(tǒng)主界面添加用戶修改密碼刪除用戶數(shù)據(jù)處理學(xué)生管理成績(jī)輸入成績(jī)管理成績(jī)查詢打印報(bào)表打印成績(jī)頁(yè)面設(shè)置學(xué)生成績(jī)管理系統(tǒng)主界面用戶設(shè)數(shù)據(jù)處成績(jī)輸用戶設(shè)數(shù)據(jù)處成績(jī)輸成績(jī)管成績(jī)查報(bào)表打退建立登分冊(cè)(二)、功能框圖根據(jù)系統(tǒng)功能要求,可以將系統(tǒng)分解成幾個(gè)功能模塊來(lái)分別設(shè)計(jì),功能模塊如下圖:添修添修刪加改除用密用戶碼戶學(xué)打頁(yè)生印面管成設(shè)理績(jī)置(三)、規(guī)劃數(shù)據(jù)庫(kù)1、分析數(shù)據(jù)需求種有價(jià)值的信息,為決策作依據(jù)。在學(xué)生成績(jī)管理系統(tǒng)中建立的數(shù)據(jù)庫(kù)為:成績(jī)庫(kù)2、確定數(shù)據(jù)庫(kù)VFP5.0信息應(yīng)存儲(chǔ)在不同的表中,并遵循下列規(guī)則:同一信息只保存一次;防止刪除有用信息;只有在同一信息只保存一次的前提下,才能減少數(shù)據(jù)冗余性和出錯(cuò)的可能性,而是為了防止刪除有用的信息,最好的解決方法仍然是把不同主題的信息放在不同的表中。根據(jù)以上分析,學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中建立了以下幾個(gè)表:學(xué)生表、考試庫(kù)、課程表、用戶。(1)學(xué)生表①學(xué)生表的結(jié)構(gòu)。字段名類型寬度小數(shù)學(xué)號(hào)字符型11年級(jí)字符型4考號(hào)字符型8班次字符型10姓名字符型8性別字符型3②學(xué)生表的記錄。假設(shè)在學(xué)生表中輸入3條記錄,則為:學(xué)號(hào) 年級(jí) 考號(hào) 班次 姓名性別20041928
高一 12912 321 譚仲男20041086 高一 10207 321女20041553 高一 12607 321女(2)考試庫(kù)①考試庫(kù)的結(jié)構(gòu)。字段名 類型 寬度名稱 字符型 50時(shí)間 字符型 82
文淑華王俊敏小數(shù)名稱時(shí)間2004年高一期末成績(jī)200501122004年高二期末成績(jī)20050112(3)課程表①課程表的結(jié)構(gòu)。字段名 類型寬度小數(shù)科目 字符型最高分 數(shù)值型203②課程表的記錄。假設(shè)在課程表中輸入3條記錄,則為科目 最高分語(yǔ)文 115數(shù)學(xué) 98歷史(4)用戶96①用戶的結(jié)構(gòu)。字段名類型寬度小數(shù)用戶名密碼字符型字符型1616②用戶的記錄。假設(shè)在用戶中輸入2條記錄,則為:用戶名adminyxl
密碼1123456五系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)(一)、數(shù)據(jù)分析與項(xiàng)目的建立1、數(shù)據(jù)分析主要是分析各種數(shù)據(jù)的用途及相互之間的關(guān)聯(lián),分析數(shù)據(jù)的類型、數(shù)量發(fā)生頻度和使用頻度,并具體弄清楚每個(gè)數(shù)據(jù)所需的范圍和位數(shù)及來(lái)源的時(shí)間性,為數(shù)據(jù)庫(kù)、文件設(shè)計(jì)及輸出、輸入設(shè)計(jì)提供依據(jù),也為制定合理的數(shù)據(jù)處理方法提供依據(jù)。編碼是一項(xiàng)基礎(chǔ)工作,編碼必須唯一,編碼設(shè)計(jì)的目的是為了便于數(shù)據(jù)的存儲(chǔ)和檢索,提高處理的效率和精度,節(jié)省處理時(shí)間和減少存儲(chǔ)空間且方便使用。2、項(xiàng)目的建立項(xiàng)目管理器是“項(xiàng)目”二個(gè)字的含義指的就是我們想要編制的應(yīng)用程序。成名思義,項(xiàng)目管理器就是用于建立應(yīng)用程序的集成開(kāi)發(fā)環(huán)境,它幫助我們?cè)O(shè)計(jì)、修改、運(yùn)行一些應(yīng)用程序級(jí)件。為了開(kāi)發(fā)“學(xué)生成績(jī)管理系統(tǒng)”,首先就要啟動(dòng)項(xiàng)目管理器,創(chuàng)建一個(gè)新項(xiàng)目。啟動(dòng)項(xiàng)目管理器,創(chuàng)建新項(xiàng)目——學(xué)生成績(jī)管理系統(tǒng)的操作步驟是:1MicrosoftVisualFoxPro6.0“MicrosoftFoxPro”開(kāi)發(fā)環(huán)境。第2步:?jiǎn)螕簟拔募保瑔螕簟靶陆ā?,彈出“新建”窗口。?步:選中“項(xiàng)目”,單擊“新建文件”按鈕,彈出“創(chuàng)建”窗口。第4步:把所有要開(kāi)發(fā)的“學(xué)生成績(jī)管理系統(tǒng)”項(xiàng)目保存在一個(gè)文件中,本系統(tǒng)保存在E:\學(xué)生成績(jī)管理系統(tǒng)目錄下,在“項(xiàng)目文件”里輸入“學(xué)生成績(jī)管理系統(tǒng)”,作為該項(xiàng)目的文件名。在“存為類型”中選取“項(xiàng)目”,單擊“保存”按鈕,彈出“項(xiàng)目管理器”窗口。(二)、數(shù)據(jù)庫(kù)設(shè)計(jì)1、怎樣建立“學(xué)生成績(jī)管理系統(tǒng)”中的數(shù)據(jù)庫(kù)?VisualFoxPro6.0建一個(gè)新數(shù)據(jù)庫(kù)的操作步驟如下:第1步:在項(xiàng)目管理器窗口中,選中“數(shù)據(jù)”選項(xiàng)卡,單擊選中“數(shù)據(jù)庫(kù)”圖標(biāo)。第2名”框中輸入“成績(jī)庫(kù)”,作為學(xué)生成績(jī)管理的數(shù)據(jù)庫(kù)文件名,在“存為類型”欄E:學(xué)生成績(jī)管理系統(tǒng)\data第3數(shù)據(jù)庫(kù)設(shè)計(jì)窗口,并且“數(shù)據(jù)庫(kù)設(shè)計(jì)器”變?yōu)橛行?。至此,我們?chuàng)建了一個(gè)空的學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)。2、怎樣創(chuàng)建數(shù)據(jù)庫(kù)中的表?下面我們?cè)诔煽?jī)庫(kù)中創(chuàng)建學(xué)生表、考試庫(kù)、課程表、用戶。建立學(xué)生表建立學(xué)生表的操作步驟如下:第1步:在“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口的工作表中,單擊鼠標(biāo)右鍵,弱出一個(gè)“命令”菜單。第2步:?jiǎn)螕簟靶陆ū怼?,彈出“新建表”窗口。?步:?jiǎn)螕簟靶陆ū怼卑粹o,彈出“創(chuàng)建”窗口,在“保存在”框中,選中“data”文件夾,在“輸入表中”中輸入“學(xué)生表”,在“存為類型”框中,選中“表/DBF”。4.DBF”窗口,在“字段”選項(xiàng)卡中,輸入學(xué)生表每個(gè)字段的字段名、類型、寬度、小數(shù)位數(shù),完成表的結(jié)構(gòu)。6至此,在“數(shù)據(jù)庫(kù)設(shè)計(jì)器—成績(jī)庫(kù)”窗口中,可以看到創(chuàng)建了一個(gè)“學(xué)生表”。建立考試庫(kù)、用戶、課程表的操作方法跟建立學(xué)生表的操作方法相同。(三)、模塊設(shè)計(jì)1、用戶登錄窗口功能模塊顯示登錄界面(如右圖),它對(duì)操作員進(jìn)行口令驗(yàn)證,防止非法用戶進(jìn)入系統(tǒng),任意增加、修改顯示登錄界面(如右圖),它對(duì)操作員進(jìn)行口令驗(yàn)證,防止非法用戶進(jìn)入系統(tǒng),任意增加、修改和刪除數(shù)據(jù)。在選擇或輸入用戶并提供正確的密碼后,點(diǎn)“確定”按鈕即可進(jìn)入系統(tǒng),點(diǎn)“取消”放棄登錄,退出系統(tǒng)。如果不能提供正確密碼,在點(diǎn)“確定”按鈕后會(huì)有相應(yīng)提示,如果連續(xù)2、用戶設(shè)置模塊,在本模塊中了建立三個(gè)子模塊,即添加用戶、修改密碼、刪除用戶。添加用戶功能模塊。其程序代碼如下:use用戶exclpublicu1,pw1u1=allt(thisform.text1.value)pw1=allt(thisform.text2.value)ifempty(thisform.text1.value)use用戶exclpublicu1,pw1u1=allt(thisform.text1.value)pw1=allt(thisform.text2.value)ifempty(thisform.text1.value)messagebox("用戶名不能為空!",48+0,"添加新用戶")thisform.text1.setfocuselselocateforallt(用戶名)==u1iffound()messagebox("用戶名已經(jīng)存在,請(qǐng)輸入其他用戶名!",48+0,"添加新用戶")thisform.text1.setfocuselseifthisform.text2.value==thisform.text3.valuetempstr=''fori=1tolen(trim(pw1))tempchr=bitxor(asc(subs(pw1,i,1)),123)tempstr=tempstr+chr(tempchr)endfordimensionb(1,2)b[1,1]=u1b[1,2]=tempstrappendfromarraybmessagebox("成功添加新用戶!",64+0,"添加新用戶")releasethisformelsemessagebox("請(qǐng)輸入相同密碼!",48+0,"添加新用戶")thisform.text3.setfocusendifendifendifcommand2.clickreleasethisformtext3.KeyPressLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13&&mand1.clickendif修改密碼功能模塊。其程序代碼如下:LPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13mand1.clickLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13mand1.clickendifCommand1.Clickpublicuu=allt(bo1.value)tempstr=''fori=1tolen(allt(trim(thisform.text1.value)))tempchr=bitxor(asc(subs(thisform.text1.value,i,1)),123)tempstr=tempstr+chr(tempchr)endforlocateforallt(用戶名)==allt(bo1.value)and allt(密碼)==tempstriffound()doformchangepw2elseendif
messagebox("密碼有誤,請(qǐng)重新輸入!",48+0,"修改密碼")thisform.text1.setfocusCommand2.ClickreleasethisformForm1.Init*main.ole1.simpletext=this.captionuse用戶exclLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13&&mand1.clickendifLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13&&mand1.clickendifCommand1.Clickuse用戶exclpublicpwpw=allt(thisform.text1.value)ifpw==allt(thisform.text2.value)tempstr=''fori=1tolen(trim(pw))tempchr=bitxor(asc(subs(pw,i,1)),123)tempstr=tempstr+chr(tempchr)endforlocaforallt(用戶名)==allt(u)iffound() thenrepl密碼withtempstrreleasethisformmessagebox("密碼修改成功!",64+0,"修改密碼")elseendif
endifmessagebox("密碼未被確認(rèn),請(qǐng)輸入相同密碼!",48+0,"修改密碼")thisform.text2.setfocusCommand2.ClickreleasethisformForm1.Initmain.ole1.simpletext=this.captionForm1.Unloadmain.ole1.simpletext="修改密碼"releasepwreturn刪除用戶功能模塊。其程序代碼如下:main.ole1.simpletext=this.captionCombo1.InteractiveChangethisform.refreshCommand1.Clickifmain.ole1.simpletext=this.captionCombo1.InteractiveChangethisform.refreshCommand1.Clickifmessagebox("無(wú)法刪除最后一個(gè)用戶!",48+0,"刪除用戶")elsetempstr=''fori=1tolen(trim(thisform.text1.value))tempchr=bitxor(asc(subs(thisform.text1.value,i,1)),123)tempstr=tempstr+chr(tempchr)endforlocateforallt(用戶名)==allt(bo1.value)iffound()andallt(密碼)==tempstra=messagebox("確實(shí)要?jiǎng)h除此用戶嗎",32+1,"刪除用戶")ifa=1deletepackmessagebox("成功刪除用戶!",64+0,"刪除")bo1.value=""thisform.text1.value=""endifelsemessagebox("密碼有誤,請(qǐng)重新輸入!",48+0,"刪除用戶")thisform.text1.setfocusendifendifCommand1.GotFocusthis.picture=mypath+"picture\focus.bmp"Command1.LostFocusthis.picture=mypath+"picture\but.bmp"Command2.ClickreleasethisformCommand2.LostFocusthis.picture=mypath+"picture\取消.bmp"Command2.GotFocusthis.picture=mypath+"picture\focus.bmp"Text1.KeyPressLPARAMETERSnKeyCode,ifnkeycode=13mand1.clickendif3、數(shù)據(jù)處理模塊數(shù)據(jù)處理菜單下面的子菜單有:建立登分冊(cè)和學(xué)生管理。建立登分冊(cè),是指建立考試的名稱。其程序代碼如下:this.autocenter=.t.Command1.Clicksjk=allt(thisform.text1.value)ifempty(sjk)MESSAGEBOX("請(qǐng)輸入考試名稱")this.autocenter=.t.Command1.Clicksjk=allt(thisform.text1.value)ifempty(sjk)MESSAGEBOX("請(qǐng)輸入考試名稱")thisform.text1.setfocusreturnendifsjk="data\"+sjkclearsetpathtoclosedataalluseinacopy touse&sjkusejls=recc()fori=1tousegoikemu=科目ALTERTABLE(sjk)closedataallendforADD&kemun(3)ALTERTABLE(sjk)ADD總分n(4)ALTERTABLE(sjk)ADD班名n(5)ALTERTABLE(sjk)ADD校名n(5)closedataallmessagebox(sjk+"已建立",0,"成績(jī)管理")Command2.Clickusedata\考試庫(kù)filedbf=allt(thisform.text1.value)+".dbf"iffile(filedbf)thenlocaforallt(名稱)==filedbfiffound()messagebox("此考試庫(kù)己存在!",0,"成績(jī)管理")elseappeblankrepl名稱 withfiledbfelse
endif
messagebox(filedbf+"也成功添加到考試庫(kù)!",0,"成績(jī)管理")endif
messagebox("請(qǐng)先建立成績(jī)表!",0,"成績(jī)管理")thisform.text1.setfocusCommand3.Clickthisform.releaseCommand4.Clickdaan=messagebox("此操作將清空考試庫(kù)里的成績(jī)項(xiàng)目!",4+32,"ifdaan=6thenusedata\考試庫(kù)zapendif姓名和性別。其程序代碼如下:mand4.enabled=.t.gotopthisform.refreshthis.enabled=.f.mand2.enabled=.f.thisform.grid1.setfocusCommand1.Rmand4.enabled=.t.gotopthisform.refreshthis.enabled=.f.mand2.enabled=.f.thisform.grid1.setfocusCommand1.Refreshifreccount()=0this.enabled=.f.endifCommand2.Clickmand3.enabled=.t.mand4.enabled=.t.skip-1ifrecno()=1gotopthis.enabled=.f.mand1.enabled=.f.endifthisform.refreshthisform.grid1.setfocusCommand2.Refreshifreccount()=0this.enabled=.f.endifCommand3.Refreshifreccount()=0this.enabled=.f.endifCommand3.Cmand1.enabled=.t.mand2.enabled=.t.skip+1ifeof()gobottomthis.enabled=.f.mand4.enabled=.f.endifthisform.refreshthisform.grid1.setfocusCommand4.Refreshifreccount()=0this.enabled=.f.endifCommand4.Cmand1.enabled=.t.mand2.enabled=.t.gobottomthisform.refreshthis.enabled=.f.mand3.enabled=.f.thisform.grid1.setfocusCommand5.Clickdel=messagebox("清空此學(xué)生表中所有數(shù)據(jù)嗎",32+4,"修改記錄")ifdel=6thenusein學(xué)生表endif
usedata\學(xué)生表exclzapusedata\學(xué)生表shareCommand6.ClickThisform.closable=.F.del=messagebox("添加學(xué)生嗎",32+4,"添加記錄")ifdel=6xingm=allt(thisform.text1.value)xingb=bo1.valuenianj=bo2.valuebanc=allt(thisform.text3.value)if notempty(xingm)andnotempty(xingb)andnotempty(nianj)calcmax(學(xué)號(hào))toxiaohappeblankrepl姓名 withrepl性別withxingbrepl年級(jí) withrepl班次withbancrepl學(xué)號(hào)withallt(str(val(xiaoh)+1))elsemessagebox("任何一項(xiàng)不能為空!",0,"添加記錄")thisform.text1.setfocusreturnendifthisform.grid1.recordsource=""thisform.grid1.recordsource="學(xué)生表"thisform.refreshendifthisform.grid1.setfocusCommand9.Clickdel=messagebox("刪除當(dāng)前記錄嗎",32+4,"刪除記錄")ifdel=6nrec=recn()thisform.grid1.recordsource=""usein學(xué)生表usedata\學(xué)生表exclthisform.text1.value=recn()gonrecdeletepackifnrec>recn()gonrec-1elsegoendifthisform.refreshthisform.grid1.recordsource="學(xué)生表"thisform.grid1.recordsourcetype=1thisform.grid1.setfocusendifCommand9.Refreshifreccount()=0this.enabled=.f.endifCommand7.Refreshifreccount()=0this.enabled=.f.endifCommand7.ClickThisform.closable=.F.del=messagebox("修改此學(xué)生信息嗎",32+4,"修改記錄")ifdel=6xingm=allt(thisform.text1.value)xingb=bo1.valuenianj=bo2.valuebanc=allt(thisform.text3.value)xiaoh=allt(thisform.text2.value)if notempty(xingm)andnotempty(xingb)andnotempty(nianj)repl姓名 withxingmrepl性別withxingbrepl年級(jí) withrepl班次withbancrepl學(xué)號(hào)withallt(str(val(xiaoh)+1))elsemessagebox("任何一項(xiàng)不能為空!",0,"修改記錄")thisform.text1.setfocusreturnendifthisform.refreshendifthisform.grid1.setfocusThisform.refreshCombo1.Initthis.value=this.list(1)Combo2.Clickthisform.text2.value=this.valueCombo2.Initthis.value=this.list(1)Text1.GotFocusthisform.text1.value=姓名bo1.value=bo2.value=thisform.text3.value=班次thisform.text2.value=Text1.Clickthisform.text1.value=bo1.value=bo2.value=thisform.text3.value=班次thisform.text2.value=Text1.GotFocusthisform.text1.value=bo1.value=bo2.value=thisform.text3.value=班次thisform.text2.value=學(xué)號(hào)Command10.Clickdel=messagebox("此操作將更新原來(lái)所有的學(xué)號(hào)",32+4,"批量添加學(xué)號(hào)")ifnot returnendifxiaoh=allt(thisform.text4.value)numt=.t.iflen(xiaoh)<>8thenmessagebox("現(xiàn)在學(xué)號(hào)的長(zhǎng)度為"+allt(str(len(xiaoh)))+"位長(zhǎng)度必須為8位",0)returnendififsubs(xiaoh,1,1)="0"messagebox(returnendiffori=1tolen(xiaoh)ifnotISDIGIT(subs(xiaoh,i,1))numt=.f.exitendifendforifnotnumtthenmessagebox("學(xué)號(hào)必須為數(shù)字!",0)returnendifrepl allwithallt(str(val(xiaoh)+recn()-1))Text4.Initthis.value=allt(str(year(date())))+"0001"Command8.Clickreleasethisform4、成績(jī)輸入。該模塊的主要功能是負(fù)責(zé)錄入學(xué)生的成績(jī),并且可以選擇要輸入成績(jī)的科目。其程序代碼如下:Form1.Initthis.autocenter=.t.Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.ifempty(thisform.list1.value)Form1.Initthis.autocenter=.t.Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.ifempty(thisform.list1.value)",0,thisform.list1.value)returnendifsjk=mypath+"\data\"+thisform.list1.valueuse&sjkthisform.releasedoformshuru1shuru1.showCommand2.Clickthisform.releaseList1.Initclosedataallif used(thenusein考試庫(kù)endifuse"data\考試庫(kù).dbf"fori=1torecc()goithis.additem(名稱)endforthis.value=this.list(1)usein考試庫(kù)thisform.cont.setall("value",1)thisform.width=750this.autocenter=.t.*this.showwindow=2Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.thisform.cont.setall("value",1)thisform.width=750this.autocenter=.t.*this.showwindow=2Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.*closedataall*selebFOREACHoProjINthisform.objectsif upper(oProj.Name)=upper("grid1")thisform.removeobject("grid1")endifENDFORthisform.addobject("grid1","grid")thisform.grid1.visible=.f.withthisform.grid1*.recordsource=JUSTFNAME(sjk)*RecordSourceType=2.top=100.left=10.width=thisform.width-40.height=250*.column1.enabled=.f.check=""FORI=1TOTHISFORM.cont.ControlCountif check=check+""+THISFORM.cont.Controls(i).captionendifendforfori=1to.ColumnCountif.columns(i).header1.caption$check.columns(i).enabled=.t.else.columns(i).enabled=.f.endifendforendwiththisform.grid1.visible=.t.thisform.grid1.setfocusthisform.refreshmand3.enabled=.t.mand4.enabled=.t.Command2.Clickusethisform.releaseCommand3.Clickdaan=messagebox("此操作將要清空已輸入成績(jī)中的所有數(shù)據(jù)!",32+4,"清空數(shù)據(jù)")ifdaan=7 returnendifcheck="語(yǔ)文數(shù)學(xué)英語(yǔ)物理化學(xué)生物地理政治歷史"fori=1tofcount()iffiel(i)$checkthenkemu=fiel(i)replall&kemuwith0endifendforCommand4.Clickdaan=messagebox("此操作將要清空已輸入成績(jī)中的所有數(shù)據(jù),并產(chǎn)生測(cè)試數(shù)據(jù)!",32+4,"測(cè)試")ifdaan=7 returnendifcheck="語(yǔ)文數(shù)學(xué)英語(yǔ)物理化學(xué)生物地理政治歷史"fori=1tofcount()iffiel(i)$checkthenkemu=fiel(i)replall&kemuwithrand()*100endifendforCommand1.ClickCLOSEdataCommand1.ClickCLOSEdatamypath=sys(5)+sys(2003)sjk=mypath+"\data\"+thisform.list1.valueIF file(sjk)IFDATE()-FDATE(sjk)>=0tianshu=allt(str(date()-FDATE(sjk)))Message="此表修改的日期離今天有"+tianshu+"天"MESSAGEBOX(message,0)daan=MESSAGEBOX("數(shù)據(jù)庫(kù)表正確嗎(y/n)",4+32,"hao")ELSEENDIF* ENDIF
daan=6IFdaan=6ELSEENDIF
MESSAGEBOX("",0,"數(shù)據(jù)庫(kù)表不對(duì),請(qǐng)重新打開(kāi)")returnCLOSEalldataELSEENDIF
MESSAGEBOX("",0,"數(shù)據(jù)庫(kù)表不存在,請(qǐng)打開(kāi)數(shù)據(jù)庫(kù)!")returnSETexclon*closedataSETsafeoffSETtalkoffUSE&sjk &&zonghe=""fori=1tofcount()iffiel(i)$"語(yǔ)文數(shù)學(xué)英語(yǔ)物理化學(xué)生物地理歷史政治"zonghe=zonghe+"+"+fiel(i)endifendforifempty(zonghe)messagebox("沒(méi)有找到單科成績(jī)字段,請(qǐng)重新打開(kāi)數(shù)據(jù)庫(kù)!",0,"成績(jī)管elseendif
returnzonghe=allt(zonghe)zonghe=subs(zonghe,2)waitzongheREPLall總分with&zongheUSE&sjk &&下面這段程序排班名SORTon班次,總分/dtoabcdexyz_.dbfUSEabcdexyz_.dbfCOPYto&sjkUSE&sjkreplall班名with0ERASabcdexyz_.dbfGO1qsb=班次dowhile.t.N=1DOwhile.t.REPL班名withskipN=n+1IF班次<>qsbqsb=班次EXITENDIFENDDOIFeof()EXITENDIFenddo&&結(jié)束排班名&&下面排校名USE&sjkSORTon總分/dtoabcdexyz_.dbfUSEabcdexyz_.dbfREPLall校名withrecn()SORTon班次,校名to&sjkUSE&sjk&&結(jié)束排校名*wait"名次已排好!" timeout0.5messagebox("總分及名次已排好!")use&sjksharethisform.release*setdefatoc:\List1.Initclosedataallif used(thenusein考試庫(kù)endifuse"data\考試庫(kù).dbf"fori=1torecc()goithis.additem(名稱)endforthis.value=this.list(1)usein考試庫(kù)Command2.Clickthisform.release6、成績(jī)查詢。該模塊的功能是對(duì)每個(gè)學(xué)生的學(xué)生成績(jī)查詢和對(duì)每個(gè)班全部學(xué)生成績(jī)的查詢。其代碼如下:closedataallif used(closedataallif used(thenusein考試庫(kù)endifuse"data\考試庫(kù).dbf"fori=1torecc()goithis.additem(名稱)endforthis.value=this.list(1)usein考試庫(kù)Form1.Initthisform.width=750mand3.enabled=.f.Command2.Clickthisform.releaseCommand3.Clickwiththisformsql=allt(.text1.value)ifempty(sql)thenmessagebox("查詢值不能為空",0,"查詢")returnthen
endififallt(.combo2.value)="班次"orallt(.combo2.value)="姓名"sql="'"+sql+"'"elsefori=1tolen(sql)shuzi=.t.ifnotisdigit(subs(sql,i,1))thenshuzi=.f.exitendifendforifnotshuzithenmessagebox("如果科目等查詢,查詢值一定為數(shù)值",0,"查詢")
endif
endif
returnsql=.combo2.value+.combo3.value+sqlsqlch="setfilterto"+sqlsqlch1="locafor"+sqlendwithsetfilter&sqlch1ifnotfound()thenmessagebox("沒(méi)有找到,請(qǐng)重新查詢",0,setfiltertothisform.refreshreturnendif&sqlchthisform.refreshthisform.grid1.setfocusCommand4.Clickmypath=sys(5)+sys(2003)zaigrid=.f.ifempty(bo1.value)",0,bo1.value)returnendifsjk=mypath+"\data\"+bo1.valueuse&mand3.enabled=.t.mypath=sys(5)+sys(2003)zaigrid=.f.*closedataall*selebFOREACHoProjINthisform.objectsif upper(oProj.Name)=upper("grid1")thisform.removeobject("grid1")endifENDFORthisform.addobject("grid1","grid")thisform.grid1.visible=.f.withthisform.grid1*.recordsource=JUSTFNAME(sjk)*RecordSourceType=2.top=160.left=10.width=thisform.width-40.height=220*.column1.enabled=.f.check="姓名班次總分班名校名語(yǔ)文數(shù)學(xué)英語(yǔ)物理化學(xué)生物地理政治歷史"fori=1tofcount()iffiel(i)$checkbo2.additem(fiel(i))bo2.value=bo2.list(1)bo3.displayvalue=bo3.list(1)bo2.enabled=.t.bo3.enabled=.t.endforendwiththisform.grid1.visible=.t.thisform.grid1.setfocusthisform.refresh7、報(bào)表打印,包括打印成績(jī)和頁(yè)面設(shè)置兩個(gè)子菜單。Form1.Initpublicbaobiaopublictiaojianpublicksmcbaobiao="gerencj"ksmc=""fori=1tothis.controlcountForm1.Initpublicbaobiaopublictiaojianpublicksmcbaobiao="gerencj"ksmc=""fori=1tothis.controlcountthis.controls(i).enabled=.f.endforbo1.enabled=.t.mand1.enabled=.t.mand4.enabled=.t.this.autocenter=.t.Command1.ClickCLOSEdatamypath=sys(5)+sys(2003)sjk=mypath+"\data\"+bo1.valueIF file(sjk)use&sjksharesorton班次,總分/dtouseabcdexyz_ELSEENDIF
MESSAGEBOX("",0,"數(shù)據(jù)庫(kù)表不存在,請(qǐng)打開(kāi)數(shù)據(jù)庫(kù)!")returnfori=1tothisform.controlcountthisform.controls(i).enabled=.t.endforbo2.enabled=.f.ksmc=JUSTstem(sjk)Command2.Clickdayin=thisform.optiongroup1.valuedocasecasedayin=1ifempty(thisform.text1.value)messagebox("姓名不能為空",0)returnelseendif
tiaojian="姓名='"+allt(thisform.text1.value)+"'"casedayin=2ifbo2.value="全部"tiaojian="1=1"elseendif
tiaojian="班次='"+bo2.value+"'"casedayin=3tiaojian="1=1"endcaselocafor&tiaojianiffound()thensql="REPORTFORM"+baobiao+"for"+tiaojian+"PREVIEW"&sqlelseendif
messagebox("沒(méi)找到相關(guān)記錄",0,"打印")*REPORTFORM(baobiao) PREVIEWNOCONSOLECommand3.ClickIfupper(sys(102))="OFF"Messagebox("未連接打印機(jī)!",16+0,"打印")else
dayin=thisform.optiongroup1.valuedocasecasedayin=1ifempty(thisform.text1.value)messagebox("姓名不能為空",0)returnelseendifcasedayin=2
tiaojian="姓名='"+allt(thisform.text1.value)+"'"ifbo2.value="全部"tiaojian="1=1"elseendifcasedayin=3
tiaojian="班次='"+bo2.value+"'"tiaojian="1=1"endcaselocafor&tiaojianiffound()thensql="REPORTFORM"+baobiao+"for"+tiaojian+"toprintNOCONSOLE"elseendif
&sqlmessagebox("沒(méi)找到相關(guān)記錄",0,"打印")*REPORTFORM(baobiao) PREVIEWNOCONSOLEendifCombo1.Initclosedataallif used(thenusein考試庫(kù)endifuse"data\考試庫(kù).dbf"fori=1torecc()goithis.additem(名稱)endforusein考試庫(kù)this.value=this.list(1
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備抵押貸款協(xié)議范本
- 監(jiān)理責(zé)任聲明
- 弘揚(yáng)專業(yè)的決心
- 個(gè)人購(gòu)車貸款居間服務(wù)合同
- 計(jì)算機(jī)軟件采購(gòu)協(xié)議格式
- 帝爾婚慶服務(wù)合同中的保密條款
- 解除采購(gòu)合同安排
- 質(zhì)量保證書品質(zhì)第一客戶至上
- 設(shè)備采購(gòu)合同范文
- 商業(yè)物業(yè)保安合作協(xié)議
- 教育學(xué)原理項(xiàng)賢明第九章教師與學(xué)生
- 嚴(yán)禁在學(xué)校組織宗教活動(dòng)
- 2023-2024學(xué)年廣東省湛江市赤坎區(qū)某中學(xué)七年級(jí)上學(xué)期期末數(shù)學(xué)試卷及參考答案
- (完整)蘇教版小學(xué)五年級(jí)上冊(cè)數(shù)學(xué)口算練習(xí)題
- 北京市西城區(qū)2022-2023學(xué)年高三上學(xué)期期末生物試題 附解析
- 2024年云南省中考物理試題含答案
- GB/T 28569-2024電動(dòng)汽車交流充電樁電能計(jì)量
- 政府采購(gòu)評(píng)審專家考試題及答案
- 2024新能源光伏電站運(yùn)行規(guī)程
- 屋頂氣窗施工方案
- 數(shù)字化轉(zhuǎn)型與年度工作目標(biāo)計(jì)劃
評(píng)論
0/150
提交評(píng)論