[VFP課程設(shè)計]學(xué)生成績管理系統(tǒng)_第1頁
[VFP課程設(shè)計]學(xué)生成績管理系統(tǒng)_第2頁
[VFP課程設(shè)計]學(xué)生成績管理系統(tǒng)_第3頁
[VFP課程設(shè)計]學(xué)生成績管理系統(tǒng)_第4頁
[VFP課程設(shè)計]學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、學(xué)生成績管理系統(tǒng)摘要本文通過用VFP編寫學(xué)生成績管理系統(tǒng),利用軟件工程原理,采用生命周期方法學(xué),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個方面,實現(xiàn) 了學(xué)生成績數(shù)據(jù)庫的創(chuàng)建及學(xué)生成績的輸入、瀏覽、維護(hù)和統(tǒng)計。關(guān)鍵字 成績管理 瀏覽 打印 維護(hù) 統(tǒng)計1. 引言每次考試結(jié)束,老師們總要統(tǒng)計大量的學(xué)生成績,這些數(shù)據(jù)的歸檔、統(tǒng)計工作任務(wù)重, 時間緊,統(tǒng)計結(jié)束后往往錯誤百出。長時間以后,將產(chǎn)生大量文件和資料,給查找、維護(hù)帶 來不少困難。隨著學(xué)校信息化水平不斷提高,不少學(xué)校開始利用計算機(jī)處理這些數(shù)據(jù);可以 用EXCLE統(tǒng)計數(shù)據(jù),但是對于一些老師尤其老教師總有些復(fù)雜。學(xué)生成績管理系統(tǒng)是為

2、了更好的管理學(xué)生考試成績而開發(fā)的數(shù)據(jù)庫管理軟件。 根據(jù)學(xué)校 實際要求,即實現(xiàn)學(xué)生基本信息、成績的錄入,刪除,查詢,維護(hù)以及成績的統(tǒng)計分析等幾 方面功能。管理員可以通過查詢,實現(xiàn)刪除、修改學(xué)生的基本信息;可根據(jù)實際需求,自由 添加、刪除課程;還能打印學(xué)生成績表(總分成績表和單課成績表) 。學(xué)生成績管理系統(tǒng)可幫 助老師們方便快捷地管理這些繁瑣地數(shù)據(jù)。 學(xué)生成績管理系統(tǒng)具有手工管理無比優(yōu)越的優(yōu)點: 查找方便,可靠性高,保密性好,成本低?;谏鲜鲆蛩?,利用軟件工程原理,采用生命周期方法學(xué),經(jīng)過可行性研究,需求分析, 總體設(shè)計,以及編碼、測試和最后運(yùn)行成功。微軟公司地VISUALFOXPRC具有強(qiáng)大的數(shù)

3、據(jù)庫管理功能,可以方便編寫出小型的信息處理系統(tǒng),能夠有效地存儲數(shù)據(jù),滿足用戶的應(yīng)用需 求(信息要求和處理要求) 。設(shè)計指導(dǎo)思想:一切為用戶著想,界面美觀大方,操作盡量簡單 明了,而且作為一個實用系統(tǒng)要有良好的容錯性,在用戶出現(xiàn)誤操作時,及時給出警告,以 便用戶及時更正。下面介紹學(xué)生成績管理系統(tǒng)的制作過程。2. 需求分析 需求分析簡單的說就是分析用戶的要求,通過調(diào)查、收集與分析,獲得用戶對數(shù)據(jù)庫的 如下要求:2.1 信息要求:指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。 本系統(tǒng)需要的輸入數(shù)據(jù):學(xué)生信息(學(xué)號,姓名,班級,性別,出生日期) 、課程信 息( 課程名,滿分 )、考生成績;輸出數(shù)據(jù):學(xué)生成

4、績報表、學(xué)生信息報表、課程報表、 成績報表。2.2 處理要求:指用戶要完成什么處理功能。本系統(tǒng)功能需求可歸納如下: 數(shù)據(jù)登記 登記功能用于把各種手填的數(shù)據(jù)及時登記系統(tǒng)定義表中,還能修改這些數(shù)據(jù)(學(xué) 生信息、課程信息、成績) 。 數(shù)據(jù)瀏覽能瀏覽學(xué)生信息、課程信息、成績。 數(shù)據(jù)打印 能打印學(xué)生信息表、課程信息表、成績表(單課成績和總分成績) 。 數(shù)據(jù)統(tǒng)計能統(tǒng)計各班學(xué)生總數(shù)和男女人數(shù), 統(tǒng)計各班學(xué)生的總分、 排名,及各單課的排名。2.3 性能要求 : 維護(hù)數(shù)據(jù)的安全性 .設(shè)定密碼 , 限制非法用戶的使用;還能修改密碼,維護(hù)系統(tǒng)的安全性。3. 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計的任務(wù)是確定系統(tǒng)所需的數(shù)據(jù)庫。數(shù)據(jù)庫是

5、表的集合,通常一個系統(tǒng)只需 一個數(shù)據(jù)庫。建立本系統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)datatest.dbc根據(jù)需求分析畫出E-R圖3.1邏輯設(shè)計:確定數(shù)據(jù)庫所含表及字段學(xué)生信息表:xs(學(xué)號,姓名,班級,性別,出生日期)課程信息表:kc(課程號,課程名,滿分)考生成績表:cj(學(xué)號,姓名,班級,課程名,成績,名次)括號外字符號是表名,括號內(nèi)是字段名,有下劃線的字段為關(guān)聯(lián)關(guān)鍵字3.2物理設(shè)計學(xué)生信息表:(dataxs.dbf) xs(xh c,xm c(8),bj c(10),xb c(2),csrqd)課程信息表:(datakc.dbf) kc(kch c(5),kcm c(20),mf n)考生成績表:(dat

6、acj.dbf) cj(xh c(7),xm c(8),bj c(10),kcm c(20),cj n(5,1) ,mc n)自由表: (datapass.dbf) pass(pass c(10)4. 總體設(shè)計按功能分類是總體設(shè)計的常用方法,用層次圖(Hierarchy Chart簡稱HC圖)表示,自 上而下分層4.1數(shù)據(jù)維護(hù)模塊包括對學(xué)生信息表、課程信息表、考生成績表的插入、修改、刪除、搜索等。4.2數(shù)據(jù)瀏覽模塊 包括對學(xué)生信息表、課程信息表、考生成績表的選擇瀏覽、打印。4.3成績管理模塊包括對學(xué)生成績的輸入,總分和單課的統(tǒng)計和排名,分析各分?jǐn)?shù)段人數(shù)的分布情況5. 初始用戶界面設(shè)計系統(tǒng)層對應(yīng)

7、菜單文件,子系統(tǒng)層對應(yīng)菜單標(biāo)題,功能層對應(yīng)子菜單項系統(tǒng)功能維護(hù)瀏覽成績管理版本信息修改密碼r學(xué)生信息表學(xué)生信息表成績輸入課程信息表課程信息表成績統(tǒng)計退出考生成績表考生成績表成績分析6.模塊設(shè)計與編碼設(shè)計系統(tǒng)環(huán)境,調(diào)用登錄表單6.1 主文件(datama in .prg)代碼如下:SET TALK off set sysme nu off set cent on關(guān)閉系統(tǒng)菜單年份的世紀(jì)部分用4位輸出_scree n.win dowstate=2_scree n.ic on=ic on shappy.ico*系統(tǒng)圖標(biāo)_scree n. maxbutt on=0_scree n.mi nbutt on

8、=1 _scree n. closable=.f._scree n.picture=picturejjfz.jpe*系統(tǒng)背景畫今天是:MODIFY WINDOW SCREEN TITL學(xué) 生成績管理系統(tǒng)+dtoc(date()+ +cdow(date() ZOOM WINDOW SCREEN MAX 數(shù)據(jù) test.dbc do form formspass read eve n* 建立事件循環(huán)quit6.2菜單程序(mprmenu.mpr)的建立往命令窗口鍵入命令 modi menu menu出現(xiàn)菜單設(shè)計窗口 “退出”菜單項 命令clear eve nts *停止事件循環(huán),轉(zhuǎn)去執(zhí)行read

9、eve nt后的命令 調(diào)用各表單命令 如調(diào)用修改密碼表單(formsxiu.scx) do form formsxiu.scx 插入分隔符菜單名稱-結(jié)果菜單項# 設(shè)計快捷鍵對于菜單項在菜單命令后加(字母)如系統(tǒng)功能( 提示選項對話框,在鍵標(biāo)簽中鍵入CTRL字母J除外)。6.3數(shù)據(jù)庫中的數(shù)據(jù)需要以表單的形式顯示,本系統(tǒng)需建立以下表單:a. 系統(tǒng)登陸表單b.密碼修改表單c.維護(hù)學(xué)生信息表單d.維護(hù)課程信息表單e.維護(hù)考生成績表單f.瀏覽學(xué)生信息表單g.瀏覽課程信息表單h.瀏覽成績表單i.成績輸入表單j.總分成績統(tǒng)計表單k 單課成績統(tǒng)計表單I.成績統(tǒng)計表單 設(shè)計表單步驟: 在項目管理器中,文檔 表單

10、 新建。 設(shè)計表單屬性 重要屬性有 Caption AutoCenter Height Width WindowType Icon 添加各標(biāo)簽、文本框,設(shè)定文本框與源表中源字段的綁定有代碼的寫代碼如屬性In teractiveCha nge Eve nt當(dāng)用鼠標(biāo)或鍵盤修改控件的值時發(fā)生的事件 創(chuàng)建命令按鈕 詳細(xì)介紹:a.系統(tǒng)登陸表單formspass.scx功能:用戶名和密碼三次輸入錯誤,自動退出系統(tǒng);限制了非法用戶的使用,維護(hù)了系統(tǒng)數(shù)據(jù)的安全。構(gòu)成:三個標(biāo)簽(工作人員登錄,用戶名,密碼)兩個文本框 兩個命令按鈕(取消 登錄)命令按鈕登錄use datapassgo topif thisfor

11、m.user.value=gua n and thisform.pass.value=pass.passdo men ume nu.mpr*若用戶名和密碼正確,則進(jìn)入本系統(tǒng)。thisform.releaseelse#defi ne missmatch_loc 用戶或口令錯,請重新登錄!wait wi ndow missmatch_loc timeout 1 *系統(tǒng)延時thisform.user.value=thisform.pass.value=thisform.user.setfocusnu mco unt=nu mco un t+1if numcount=4*表單初始化事件有 :publi

12、c numcount numcount=0mess =messagebox( 三次口令錯,將退出程序! ,4+16+2,退出) clear eve ntrelease thisform en difen difb. 密碼修改表單功能:可以隨時修改密碼,維護(hù)系統(tǒng)安全。構(gòu)成:四個標(biāo)簽(請輸入,舊密碼,新密碼,確認(rèn)新密碼)三個文本框 兩個命令按鈕(修改,退出)c. 維護(hù)成績表單formscj.scx功能:能查詢到某位學(xué)生成績,可以對它修改,刪除,還可以清空整個cj.dbf的數(shù)據(jù) 屬性設(shè)計如圖1命令按鈕 刪除use datacj excl * 以獨占的方式打開 cj.dbflocate for xh=

13、this.parent.text1.value .and.kcm=this.parent.text4.value deletemess=messagebox(徹底刪除嗎? ,4+16+0,刪除)*彈出信息對話框 if mess=6pack * 如果確定,則徹底刪除elserecall * 否則恢復(fù)endifthisform.refresh下一個 skip 1if eof() * 如果到了末記錄 =messagebox( 已是末記錄! ,48, 信息窗口 ) skip -1this.enabled=.f.elsethis.enabled=.t.endifif !bof()mand3.enable

14、d=.t.elsemand3.enabled=.f.endifthisform.refreshd. 維護(hù)學(xué)生信息表單功能:根據(jù)學(xué)號能快捷查詢到某個學(xué)生,對其進(jìn)行修改,刪除操作, 還能添加學(xué)生記錄。構(gòu)成:六個標(biāo)簽(學(xué)號,姓名,班級,出生日期,性別)四個文本框 一個選項按鈕(性別) 命令按鈕同圖 1e. 維護(hù)課程信息表單功能:根據(jù)課程號能快捷查詢到某門課程,對其進(jìn)行修改,刪除操作, 還能添加課程記錄。構(gòu)成:四個標(biāo)簽(課程號,課程名,滿分,課程表) 四個文本框 命令按鈕同圖 1f. 瀏覽學(xué)生信息表單功能:統(tǒng)計出全體學(xué)生人數(shù),男女人數(shù)和各班級人數(shù)和男女人數(shù); 打印出各班級學(xué)生信息構(gòu)成:一個頁框(全體學(xué)

15、生,各班學(xué)生)一個退出按鈕 每頁一個表格 全體學(xué)生頁:三個標(biāo)簽(學(xué)生總數(shù),男生總數(shù),女生總數(shù)) 三個文本框 打印按鈕各班學(xué)生頁:四個標(biāo)簽(班級,學(xué)生總數(shù),男生總數(shù),女生總數(shù)) 三個文本框 打印按鈕一個組合框(班級)組合框 combol .Interactivechange代碼set filt to bj=allt(bo1.value)count to thisform.pageframe1.page2.text1.valuecount for xb=男to thisform.pageframe1.page2.text2.valuecount for xb=女to thisform.pagefr

16、ame1.page2.text3.valuethisform.pageframe1.page2.grid1.refreshg. 瀏覽課程信息表單功能:可以瀏覽、打印課程信息。構(gòu)成:一個標(biāo)簽(課程名)一個組合框兩個命令按鈕(打印,退出)一個表格h. 瀏覽成績表單 formsscj.scx功能:能夠根據(jù)學(xué)號,姓名,課程名,班級,瀏覽學(xué)生成績;還能瀏覽優(yōu)秀學(xué)生 成績(成績 滿分*0.85 )不及格學(xué)生成績(成績 滿分*0.6) 并且能打印出選擇的記錄。構(gòu)成:一個含三頁的頁框(學(xué)號姓名查詢,班級課程查詢,高級查詢) 學(xué)號姓名查詢頁:兩個標(biāo)簽(學(xué)號,姓名)兩個文本框一個表格四個命令按鈕(兩個查詢,兩個導(dǎo)

17、出文本文件,一個打?。?班級課程查詢頁:一個文本框(班級)一個組合框(課程名) 兩個標(biāo)簽(班級,課程)一個表格 三個命令按鈕(查詢,打印,導(dǎo)出文本文件) 高級查詢頁:五個命令按鈕(全體學(xué)生,成績優(yōu)秀者,不及格者, 兩個導(dǎo)出文本文件,打印)一個表格查詢代碼:set filter to 邏輯表達(dá)式導(dǎo)出文本文件代碼:copy to 文件名 范圍fields 字段名for條件 whilev 條件 sdfi. 成績輸入表單 formsincj.scx功能:方便的輸入學(xué)生的成績,下一個按鈕可實現(xiàn)學(xué)號+1;如果沒選課程,學(xué)號不存在,學(xué)生該門課的成績已存在,都會給出錯誤提示; 右表格顯示該門課全體學(xué)生的成績。

18、構(gòu)成:如下圖命令按鈕 輸入if empty(bo1.value)mess=messagebox(課程名不能為空! ,0+48+0,警告”)elselocate for cj.xh=allt(thisform.text2.value) ;and cj.kcm=allt(bo1.value)if recno()reccount() *若符合輸入條件,則輸入記錄。insert into datacj (xh,xm,bj,kcm,cj,mc);allt(thisform.text3.value),allt(thisform.text1.value),;allt(bo1.; value),thisfor

19、m.text4.value,reccount()+1)go topset filter to cj.kcm=allt(bo1.value)thisform.grid1.refreshthisform.grid1.setfocus * 表格標(biāo)題改變 thisform.grid1.column3.header1.caption=allt(bo1.value) mand1.enabled=.f.mand3.enabled=.t.mand4.enabled=.t.elsemess=messagebox(此記錄已存在! ,0+48+0,警告”)endifendif命令按鈕 定位mand1.enabled

20、=.t.if empty(thisform.text2.value)mess=messagebox( 學(xué)號不能為空! ,48, 警告)elsego toplocate for xs.xh=allt(thisform.text2.value)if recno()reccount()mess=messagebox( 該學(xué)號不存在! ,48, 警告)mand1.enabled=.f.elsethisform.text1.value=xs.bjthisform.text3.value=xs.xmendifendifthisform.refresh命令按鈕 下一個(主要代碼)thisform.text2

21、.value=str(val(thisform.text2.value)+1) *實現(xiàn)學(xué)號自動加一j. 總分成績統(tǒng)計表單 formstscj.scx功能:求出選擇班級學(xué)生的總分,并且統(tǒng)計出排名(相同成績,名次相同) 構(gòu)成:三個標(biāo)簽(總分成績排名,班級,參考人數(shù))組合框(班級) 文本框(參考人數(shù)) 一幅圖像六個命令按鈕(統(tǒng)計總分,成績排名,文本文件,打印,瀏覽,退出) bo1 的 InteractiveChange Event代碼use datacjmand2.enabled=.f. mand3.enabled=.f. mand5.enabled=.f.mand6.enabled=.f.eras

22、e sort1.dbf * 刪除文件 sort1.dbf use命令按鈕 打印 調(diào)用程序 do prgsprt.prg sprt.prg 的代碼在后面 命令按鈕 統(tǒng)計總分 use use datacjset safe off *重寫文件,系統(tǒng)不給提示信息total to sum1 on xh fields cj for bj=bo1.valueset safe on * 按學(xué)號統(tǒng)計各班學(xué)生總分,生成文件 sum1.dbf mand5.enabled=.t.t=1 ? use use sum1 this.parent.text1.value=reccount() * 統(tǒng)計各班級參加考試的人數(shù) u

23、se命令按鈕 成績排名useuse sum1 exclset safety offsort to sort1 on cj desc fields xh,bj,xm,cj,mc *生成排名文件 sort1.dbfset safety onuseerase sum1.dbfuse sort1 exclrepl all mc with recno() * 能夠?qū)ο嗤謹(jǐn)?shù)的考生得出相同的名次 go topdo while .not.eof()t=cjp=mc * 定義臨時變量 pskip 1if t=cjrepl mc with pendifenddo use mand2.enabled=.t. ma

24、nd3.enabled=.t.mand6.enabled=.t.usek. 單課成績統(tǒng)計表單 datatdcj.scx 功能:統(tǒng)計出全年級、各班級學(xué)生各門課排名。 構(gòu)成:三個標(biāo)簽(單課成績統(tǒng)計表單,學(xué)科,班級) 文本框(學(xué)科) 組合框(學(xué)科)選項按鈕組(班級排名 年級排名) 一幅圖像 四個按鈕 ( 統(tǒng)計,文本文件,打印,退出 )l. 成績分析表 datacjfx.scx 功能:通過輸入班級、課程名和分?jǐn)?shù)段值,統(tǒng)計出各分?jǐn)?shù)段的人數(shù), 并求出最高分、最低分。構(gòu)成:11 個標(biāo)簽(課科名,班級,滿分,分?jǐn)?shù)段,最高分,最低分,分?jǐn)?shù)段一分?jǐn)?shù)段五)一個組合框(班級)兩個按鈕(設(shè)定,退出) 命令按鈕 設(shè)定fo

25、r cj.cj=(m-n)求出第一分?jǐn)?shù)段的人數(shù)for cj.cj=(m-2*n) 求出第二分?jǐn)?shù)段的人數(shù)andandm=thisform.text2.value n=thisform.text3.value p=bo1.value q=thisform.text1.value count to thisform.text4.value cj.kcm=allt(p) and cj.bj=allt(q) * count to thisform.text5.value cj.kcm=allt(p) and cj.bj=allt(q) *count to thisform.text6.value for

26、 cj.cj=(m-3*n) and cj.kcm=allt(p) and cj.bj=allt(q) *求出第三分?jǐn)?shù)段的人數(shù)count to thisform.text7.value for cj.cj=(m-4*n) and cj.kcm=allt(p) and cj.bj=allt(q) *求出第四分?jǐn)?shù)段的人數(shù)count to thisform.text8.value forcj.cj(m-4*n) and cj.kcm=allt(p) and cj.bj=allt(q)*求出第五分?jǐn)?shù)段的人數(shù)thisform.label4.caption=allt(str(m)+-+allt(str(m-n)* 改變 label4 的標(biāo)題thisform.label5.caption=allt(str(m-n)+-+allt(str(m-2*n) thisform.label6.caption=allt(str(m-2*n)+-+allt(str(m-3*n) thisform

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論