版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
學(xué)生成績管理系統(tǒng)(VFP-標(biāo)準(zhǔn)化文件發(fā)布號:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KIIPAGEPAGE49摘要:學(xué)生成績管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點。本文簡要介紹了本學(xué)校學(xué)生成績管理的情況和系統(tǒng)的實現(xiàn)過程,闡述了課題來源,系統(tǒng)及需求分析,系統(tǒng)規(guī)劃,設(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二課題來源 4三系統(tǒng)及需求分析 4(一)、系統(tǒng)需求 4(二)、可行性分析………… 4(三)、VFP5.0以上的中文版概述 5四系統(tǒng)規(guī)劃 6(一)、項目規(guī)劃 6(二)、功能框圖 7(三)、規(guī)劃數(shù)據(jù)庫 7五系統(tǒng)設(shè)計和實現(xiàn) 9(一)、數(shù)據(jù)分析與項目的建立 9(二)、數(shù)據(jù)庫設(shè)計 9(三)、模塊設(shè)計 10(四)、系統(tǒng)性能測試 31六結(jié)束語……………31參考文獻(xiàn) 32附錄 33一前言VisualFoxPro(VFP)WindowsOLEVFP6.0、VFP7.0,它在VFP5.0OLE接、ActiveX集成、幫助系統(tǒng)制作、數(shù)據(jù)導(dǎo)入和導(dǎo)出等方面的功能。“學(xué)生成績管理系統(tǒng)”就是在這樣一個優(yōu)秀的數(shù)據(jù)庫管理系統(tǒng)下開發(fā)而成的,可VFP5.0.EXEWINDOWSVFP數(shù)據(jù)庫管理就能使用該系統(tǒng)。VFP查詢與視圖,表單設(shè)計,報表,工作環(huán)境的設(shè)置方法與步驟等內(nèi)容?!皩W(xué)生成績管理系統(tǒng)”是目前學(xué)校應(yīng)該普遍需要使用的學(xué)生管理系統(tǒng)之一,鑒于這種情況,提出問題、分析問題,也是我這次畢業(yè)論文設(shè)計的基本目的。二 課題來源計算機(jī)已經(jīng)成為我們學(xué)習(xí)和工作的得力助手,今天,計算機(jī)的價格已經(jīng)十分低廉,性能卻有了長足的進(jìn)步。它已經(jīng)被應(yīng)用于許多領(lǐng)域,計算機(jī)之所以如此流行的原因主要有以下幾個方面:首先,計算機(jī)可以代替人工進(jìn)行許多繁雜的勞動;其次,計算機(jī)可以節(jié)省許多資源;第三,計算機(jī)可以大大的提高人們的工作效率;第四,計算機(jī)可以使敏感文檔更加安全,等等。由于我校每個學(xué)期都要進(jìn)行期終考試,每期的考試成績又要進(jìn)行登記入冊,原來學(xué)校是由教務(wù)處的一位老師專門管理這件事,主要是進(jìn)行手寫登記,費時又費心,而且有時還出現(xiàn)很多錯誤登記?,F(xiàn)在我校學(xué)生成績管理水平還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機(jī)制已經(jīng)不能適應(yīng)時代的發(fā)展,因為它浪費了許多人力和物力,在信息時代這種傳統(tǒng)的管理方法必然被計算機(jī)為基礎(chǔ)的信息管理所取代。作為計算機(jī)應(yīng)用的一部分,使用計算機(jī)對學(xué)生成績進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點。例如:不易出錯、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學(xué)生成績管理的效率,也是學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣一套管理軟件成為很有必要的事情。三系統(tǒng)及需求分析(一)、系統(tǒng)需求·盡量采用學(xué)?,F(xiàn)有軟硬件環(huán)境,及先進(jìn)的管理系統(tǒng)開發(fā)方案,從而達(dá)到充分利用學(xué)?,F(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。·系統(tǒng)應(yīng)符合學(xué)校學(xué)生成績管理的規(guī)定,滿足對學(xué)校學(xué)生成績管理的需要,并達(dá)到操作過程中的直觀、方便、實用、安全等要求?!は到y(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)?!は到y(tǒng)應(yīng)具備數(shù)據(jù)庫維護(hù)功能,及時根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、備份等操作。通過調(diào)查,要求系統(tǒng)需要有以下功能:1、由于操作人員的計算機(jī)知識普遍較差,要求有良好的人機(jī)界面,可以存儲歷屆的學(xué)生成績,安全、高效;2、原始數(shù)據(jù)修改簡單方便;3、數(shù)據(jù)查詢方便;4、刪除數(shù)據(jù)方便簡單,數(shù)據(jù)穩(wěn)定性好;5、數(shù)據(jù)計算自動完成,盡量減少人工干預(yù);6、強(qiáng)大的報表打印功能;7、退出系統(tǒng)。(二)、可行性分析由于本系統(tǒng)管理的對象單一,且每個班級的學(xué)生數(shù)據(jù)內(nèi)容基本是一致的,涉及的計算中心過程不是很復(fù)雜。因此,比較適合于采用數(shù)據(jù)庫管理。在存儲量、速度方面都能滿足數(shù)據(jù)庫運行的要求。在技術(shù)難度方面,由于有指導(dǎo)老師和相關(guān)參考文獻(xiàn),特別是網(wǎng)上資料,以及學(xué)校給我提供的各種數(shù)據(jù)要求,完全可以實現(xiàn)。VFP5.0VFP5.0Windows(三)、VFP5.0以上的中文版概述1、概述VFP5.0Windows9X/2000WindowsNT323232Internet,WWWActiveX等。VFP5.0OOP(面向?qū)ο螅┦褂昧苏嬲念?,包括繼承性,封裝性和多態(tài)性。用可視方式創(chuàng)建類、查看類及類代碼;利用表單向?qū)нM(jìn)行專業(yè)級界面設(shè)計;對表關(guān)系進(jìn)行可視化查看;可OLE(Excel、Word)中的對象并使用這些軟件。通過VisualFoxPro對象和事件模型,用戶可以快速創(chuàng)建和實現(xiàn)無模式(modeless)的應(yīng)用程序;利用生成器和工具欄,開發(fā)人員可以快速開發(fā)應(yīng)用程序,而省去編寫大量的代碼、定義繁多的屬性??傊琕FP5.0是一種適用于專業(yè)人員的開發(fā)工具。2、數(shù)據(jù)庫概念的發(fā)展FoxPro2.X(.DBF)及視圖的統(tǒng),它很可能需要對不同的用戶各自創(chuàng)建一個大型的文件系統(tǒng),它包括許多FoxPro2.XVisualFoxPor非常的容易,設(shè)計人員只要為不同的用戶創(chuàng)建不同的數(shù)據(jù)庫,然后在這些數(shù)據(jù)庫下建立用戶自己的表就可以很容易對每個用戶進(jìn)行區(qū)別和維護(hù)了。而且,這樣的數(shù)據(jù)庫的關(guān)系能力更加強(qiáng)大,更加穩(wěn)定可靠。3、其他新特性VisualFoxPor5.0gstextboxVisualFoxPor5.0WIASTYLE.VCXsearchclass),可以按照需要給自己的數(shù)據(jù)庫定制相應(yīng)的菜單樣和工具欄。重新設(shè)計了項目管理器(ProjectManager),其最簡單的用途是作為一種組織工具,保存屬于特定應(yīng)用程序所有文件的列表,而且根據(jù)文件類型將這些文件進(jìn)行劃分。它所提供的多頁框界面,使對項目文件的添加、建立和編程更加容易。1998VFP6.0VFP5.0了項目的管理器、向?qū)А⑸善?、查詢與視圖、OLEActiveXOFFICE四系統(tǒng)規(guī)劃(一)、項目規(guī)劃學(xué)生成績管理系統(tǒng)是一個典型的數(shù)據(jù)庫應(yīng)用程序,由用戶設(shè)置模塊、數(shù)據(jù)處理模塊、成績輸入模塊、成績管理模塊、成績查詢模塊、報表打印模塊等部分組成,特規(guī)劃功能模塊如下:1、用戶設(shè)置模塊該模塊主要包括添加用戶、修改密碼和刪除用戶。2、數(shù)據(jù)處理模塊該模塊的主要功能是建立登分冊和負(fù)責(zé)錄入學(xué)生數(shù)據(jù)。(1)建立登分冊:是指建立考試的名稱。(2)學(xué)生管理:主要負(fù)責(zé)錄入學(xué)生的信息,如錄入學(xué)生的學(xué)號、年級、班次、姓名和性別。由于數(shù)據(jù)量大,所以該模塊的設(shè)計也發(fā)點應(yīng)從方便用戶操作的角度出發(fā),如采用中英文自動切換。3、成績輸入模塊該模塊的主要功能是負(fù)責(zé)錄入學(xué)生的成績,并且可以選擇要輸入成績的科目。4、成績管理該模塊的主要功能是對學(xué)生成績自動核算,總分、排名。5、成績查詢模塊查詢模塊是一個數(shù)據(jù)庫系統(tǒng)中所必須的模塊。方便學(xué)校對每個學(xué)生的學(xué)生成績查詢和對每個班全部學(xué)生成績的查詢。6、報表打印模塊該模塊包括打印成績和打印設(shè)置兩個子菜單。學(xué)生個人成績,打印班級學(xué)生成績和打印班級平均分的報表,以便學(xué)生對平時成績的查詢及畢業(yè)入檔時學(xué)生成績打印入冊的原始憑證。安裝打印機(jī),此時應(yīng)該點“否”并選“忽略”,否則系統(tǒng)將會產(chǎn)生錯誤。7、退出功能模塊退出功能模塊用于結(jié)束所有操作,退出學(xué)生成績管理系統(tǒng)。根據(jù)以上分析,本系統(tǒng)將建立以下功能模塊。用戶設(shè)置學(xué)生成績管理系統(tǒng)主界面添加用戶修改密碼刪除用戶數(shù)據(jù)處理學(xué)生管理成績輸入成績管理成績查詢打印報表打印成績頁面設(shè)置學(xué)生成績管理系統(tǒng)主界面用戶設(shè)數(shù)據(jù)處成績輸用戶設(shè)數(shù)據(jù)處成績輸成績管成績查報表打退建立登分冊(二)、功能框圖根據(jù)系統(tǒng)功能要求,可以將系統(tǒng)分解成幾個功能模塊來分別設(shè)計,功能模塊如下圖:添修添修刪加改除用密用戶碼戶學(xué)打頁生印面管成設(shè)理績置(三)、規(guī)劃數(shù)據(jù)庫1、分析數(shù)據(jù)需求種有價值的信息,為決策作依據(jù)。在學(xué)生成績管理系統(tǒng)中建立的數(shù)據(jù)庫為:成績庫2、確定數(shù)據(jù)庫VFP5.0信息應(yīng)存儲在不同的表中,并遵循下列規(guī)則:同一信息只保存一次;防止刪除有用信息;只有在同一信息只保存一次的前提下,才能減少數(shù)據(jù)冗余性和出錯的可能性,而是為了防止刪除有用的信息,最好的解決方法仍然是把不同主題的信息放在不同的表中。根據(jù)以上分析,學(xué)生成績管理數(shù)據(jù)庫中建立了以下幾個表:學(xué)生表、考試庫、課程表、用戶。(1)學(xué)生表①學(xué)生表的結(jié)構(gòu)。字段名類型寬度小數(shù)學(xué)號字符型11年級字符型4考號字符型8班次字符型10姓名字符型8性別字符型3②學(xué)生表的記錄。假設(shè)在學(xué)生表中輸入3條記錄,則為:學(xué)號 年級 考號 班次 姓名性別20041928
高一 12912 321 譚仲男20041086 高一 10207 321女20041553 高一 12607 321女(2)考試庫①考試庫的結(jié)構(gòu)。字段名 類型 寬度名稱 字符型 50時間 字符型 82
文淑華王俊敏小數(shù)名稱時間2004年高一期末成績200501122004年高二期末成績20050112(3)課程表①課程表的結(jié)構(gòu)。字段名 類型寬度小數(shù)科目 字符型最高分 數(shù)值型203②課程表的記錄。假設(shè)在課程表中輸入3條記錄,則為科目 最高分語文 115數(shù)學(xué) 98歷史(4)用戶96①用戶的結(jié)構(gòu)。字段名類型寬度小數(shù)用戶名密碼字符型字符型1616②用戶的記錄。假設(shè)在用戶中輸入2條記錄,則為:用戶名adminyxl
密碼1123456五系統(tǒng)設(shè)計和實現(xiàn)(一)、數(shù)據(jù)分析與項目的建立1、數(shù)據(jù)分析主要是分析各種數(shù)據(jù)的用途及相互之間的關(guān)聯(lián),分析數(shù)據(jù)的類型、數(shù)量發(fā)生頻度和使用頻度,并具體弄清楚每個數(shù)據(jù)所需的范圍和位數(shù)及來源的時間性,為數(shù)據(jù)庫、文件設(shè)計及輸出、輸入設(shè)計提供依據(jù),也為制定合理的數(shù)據(jù)處理方法提供依據(jù)。編碼是一項基礎(chǔ)工作,編碼必須唯一,編碼設(shè)計的目的是為了便于數(shù)據(jù)的存儲和檢索,提高處理的效率和精度,節(jié)省處理時間和減少存儲空間且方便使用。2、項目的建立項目管理器是“項目”二個字的含義指的就是我們想要編制的應(yīng)用程序。成名思義,項目管理器就是用于建立應(yīng)用程序的集成開發(fā)環(huán)境,它幫助我們設(shè)計、修改、運行一些應(yīng)用程序級件。為了開發(fā)“學(xué)生成績管理系統(tǒng)”,首先就要啟動項目管理器,創(chuàng)建一個新項目。啟動項目管理器,創(chuàng)建新項目——學(xué)生成績管理系統(tǒng)的操作步驟是:1MicrosoftVisualFoxPro6.0“MicrosoftFoxPro”開發(fā)環(huán)境。第2步:單擊“文件”,單擊“新建”,彈出“新建”窗口。第3步:選中“項目”,單擊“新建文件”按鈕,彈出“創(chuàng)建”窗口。第4步:把所有要開發(fā)的“學(xué)生成績管理系統(tǒng)”項目保存在一個文件中,本系統(tǒng)保存在E:\學(xué)生成績管理系統(tǒng)目錄下,在“項目文件”里輸入“學(xué)生成績管理系統(tǒng)”,作為該項目的文件名。在“存為類型”中選取“項目”,單擊“保存”按鈕,彈出“項目管理器”窗口。(二)、數(shù)據(jù)庫設(shè)計1、怎樣建立“學(xué)生成績管理系統(tǒng)”中的數(shù)據(jù)庫?VisualFoxPro6.0建一個新數(shù)據(jù)庫的操作步驟如下:第1步:在項目管理器窗口中,選中“數(shù)據(jù)”選項卡,單擊選中“數(shù)據(jù)庫”圖標(biāo)。第2名”框中輸入“成績庫”,作為學(xué)生成績管理的數(shù)據(jù)庫文件名,在“存為類型”欄E:學(xué)生成績管理系統(tǒng)\data第3數(shù)據(jù)庫設(shè)計窗口,并且“數(shù)據(jù)庫設(shè)計器”變?yōu)橛行?。至此,我們?chuàng)建了一個空的學(xué)生成績管理數(shù)據(jù)庫。2、怎樣創(chuàng)建數(shù)據(jù)庫中的表?下面我們在成績庫中創(chuàng)建學(xué)生表、考試庫、課程表、用戶。建立學(xué)生表建立學(xué)生表的操作步驟如下:第1步:在“數(shù)據(jù)庫設(shè)計器”窗口的工作表中,單擊鼠標(biāo)右鍵,弱出一個“命令”菜單。第2步:單擊“新建表”,彈出“新建表”窗口。第3步:單擊“新建表”按鈕,彈出“創(chuàng)建”窗口,在“保存在”框中,選中“data”文件夾,在“輸入表中”中輸入“學(xué)生表”,在“存為類型”框中,選中“表/DBF”。4.DBF”窗口,在“字段”選項卡中,輸入學(xué)生表每個字段的字段名、類型、寬度、小數(shù)位數(shù),完成表的結(jié)構(gòu)。6至此,在“數(shù)據(jù)庫設(shè)計器—成績庫”窗口中,可以看到創(chuàng)建了一個“學(xué)生表”。建立考試庫、用戶、課程表的操作方法跟建立學(xué)生表的操作方法相同。(三)、模塊設(shè)計1、用戶登錄窗口功能模塊顯示登錄界面(如右圖),它對操作員進(jìn)行口令驗證,防止非法用戶進(jìn)入系統(tǒng),任意增加、修改顯示登錄界面(如右圖),它對操作員進(jìn)行口令驗證,防止非法用戶進(jìn)入系統(tǒng),任意增加、修改和刪除數(shù)據(jù)。在選擇或輸入用戶并提供正確的密碼后,點“確定”按鈕即可進(jìn)入系統(tǒng),點“取消”放棄登錄,退出系統(tǒng)。如果不能提供正確密碼,在點“確定”按鈕后會有相應(yīng)提示,如果連續(xù)2、用戶設(shè)置模塊,在本模塊中了建立三個子模塊,即添加用戶、修改密碼、刪除用戶。添加用戶功能模塊。其程序代碼如下: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)存在,請輸入其他用戶名!",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("請輸入相同密碼!",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("密碼有誤,請重新輸入!",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),請輸入相同密碼!",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("無法刪除最后一個用戶!",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("確實要刪除此用戶嗎",32+1,"刪除用戶")ifa=1deletepackmessagebox("成功刪除用戶!",64+0,"刪除")bo1.value=""thisform.text1.value=""endifelsemessagebox("密碼有誤,請重新輸入!",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ù)處理菜單下面的子菜單有:建立登分冊和學(xué)生管理。建立登分冊,是指建立考試的名稱。其程序代碼如下:this.autocenter=.t.Command1.Clicksjk=allt(thisform.text1.value)ifempty(sjk)MESSAGEBOX("請輸入考試名稱")this.autocenter=.t.Command1.Clicksjk=allt(thisform.text1.value)ifempty(sjk)MESSAGEBOX("請輸入考試名稱")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,"成績管理")Command2.Clickusedata\考試庫filedbf=allt(thisform.text1.value)+".dbf"iffile(filedbf)thenlocaforallt(名稱)==filedbfiffound()messagebox("此考試庫己存在!",0,"成績管理")elseappeblankrepl名稱 withfiledbfelse
endif
messagebox(filedbf+"也成功添加到考試庫!",0,"成績管理")endif
messagebox("請先建立成績表!",0,"成績管理")thisform.text1.setfocusCommand3.Clickthisform.releaseCommand4.Clickdaan=messagebox("此操作將清空考試庫里的成績項目!",4+32,"ifdaan=6thenusedata\考試庫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é)號)toxiaohappeblankrepl姓名 withrepl性別withxingbrepl年級 withrepl班次withbancrepl學(xué)號withallt(str(val(xiaoh)+1))elsemessagebox("任何一項不能為空!",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年級 withrepl班次withbancrepl學(xué)號withallt(str(val(xiaoh)+1))elsemessagebox("任何一項不能為空!",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é)號Command10.Clickdel=messagebox("此操作將更新原來所有的學(xué)號",32+4,"批量添加學(xué)號")ifnot returnendifxiaoh=allt(thisform.text4.value)numt=.t.iflen(xiaoh)<>8thenmessagebox("現(xiàn)在學(xué)號的長度為"+allt(str(len(xiaoh)))+"位長度必須為8位",0)returnendififsubs(xiaoh,1,1)="0"messagebox(returnendiffori=1tolen(xiaoh)ifnotISDIGIT(subs(xiaoh,i,1))numt=.f.exitendifendforifnotnumtthenmessagebox("學(xué)號必須為數(shù)字!",0)returnendifrepl allwithallt(str(val(xiaoh)+recn()-1))Text4.Initthis.value=allt(str(year(date())))+"0001"Command8.Clickreleasethisform4、成績輸入。該模塊的主要功能是負(fù)責(zé)錄入學(xué)生的成績,并且可以選擇要輸入成績的科目。其程序代碼如下: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考試庫endifuse"data\考試庫.dbf"fori=1torecc()goithis.additem(名稱)endforthis.value=this.list(1)usein考試庫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("此操作將要清空已輸入成績中的所有數(shù)據(jù)!",32+4,"清空數(shù)據(jù)")ifdaan=7 returnendifcheck="語文數(shù)學(xué)英語物理化學(xué)生物地理政治歷史"fori=1tofcount()iffiel(i)$checkthenkemu=fiel(i)replall&kemuwith0endifendforCommand4.Clickdaan=messagebox("此操作將要清空已輸入成績中的所有數(shù)據(jù),并產(chǎn)生測試數(shù)據(jù)!",32+4,"測試")ifdaan=7 returnendifcheck="語文數(shù)學(xué)英語物理化學(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ù)庫表正確嗎(y/n)",4+32,"hao")ELSEENDIF* ENDIF
daan=6IFdaan=6ELSEENDIF
MESSAGEBOX("",0,"數(shù)據(jù)庫表不對,請重新打開")returnCLOSEalldataELSEENDIF
MESSAGEBOX("",0,"數(shù)據(jù)庫表不存在,請打開數(shù)據(jù)庫!")returnSETexclon*closedataSETsafeoffSETtalkoffUSE&sjk &&zonghe=""fori=1tofcount()iffiel(i)$"語文數(shù)學(xué)英語物理化學(xué)生物地理歷史政治"zonghe=zonghe+"+"+fiel(i)endifendforifempty(zonghe)messagebox("沒有找到單科成績字段,請重新打開數(shù)據(jù)庫!",0,"成績管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考試庫endifuse"data\考試庫.dbf"fori=1torecc()goithis.additem(名稱)endforthis.value=this.list(1)usein考試庫Command2.Clickthisform.release6、成績查詢。該模塊的功能是對每個學(xué)生的學(xué)生成績查詢和對每個班全部學(xué)生成績的查詢。其代碼如下:closedataallif used(closedataallif used(thenusein考試庫endifuse"data\考試庫.dbf"fori=1torecc()goithis.additem(名稱)endforthis.value=this.list(1)usein考試庫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("沒有找到,請重新查詢",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="姓名班次總分班名校名語文數(shù)學(xué)英語物理化學(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、報表打印,包括打印成績和頁面設(shè)置兩個子菜單。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ù)庫表不存在,請打開數(shù)據(jù)庫!")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("沒找到相關(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("沒找到相關(guān)記錄",0,"打印")*REPORTFORM(baobiao) PREVIEWNOCONSOLEendifCombo1.Initclosedataallif used(thenusein考試庫endifuse"data\考試庫.dbf"fori=1torecc()goithis.additem(名稱)endforusein考試庫this.value=this.list(1
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 火災(zāi)撲打器項目評價分析報告
- 健康管理中心客戶信息管理服務(wù)手冊
- 體育場館運營管理規(guī)范
- 企業(yè)級活動效果評估預(yù)案
- 電動草坪修剪機(jī)項目可行性實施報告
- 人臉識別門禁系統(tǒng)使用手冊
- 抗疲勞地墊相關(guān)項目實施方案
- 真空吸塵器用刷項目評價分析報告
- 滅幼蟲劑市場環(huán)境與對策分析
- 2024年元江市離婚協(xié)議書模板范本
- 全國中學(xué)生英語能力測試高三初評英語試題
- 《汽車專業(yè)英語》課程教學(xué)大綱
- 雷電的監(jiān)測和預(yù)警
- 中職英語基礎(chǔ)模塊2(高教版)教案:Unit4 Volunteer Work(全6課時)
- 中國六大茶類(基本知識與品鑒)
- 大數(shù)據(jù)與人工智能概論
- 改進(jìn)維持性血液透析患者貧血狀況PDCA
- 清創(chuàng)縫合完整演示文稿
- 日本文學(xué)講解
- 貼面 貼面修復(fù)
- 一年級上心理健康作業(yè)上
評論
0/150
提交評論