版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、引引言言 2第一章第一章 學(xué)生管理系統(tǒng)的設(shè)計(jì)思想學(xué)生管理系統(tǒng)的設(shè)計(jì)思想3第二章第二章 系統(tǒng)的功能分析系統(tǒng)的功能分析32. 1 數(shù)據(jù)庫結(jié)構(gòu)及系統(tǒng)特點(diǎn)數(shù)據(jù)庫結(jié)構(gòu)及系統(tǒng)特點(diǎn)32. 2 各管理模塊的主要功能實(shí)現(xiàn)各管理模塊的主要功能實(shí)現(xiàn)42. 2. 1 檔案管理模塊檔案管理模塊42. 2. 2 成績管理模塊成績管理模塊42. 2. 3 其它管理其它管理4第三章第三章 舉例:舉例: 43.1 學(xué)生成績管理系統(tǒng)界面學(xué)生成績管理系統(tǒng)界面53.2.1 檔案管理按鈕檔案管理按鈕63.2.2 成績錄入按鈕成績錄入按鈕153.2.3 成績分析成績分析193.2.4、系統(tǒng)維護(hù)、系統(tǒng)維護(hù) 263.2.5、數(shù)據(jù)備份、數(shù)據(jù)備
2、份 273.2.6、幫助說明、幫助說明 28第四章第四章 結(jié)束語結(jié)束語29致致 謝謝29引引言言現(xiàn)代化的學(xué)校離不開計(jì)算機(jī)技術(shù)在管理領(lǐng)域的應(yīng)用。近年來,學(xué)校發(fā)展的內(nèi)外環(huán)境對信息的需求迅速增長,大量數(shù)據(jù)的收集、傳輸、處理、存儲和分析等工作成為極其復(fù)雜、繁重的任務(wù)。學(xué)生管理工作是學(xué)校管理工作的重要組成部分,由于此項(xiàng)工作事務(wù)性多,涉及面廣,重復(fù)性大,非常適合用計(jì)算機(jī)進(jìn)行管理。本文具體介紹一個(gè)學(xué)生管理系統(tǒng)的設(shè)計(jì)思想。 本系統(tǒng)分三大菜單部分緊密結(jié)合聯(lián)系,共分為兩個(gè)數(shù)據(jù)庫,第一個(gè)數(shù)據(jù)庫包括學(xué)生管理系統(tǒng)維護(hù)表和成績查詢表,第二個(gè)數(shù)據(jù)庫包括系統(tǒng)管理表。如下圖所示: menuitem.dbfreb.dbf cjb
3、.dbf log.dbf operator.dbf menuright.dbf系系 統(tǒng)統(tǒng)系統(tǒng)管理表學(xué)生管理維護(hù)表和成績查詢表第一章第一章 學(xué)生管理系統(tǒng)的設(shè)計(jì)思想學(xué)生管理系統(tǒng)的設(shè)計(jì)思想本學(xué)生管理系統(tǒng)利用 visual foxpro 6. 0 作為前臺開發(fā)工具, vf 提供了大量的控件,這些控件可用于實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也簡化了界面設(shè)計(jì)過程,使應(yīng)用程序的開發(fā)流程更為合理。后臺采用 access 數(shù)據(jù)庫,access 數(shù)據(jù)庫適用于小型應(yīng)用系統(tǒng)。開發(fā)過程中在考慮系統(tǒng)總體設(shè)計(jì)和數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的同時(shí),還應(yīng)體現(xiàn)學(xué)生管理系統(tǒng)的以下設(shè)計(jì)特點(diǎn): 可靠性可靠性:管理系統(tǒng)應(yīng)該在系統(tǒng)結(jié)構(gòu)、設(shè)計(jì)方案、設(shè)
4、備選擇等方面綜合考慮,保證系統(tǒng)能夠無故障運(yùn)行,同時(shí)具有出錯(cuò)處理,容錯(cuò)能力,冗余備份功能。整個(gè)系統(tǒng)應(yīng)具有開放性,方便數(shù)據(jù)交換,信息共享,也更易于更新和功能擴(kuò)充。實(shí)用性實(shí)用性:整個(gè)系統(tǒng)的功能,應(yīng)完全立足于學(xué)校學(xué)生管理和教學(xué)的要求,保證系統(tǒng)信息處理和傳遞的安全、可靠、及時(shí)、準(zhǔn)確,有利于學(xué)生管理的科學(xué)性。如:學(xué)生檔案管理,把學(xué)生的通信地址、父母工作單位、聯(lián)系電話等等存入檔案,便于形成學(xué)校、家長兩位一體的管理方式,家長可及時(shí)配合學(xué)校,加強(qiáng)對子女的督促管理。另外,通過學(xué)生成績管理,可分析學(xué)生的學(xué)業(yè)成績(學(xué)生成績信息可與教務(wù)部門共享),有利于及時(shí)采取相應(yīng)的措施,加強(qiáng)教學(xué)管理。因此借助計(jì)算機(jī)管理,實(shí)現(xiàn)學(xué)生資源
5、信息化和管理資源共享是促進(jìn)學(xué)校全面提高教育、教學(xué)、管理水平的重要措施。操作性操作性:管理系統(tǒng)必須提供友好的用戶界面,采用基于 windows 的界面,操作簡便、容錯(cuò)性強(qiáng),易于管理和維護(hù)的軟件。第二章第二章 系統(tǒng)的功能分析系統(tǒng)的功能分析2. 1 數(shù)據(jù)庫結(jié)構(gòu)及系統(tǒng)特點(diǎn)數(shù)據(jù)庫結(jié)構(gòu)及系統(tǒng)特點(diǎn)本系統(tǒng)可分為以下幾個(gè)功能模塊:檔案管理、成績管理、其它管理。數(shù)據(jù)庫管理軟件在編寫程序代碼之前,應(yīng)首先建立若干個(gè)數(shù)據(jù)庫的結(jié)構(gòu),除了考慮字段名稱、類型、各數(shù)據(jù)庫之間的相互關(guān)系外,還要考慮減少數(shù)據(jù)冗余及方便程序設(shè)計(jì)等。本系統(tǒng)的幾個(gè)主要數(shù)據(jù)庫是: (1) 各系部班級庫。該庫包括四個(gè)表:學(xué)生基本表(學(xué)號、姓名、性別、出生日期
6、、班級代碼、專業(yè)代碼、聯(lián)系地址、聯(lián)系電話、家長姓名);專業(yè)表(專業(yè)代碼,專業(yè)名稱);班級表(班級代碼,班級名稱);學(xué)生獎、懲表(學(xué)號、姓名、獎勵(lì)、處罰、獎學(xué)金) 。(2) 學(xué)生休學(xué)、退學(xué)庫:該庫中只有一個(gè)表。學(xué)生休學(xué)、退學(xué)表(學(xué)號、姓名、出生日期、性別、班級、)專業(yè)、聯(lián)系地址、聯(lián)系電話、家長姓名,休學(xué)日期,退學(xué)日期; (3) 密碼庫。2. 2 各管理模塊的主要功能實(shí)現(xiàn)各管理模塊的主要功能實(shí)現(xiàn)2. 2. 1 檔案管理模塊檔案管理模塊該模塊主要用于管理學(xué)生學(xué)籍資料、獎懲資料、休學(xué)資料、退學(xué)資料。新生入學(xué)時(shí)填寫學(xué)籍卡,包括學(xué)生的學(xué)號、姓名、性別、出生日期、班級、專業(yè)、聯(lián)系地址、聯(lián)系電話、家長姓名等,
7、通過錄入學(xué)籍卡形成學(xué)生基本檔案。該模塊可以進(jìn)行查詢、修改、維護(hù)等操作。查詢操作可按專業(yè)、班級、性別、姓名綜合條件查詢,也可單項(xiàng)查詢,學(xué)生受獎勵(lì)和處罰是填寫?yīng)剟?lì)、處罰表,以便錄入備案并形成獎懲庫,可以進(jìn)行查詢、統(tǒng)計(jì)、打印等操作。學(xué)生休學(xué)、退學(xué)時(shí),可通過學(xué)號調(diào)用學(xué)生的基本資料查詢出該類學(xué)生,并對其進(jìn)行修改和補(bǔ)充,形成休、退學(xué)庫,便于以后查詢該資料及學(xué)生休學(xué)年限到返校時(shí)再用。2. 2. 2 成績管理模塊成績管理模塊該模塊包括用于查詢學(xué)生的學(xué)期、學(xué)年成績、學(xué)生評優(yōu)統(tǒng)計(jì)、成績打印等。學(xué)生成績查詢:該項(xiàng)資料與教務(wù)部門的學(xué)生成績資料共享,不用重新錄入。成績查詢包括學(xué)期成績查詢、學(xué)年成績查詢等。通過查詢可掌握
8、學(xué)生學(xué)習(xí)情況,打印學(xué)期、學(xué)年成績單,可以寄發(fā)學(xué)生家長,也可幫助班主任開展工作,及時(shí)發(fā)現(xiàn)問題,并采取相應(yīng)措施。學(xué)生評優(yōu)管理:該項(xiàng)功能主要通過查詢學(xué)生本學(xué)年成績,審核本學(xué)年“三好”學(xué)生、 “優(yōu)秀學(xué)生干部”的資格,也可以形成報(bào)表,進(jìn)行統(tǒng)計(jì)、打印等。畢業(yè)生成績管理:通過查詢畢業(yè)生成績,打印畢業(yè)生成績單。2. 2. 3 其它管理其它管理獎、助學(xué)金管理:獎學(xué)金、助學(xué)金的發(fā)放是由學(xué)習(xí)成績和操行成績通過一定的比例計(jì)算得出。并將受獎、受助學(xué)生資料記錄備案形成庫,可供以后查詢、打印時(shí)用。欠費(fèi)管理:欠費(fèi)資料可共享財(cái)務(wù)部門的學(xué)生交費(fèi)資料,統(tǒng)計(jì)學(xué)生欠費(fèi)人數(shù)、欠費(fèi)金額,并打印表單及時(shí)催促學(xué)生交費(fèi)。第三章第三章 舉例:舉例
9、:我們就以學(xué)生成績管理系統(tǒng)為例來具體介紹下此軟件:我們就以學(xué)生成績管理系統(tǒng)為例來具體介紹下此軟件:首先,軟件設(shè)置一個(gè)登錄界面,為了增加軟件的安全系數(shù),軟件設(shè)置了密碼系統(tǒng),密碼為:1234(密碼可以修改) 。進(jìn)入系統(tǒng)后有一界面,界面分為:檔案管理,成績錄入,成績分析,系統(tǒng)維護(hù),數(shù)據(jù)備份,幫助說明,退出系統(tǒng)等四個(gè)按鈕。3.1 學(xué)生成績管理系統(tǒng)界面學(xué)生成績管理系統(tǒng)界面學(xué)生成績管理系統(tǒng)登錄界面學(xué)生成績管理系統(tǒng)登錄界面功能:功能:此界面輸入密碼(1234)可進(jìn)入此系統(tǒng),可以進(jìn)行:檔案管理,成績錄入,成績分析,系統(tǒng)維護(hù),數(shù)據(jù)備份,幫助說明,退出系統(tǒng),可以進(jìn)行自己需要的操作。學(xué)生成績查詢系統(tǒng)界面學(xué)生成績查詢
10、系統(tǒng)界面 功能:功能:根據(jù)需要對個(gè)項(xiàng)功能進(jìn)行使用。3.2.1 檔案管理按鈕檔案管理按鈕當(dāng)我們點(diǎn)擊“檔案管理”時(shí),就會調(diào)用數(shù)據(jù)庫中的“學(xué)生檔案” ,其截圖如下:其代碼:“最前最前”按鈕按鈕:sele 學(xué)生檔案表go topthisform.command1.enabled=.f.thisform.command2.enabled=.f.thisform.command3.enabled=.t.thisform.command4.enabled=.t.thisform.cd1.value=班級代碼 &將學(xué)生檔案表中記錄內(nèi)容顯示在界面中sele 班級表loca for allt(班級代碼)=
11、subst(thisform.cd1.value,1,8) &因?yàn)樵趯W(xué)生檔案表中沒有相應(yīng)班級名稱字段,所以通過查找班級表顯示對應(yīng)班級名稱thisform.cd2.value=班級名稱sele 學(xué)生檔案表thisform.cd3.value=姓名thisform.cd4.value=學(xué)號thisform.cd5.value=考號thisform.cd6.value=民族thisform.cd7.value=性別thisform.cd8.value=出生日期thisform.cd9.value=電話thisform.cd10.value=郵編thisform.cd11.value=家庭住址
12、thisform.cd12.value=備注thisform.refresh“向前向前”按鈕按鈕:sele 學(xué)生檔案表 if bof() &判斷記錄指針是否已到庫頂thisform.command1.enabled=.f.thisform.command2.enabled=.f.else &如果記錄指針未到庫頂,讓指針向上移動一條記錄skip -1if bof() &如果此時(shí)指針已到庫頂,讓指針指向首記錄go topthisform.command1.enabled=.f.thisform.command2.enabled=.f.endifendifthisform.c
13、ommand3.enabled=.t.thisform.command4.enabled=.t.thisform.cd1.value=班級代碼 &將學(xué)生檔案表中記錄內(nèi)容顯示在界面中sele 班級表loca for allt(班級代碼)=subst(thisform.cd1.value,1,8) &因?yàn)樵趯W(xué)生檔案表中沒有相應(yīng)班級名稱字段,所以通過查找班級表顯示對應(yīng)班級名稱thisform.cd2.value=班級名稱sele 學(xué)生檔案表thisform.cd3.value=姓名thisform.cd4.value=學(xué)號thisform.cd5.value=考號thisform.c
14、d6.value=民族thisform.cd7.value=性別thisform.cd8.value=出生日期thisform.cd9.value=電話thisform.cd10.value=郵編thisform.cd11.value=家庭住址thisform.cd12.value=備注thisform.refresh“向后向后”按鈕按鈕:sele 學(xué)生檔案表 if eof() &判斷記錄指針是否已到庫底thisform.command3.enabled=.f.thisform.command4.enabled=.f.else &如果記錄指針未到庫底,讓指針向下移動一條記錄sk
15、ipif eof() &如果此時(shí)指針已到庫底,讓指針指向尾記錄go bottomthisform.command3.enabled=.f.thisform.command4.enabled=.f.endifendifthisform.command1.enabled=.t.thisform.command2.enabled=.t.thisform.cd1.value=班級代碼 &將學(xué)生檔案表中記錄內(nèi)容顯示在界面中sele 班級表loca for allt(班級代碼)=subst(thisform.cd1.value,1,8) &因?yàn)樵趯W(xué)生檔案表中沒有相應(yīng)班級名稱字段,所
16、以通過查找班級表顯示對應(yīng)班級名稱thisform.cd2.value=班級名稱sele 學(xué)生檔案表thisform.cd3.value=姓名thisform.cd4.value=學(xué)號thisform.cd5.value=考號thisform.cd6.value=民族thisform.cd7.value=性別thisform.cd8.value=出生日期thisform.cd9.value=電話thisform.cd10.value=郵編thisform.cd11.value=家庭住址thisform.cd12.value=備注thisform.refresh“最后最后”按鈕按鈕:sele 學(xué)生
17、檔案表go bottomthisform.command1.enabled=.t.thisform.command2.enabled=.t.thisform.command3.enabled=.f.thisform.command4.enabled=.f.thisform.cd1.value=班級代碼 &將學(xué)生檔案表中記錄內(nèi)容顯示在界面中sele 班級表loca for allt(班級代碼)=subst(thisform.cd1.value,1,8) &因?yàn)樵趯W(xué)生檔案表中沒有相應(yīng)班級名稱字段,所以通過查找班級表顯示對應(yīng)班級名稱thisform.cd2.value=班級名稱sel
18、e 學(xué)生檔案表thisform.cd3.value=姓名thisform.cd4.value=學(xué)號thisform.cd5.value=考號thisform.cd6.value=民族thisform.cd7.value=性別thisform.cd8.value=出生日期thisform.cd9.value=電話thisform.cd10.value=郵編thisform.cd11.value=家庭住址thisform.cd12.value=備注thisform.refresh新建 12 個(gè) label,分別寫入:班級代碼,班級名稱,姓名,學(xué)號,考號,民族,性別,出生日期,電話,郵編,家庭住址,
19、備注。然后在其后邊各建一個(gè)組合框,其代碼如下:if len(allt(thisform.cd1.value)#0 &判斷是否選擇了班級代碼 thisform.cd2.value=班級表.班級名稱 &如果選擇了班級代碼,在 cd2 中顯示對應(yīng)的班級名稱 thisform.cd1.enabled=.f. &cd1 置為不可用,將其他置為可用 thisform.cd3.enabled=.t. thisform.cd4.enabled=.t. thisform.cd6.enabled=.t. thisform.cd7.enabled=.t. thisform.cd8.enabl
20、ed=.t. thisform.cd9.enabled=.t. thisform.cd10.enabled=.t. thisform.cd11.enabled=.t. thisform.cd12.enabled=.t. thisform.cd3.setfocus &讓 cd3 文本框得到焦點(diǎn)endif最后在其最后增加 6 個(gè)按鈕:新增,修改,刪除,檢索,打印和退出。其代碼分別如下:新增:新增:if this.caption=新增(a) &如果按下新增按鈕后的處理 thisform.cd1.enabled=.t. &讓 cd1 可用 thisform.cd1.value=
21、學(xué)生檔案表.班級代碼 &將當(dāng)前記錄的班級代碼作為新增班級代碼的默認(rèn)值,并將界面中文本內(nèi)容置空,等待錄入新數(shù)據(jù) thisform.cd3.value= thisform.cd4.value=0 thisform.cd5.value= thisform.cd6.value=漢 thisform.cd7.value=男 thisform.cd8.value=ctod( . . ) thisform.cd9.value= thisform.cd10.value= thisform.cd11.value= thisform.cd12.value= thisform.command1.enable
22、d=.f. &將其他按鈕設(shè)為無效 thisform.command2.enabled=.f. thisform.command3.enabled=.f. thisform.command4.enabled=.f. thisform.command6.enabled=.f. thisform.command7.enabled=.f. thisform.command8.enabled=.f. thisform.command9.enabled=.f. thisform.command5.caption=保存(s) &更改按鈕標(biāo)題 thisform.command10.captio
23、n=放棄(i) thisform.cd1.setfocuselse if len(allt(thisform.cd3.value)=0 =messagebox(請輸入學(xué)生姓名!,0+48,系統(tǒng)提示) thisform.cd3.setfocus return endif if thisform.cd4.value=0 =messagebox(請輸入學(xué)號!,0+48,系統(tǒng)提示) thisform.cd4.setfocus return endif thisform.command1.enabled=.t. &如果選擇放棄,則讓按鈕變?yōu)榭捎?thisform.command2.enabled
24、=.t. thisform.command3.enabled=.t. thisform.command4.enabled=.t. thisform.command5.enabled=.t. thisform.command6.enabled=.t. thisform.command7.enabled=.t. thisform.command8.enabled=.t. thisform.command9.enabled=.t. thisform.command5.caption=新增(a) &將按鈕標(biāo)題還原 thisform.command10.caption=退出(x) for i=1
25、 to 12 &將界面中文本框設(shè)為不可修改 m_i=allt(str(i) thisform.cd&m_i.enabled=.f. endfor sele 學(xué)生檔案表 appe blank repl 班級代碼 with thisform.cd1.value,姓名 with allt(thisform.cd3.value),學(xué)號 with thisform.cd4.value,; 考號 with thisform.cd5.value,民族 with thisform.cd6.value,性別 with thisform.cd7.value,; 出生日期 with thisform
26、.cd8.value,電話 with allt(thisform.cd9.value),郵編 with thisform.cd10.value,; 家庭住址 with allt(thisform.cd11.value),備注 with allt(thisform.cd12.value)修改:修改:if this.caption=修改(m) &如果按下新增按鈕后的處理 thisform.cd3.enabled=.t. thisform.cd4.enabled=.t. thisform.cd6.enabled=.t. thisform.cd7.enabled=.t. thisform.cd
27、8.enabled=.t. thisform.cd9.enabled=.t. thisform.cd10.enabled=.t. thisform.cd11.enabled=.t. thisform.cd12.enabled=.t. thisform.cd3.setfocus &讓 cd3 文本框得到焦點(diǎn) thisform.command1.enabled=.f. &將其他按鈕設(shè)為無效 thisform.command2.enabled=.f. thisform.command3.enabled=.f. thisform.command4.enabled=.f. thisfor
28、m.command5.enabled=.f. thisform.command7.enabled=.f. thisform.command8.enabled=.f. thisform.command9.enabled=.f. thisform.command6.caption=保存(s) &更改按鈕標(biāo)題 thisform.command10.caption=放棄(i) thisform.cd3.setfocuselse if len(allt(thisform.cd3.value)=0 =messagebox(請輸入學(xué)生姓名!,0+48,系統(tǒng)提示) thisform.cd3.setfo
29、cus return endif if thisform.cd4.value=0 =messagebox(請輸入學(xué)號!,0+48,系統(tǒng)提示) thisform.cd4.setfocus return endif thisform.command1.enabled=.t. &如果選擇放棄,則讓按鈕變?yōu)榭捎?thisform.command2.enabled=.t. thisform.command3.enabled=.t. thisform.command4.enabled=.t. thisform.command5.enabled=.t. thisform.command6.enabl
30、ed=.t. thisform.command7.enabled=.t. thisform.command8.enabled=.t. thisform.command9.enabled=.t. thisform.command6.caption=修改(m) &將按鈕標(biāo)題還原 thisform.command10.caption=退出(x) for i=1 to 12 &將界面中文本框設(shè)為不可修改 m_i=allt(str(i) thisform.cd&m_i.enabled=.f. endfor sele 學(xué)生檔案表 repl 班級代碼 with thisform.cd
31、1.value,姓名 with allt(thisform.cd3.value),學(xué)號 with thisform.cd4.value,; 考號 with thisform.cd5.value,民族 with thisform.cd6.value,性別 with thisform.cd7.value,; 出生日期 with thisform.cd8.value,電話 with allt(thisform.cd9.value),郵編 with thisform.cd10.value,; 家庭住址 with allt(thisform.cd11.value),備注 with allt(thisfo
32、rm.cd12.value)endifendif刪除刪除:sele 學(xué)生檔案表if recc()=0 =messagebox(無記錄可供刪除!,0+48,系統(tǒng)提示)else m_kh=allt(考號) if messagebox(您真要刪除該記錄?,4+32+256,請確認(rèn))=6 &刪除前進(jìn)行確認(rèn)提示 sele 成績表 loca for allt(考號)=m_kh if found() if messagebox(系統(tǒng)發(fā)現(xiàn)該學(xué)生有相應(yīng)的考試記錄,是否確定刪除?,4+32+256,詢問)#6 return else dele for allt(考號)=m_kh pack endif en
33、dif m_jlh=recn() set excl on &保存刪除前的指針號。因?yàn)?pack 后指針自動移到記錄尾部,現(xiàn)要將當(dāng)前被刪記錄的下一記錄作為當(dāng)前記錄,所以要先保存當(dāng)前指針號,pack 后再讓指針指向該記錄號位置 sele 學(xué)生檔案表 delete pack set excl off if recc()m_jlh go bottom else go m_jlh endif sele 學(xué)生檔案表 thisform.cd1.value=班級代碼 &將學(xué)生檔案表中記錄內(nèi)容顯示在界面中 sele 班級表 loca for allt(班級代碼)=subst(thisform.c
34、d1.value,1,8) &因?yàn)樵趯W(xué)生檔案表中沒有相應(yīng)班級名稱字段,所以通過查找班級表顯示對應(yīng)班級名稱 thisform.cd2.value=班級名稱 sele 學(xué)生檔案表 thisform.cd3.value=姓名 thisform.cd4.value=學(xué)號 thisform.cd5.value=考號 thisform.cd6.value=民族 thisform.cd7.value=性別 thisform.cd8.value=出生日期 thisform.cd9.value=電話 thisform.cd10.value=郵編 thisform.cd11.value=家庭住址 this
35、form.cd12.value=備注 endif endifthisform.refresh檢索:檢索:m_flag=.t. &將變量置為 t,表明開始檢索數(shù)據(jù)thisform.cd1.value=thisform.cd2.value=thisform.cd3.value=thisform.cd4.value=thisform.cd5.value= thisform.cd6.value=thisform.cd7.value=thisform.cd8.value=ctod( . . )thisform.cd9.value=thisform.cd10.value=thisform.cd11
36、.value=thisform.cd12.value=thisform.cd5.enabled=.t.thisform.cd5.setfocusthisform.refresh打?。捍蛴。簊et safe offsele * from 學(xué)生檔案表 order by 學(xué)生檔案表.考號 into table tmpxsdabsele * from xsdab left outer join 班級表 on xsdab.班級代碼=班級表.班級代碼 into table tmpxsdareport form report學(xué)生檔案報(bào)表 to print prompt prev退出退出:if this.ca
37、ption=退出(x) &如果選擇退出按鈕,則退出本模塊 sele 學(xué)生檔案表 use rele thisform *do form 主界面else thisform.command1.enabled=.t. &如果選擇放棄,則讓按鈕變?yōu)榭捎?thisform.command2.enabled=.t. thisform.command3.enabled=.t. thisform.command4.enabled=.t. thisform.command5.enabled=.t. thisform.command6.enabled=.t. thisform.command7.en
38、abled=.t. thisform.command8.enabled=.t. thisform.command9.enabled=.t. thisform.command5.caption=新增(a) &將按鈕標(biāo)題還原 thisform.command6.caption=修改(m) this.caption=退出(=60packm_tittle=allt(thisform.cd2.value)+allt(thisform.cd4.value)+考試不及格名單 &設(shè)置報(bào)表標(biāo)題inde on 考號 to tmpiddlabel form report成績標(biāo)簽 1 to print
39、er prompt prevuse退出:退出:set safe off &退出本模塊前先提交數(shù)據(jù)thisform.cd3.enabled=.f.if len(allt(thisform.cd1.value)#0 and len(allt(thisform.cd3.value)#0 &如果此前已錄入或修改過考試成績,則將新成績保存到成績表中。 lcmsg=正在保存數(shù)據(jù). wait window lcmsg noclear nowait at srow()/2,(scols()-len(lcmsg)/2 sele 成績表 dele for subst(考號,1,8)=allt(th
40、isform.cd1.value) and allt(課程代碼)=allt(thisform.cd3.value) pack sele 臨時(shí)成績表 scan m_kh=allt(考號) m_kcdm=allt(thisform.cd3.value) m_cj=成績 sele 成績表 appe blank repl 考號 with m_kh,課程代碼 with m_kcdm,成績 with m_cj sele 臨時(shí)成績表 endscan wait cleaendifrele thisform*do form 主界面功能:功能:可以對學(xué)生的成績進(jìn)行錄入,查詢,同時(shí)還實(shí)現(xiàn)了對學(xué)生成績按考號打印和按名
41、次打印,還可以對不及格的情況進(jìn)行分析。3.2.3 成績分析成績分析成績總覽成績總覽 建立三個(gè) label :班級代碼、班級名稱、按。再建立一個(gè)選項(xiàng)按鈕組。然后建立三個(gè)按鈕:顯示名次、導(dǎo)出 excel、退出。最后建立一個(gè)組合框。 其代碼如下:班級代碼:班級代碼:set safe offif len(allt(thisform.cd1.value)#0 &判斷是否選擇了班級代碼 thisform.command1.caption=顯示名次(t) thisform.cd2.value=班級表.班級名稱 &如果選擇了班級代碼,在 cd2 中顯示對應(yīng)的班級名稱 sele 課程安排表.課程
42、代碼,課程表.課程名稱 from 課程安排表 left outer join 課程表 ; &生成臨時(shí)表 kcdbf,存放當(dāng)前班級的課程安排情況 on allt(課程安排表.課程代碼)=allt(課程表.課程代碼) ; where allt(課程安排表.班級代碼)=allt(thisform.cd1.value) into table tmpkcdbf if recc()=0 =messagebox(該班級還未設(shè)置考試科目!,0+48,提示) return 0 endif lcmsg=正在生成數(shù)據(jù),請稍候. wait window lcmsg noclear nowait at srow
43、()/2,(scols()-len(lcmsg)/2 thisform.cd3.clear &清除 cd3 中原有下拉內(nèi)容 thisform.cd3.additem(考號) &在 cd3 中新增下拉內(nèi)容 thisform.cd3.additem(姓名) sele 學(xué)生檔案表.考號,學(xué)生檔案表.姓名 from 學(xué)生檔案表 where 學(xué)生檔案表.班級代碼=thisform.cd1.value ; order by 學(xué)生檔案表.考號 into table tmplsb1 &將所選班級學(xué)生過濾到臨時(shí)表 lsb1 中 i=0 k=recc() &k 用以記錄學(xué)生人數(shù) s
44、ele kcdbf scan thisform.cd3.additem(allt(課程名稱) &在 cd3 中新增課程內(nèi)容 i=i+1 &該變量存放該班級所選課程數(shù)量 m_i=allt(str(i) m_kcdm=allt(課程代碼) j=i+1 m_j=allt(str(j) m_kcmc=allt(課程名稱) sele * from 成績表 where allt(成績表.課程代碼)=m_kcdm and subs(成績表.考號,1,8)=allt(thisform.cd1.value) into table tmpls1 sele lsb&m_i.*,ls1.成績
45、as &m_kcmc from lsb&m_i left outer join ls1 on lsb&m_i.考號=ls1.考號 ; into table tmplsb&m_j repl all &m_kcmc with iif(isnull(&m_kcmc),0,&m_kcmc) &將所有 null 值記錄賦值 0 sele lsb&m_i use sele kcdbf endscan thisform.lbl1.caption=共有學(xué)生+allt(str(k)+人 wait clea &清除提示窗口內(nèi)容 sel
46、e ls1 use sele * from lsb&m_j into table tmplscjb &生成一個(gè) lscjb 臨時(shí)表,便于編程 sele lsb&m_j use sele lscjb m_zds=fcount() &記錄字段數(shù) thisform.grid1.recordsource=lscjb thisform.grid1.columncount=m_zds thisform.grid1.column1.width=70 thisform.grid1.column2.width=100 thisform.grid1.column1.controls
47、ource=考號 thisform.grid1.column2.controlsource=姓名 thisform.grid1.column1.header1.caption=考號 thisform.grid1.column2.header1.caption=姓名 thisform.grid1.column1.header1.alignment=2 thisform.grid1.column2.header1.alignment=2 for i=3 to m_zds m_i=allt(str(i) thisform.grid1.column&m_i.width=38 m_field=f
48、ield(i) thisform.grid1.column&m_i.controlsource=m_field thisform.grid1.column&m_i.header1.caption=m_field thisform.grid1.column&m_i.header1.alignment=2thisform.grid1.column&m_i.dynamicforecolor=iif(&m_field60,rgb(255,0,0),rgb(0,0,0) &將網(wǎng)格中分?jǐn)?shù)不及格同學(xué)紅色顯示出 endfor thisform.grid1.set
49、focus thisform.refreshendif按:按:set safe offif len(allt(this.value)#0 sele lscjb m_field=allt(this.value) if thisform.optiongroup1.value=1 sele * from lscjb order by &m_field desc into table tmpbb else sele * from lscjb order by &m_field asc into table tmpbb endif thisform.grid1.recordsource=
50、bb sele lscjb zap appe from tmpbb go top m_zds=fcount() &記錄字段數(shù) thisform.grid1.recordsource=lscjb thisform.grid1.columncount=m_zds thisform.grid1.column1.width=70 thisform.grid1.column2.width=100 thisform.grid1.column1.controlsource=考號 thisform.grid1.column2.controlsource=姓名 thisform.grid1.column
51、1.header1.caption=考號 thisform.grid1.column2.header1.caption=姓名 thisform.grid1.column1.header1.alignment=2 thisform.grid1.column2.header1.alignment=2 for i=3 to m_zds m_i=allt(str(i) thisform.grid1.column&m_i.width=38 m_field=field(i) thisform.grid1.column&m_i.controlsource=m_field thisform.g
52、rid1.column&m_i.header1.caption=m_field thisform.grid1.column&m_i.header1.alignment=2 thisform.grid1.column&m_i.dynamicforecolor=iif(&m_field60,rgb(255,0,0),rgb(0,0,0) &將網(wǎng)格中分?jǐn)?shù)不及格同學(xué)紅色顯示出 endfor sele bb use thisform.refreshendif選項(xiàng)按鈕組代碼選項(xiàng)按鈕組代碼:set safe offif len(allt(thisform.cd3.va
53、lue)#0 and len(allt(thisform.cd1.value)#0 sele lscjb m_field=allt(thisform.cd3.value) if thisform.optiongroup1.value=1 sele * from lscjb order by &m_field desc into table tmpbb else sele * from lscjb order by &m_field asc into table tmpbb endif thisform.grid1.recordsource=bb sele lscjb zap a
54、ppe from tmpbb go top m_zds=fcount() &記錄字段數(shù) thisform.grid1.recordsource=lscjb thisform.grid1.columncount=m_zds thisform.grid1.column1.width=70 thisform.grid1.column2.width=100 thisform.grid1.column1.controlsource=考號 thisform.grid1.column2.controlsource=姓名 thisform.grid1.column1.header1.caption=考
55、號 thisform.grid1.column2.header1.caption=姓名 thisform.grid1.column1.header1.alignment=2 thisform.grid1.column2.header1.alignment=2 for i=3 to m_zds m_i=allt(str(i) thisform.grid1.column&m_i.width=38 m_field=field(i) thisform.grid1.column&m_i.controlsource=m_field thisform.grid1.column&m_i
56、.header1.caption=m_field thisform.grid1.column&m_i.header1.alignment=2thisform.grid1.column&m_i.dynamicforecolor=iif(&m_field60,rgb(255,0,0),rgb(0,0,0) &將網(wǎng)格中分?jǐn)?shù)不及格同學(xué)紅色顯示出 endfor thisform.grid1.setfocus sele bb use thisform.refreshendif顯示名次:顯示名次:if thisform.command1.caption=顯示名次(t) thi
57、sform.command1.caption=隱藏名次(h)if len(allt(thisform.cd1.value)#0 lcmsg=正在生成數(shù)據(jù),請稍候. wait window lcmsg noclear nowait at srow()/2,(scols()-len(lcmsg)/2 sele * from 成績表 where allt(成績表.課程代碼)=* into table tmpls1 sele lscjb.*,ls1.成績 as 總成績,ls1.成績 as 名次 from lscjb left outer join ls1 ; on lscjb.考號=ls1.考號 in
58、to table tmpls2 &目的是在 ls2 表中加上總成績和名次兩個(gè)字段 repl all 總成績 with 0,名次 with 0 &將所有 null 值記錄賦值 0 sele ls1 use sele ls2 m_zds=fcount() &記錄字段數(shù) scan m_sum=0 &m_sum 用于存放當(dāng)前學(xué)生考試成績之和 for i=3 to m_zds-2 m_field=field(i) m_sum=m_sum+&m_field endfor repl 總成績 with m_sum endscan sele * from ls2 orde
59、r by 總成績 desc into table tmpls3 sele ls2 use sele ls3 repl all 名次 with recn() m_mc=1 m_cj=總成績 scan if 總成績=m_cj repl 名次 with m_mc else m_mc=名次 m_cj=總成績 repl 名次 with m_mc endif endscan thisform.grid1.recordsource=ls3 sele lscjb use sele * from ls3 order by 名次 into table tmplscjb sele ls3 use sele lscj
60、b thisform.grid1.recordsource=lscjb go top thisform.grid1.recordsource=lscjb thisform.grid1.columncount=m_zds thisform.grid1.column1.width=70 thisform.grid1.column2.width=100 thisform.grid1.column1.controlsource=考號 thisform.grid1.column2.controlsource=姓名 thisform.grid1.column1.header1.caption=考號 thi
61、sform.grid1.column2.header1.caption=姓名 thisform.grid1.column1.header1.alignment=2 thisform.grid1.column2.header1.alignment=2 for i=3 to m_zds m_i=allt(str(i) thisform.grid1.column&m_i.width=38 m_field=field(i) thisform.grid1.column&m_i.controlsource=m_field thisform.grid1.column&m_i.header1.caption=m_field thisform.grid1.column&m_i.header1.alignment=2 if i=m_zds-2thisform.grid1.column&m_i.dynamicforecolor=iif(&m_field60,rg
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024污水處理廠運(yùn)營合同書(范本)
- 2024幼兒園租房合同協(xié)議書樣本
- 房產(chǎn)抵押擔(dān)保借款合同書范例
- 2024貨船租賃合同范本范文
- 股權(quán)抵押借款合同范文2024年
- 店面租房門面房租房合同協(xié)議
- 商業(yè)鋪?zhàn)赓U合同格式
- 項(xiàng)目合作協(xié)議書模板示例
- 2024居間合同,居間合同范例
- 技術(shù)合作協(xié)議樣式
- 精品堆垛機(jī)安裝指導(dǎo)書
- 前臺月度績效考核表(KPI)
- 雞的飼養(yǎng)管理-優(yōu)質(zhì)課件
- 德育課(共19張PPT)
- 歷史幽憤的現(xiàn)代回響——《記念劉和珍君》課堂實(shí)錄
- 化學(xué)微生物學(xué)第7章 微生物轉(zhuǎn)化
- 《少年正是讀書時(shí)》-完整版PPT課件
- 四、貼標(biāo)機(jī)基本調(diào)整法1
- 船舶建造方案
- 35KV集電線路鐵塔組立專項(xiàng)方案
- 不銹鋼管規(guī)格表大全以及理論重量表大全
評論
0/150
提交評論