VB程序設(shè)計(jì)實(shí)驗(yàn)學(xué)生成績(jī)管理系統(tǒng)_第1頁
VB程序設(shè)計(jì)實(shí)驗(yàn)學(xué)生成績(jī)管理系統(tǒng)_第2頁
VB程序設(shè)計(jì)實(shí)驗(yàn)學(xué)生成績(jī)管理系統(tǒng)_第3頁
VB程序設(shè)計(jì)實(shí)驗(yàn)學(xué)生成績(jī)管理系統(tǒng)_第4頁
VB程序設(shè)計(jì)實(shí)驗(yàn)學(xué)生成績(jī)管理系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、河南工業(yè)大學(xué)計(jì)算機(jī)上機(jī)實(shí)習(xí)報(bào)告 姓名:張翼飛 序號(hào):11學(xué)號(hào):201048060413班級(jí):食工 1004班指導(dǎo)老師: 任老師 張老師日期:2011-03-05 目錄一:系統(tǒng)名稱:學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)二:設(shè)計(jì)目的三:程序摘要四:系統(tǒng)設(shè)計(jì)流程五:相關(guān)數(shù)據(jù)列表六:小結(jié)七:程序代碼 (1)模塊代碼 (2)窗體代碼一.系統(tǒng)名稱:學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)二.設(shè)計(jì)目的1.熟悉VB 6.0的開發(fā)環(huán)境,掌握基本的編程方法,熟悉用VB語言完成一個(gè)應(yīng)用程序的設(shè)計(jì)過程,掌握有關(guān)編輯和調(diào)試程序的方法和技巧;2. 主要掌握VB語言中的結(jié)構(gòu)體指針及文件操作等內(nèi)容3. 了解開發(fā)簡(jiǎn)單應(yīng)用程序的全過程,包括:分析設(shè)

2、計(jì)編程調(diào)試和編寫報(bào)告.三.程序摘要先在記事本中創(chuàng)建2個(gè)文本文檔,分別輸入本班24名學(xué)生在本學(xué)期的5門考試課的成績(jī)和課程名及其學(xué)分.在主函數(shù)中讀入兩個(gè)原始數(shù)據(jù)文件的內(nèi)容,保存在對(duì)應(yīng)的結(jié)構(gòu)體數(shù)組中,計(jì)算出每個(gè)學(xué)生5門課的加權(quán)平均分,并按平均分排列名次.然后顯示菜單,調(diào)用各個(gè)函數(shù),完成以下功能:1 用VB語言創(chuàng)建一個(gè)數(shù)據(jù)文件,文件名為:“VB課程設(shè)計(jì)”,用來存放班級(jí)的成績(jī)表.2 分別統(tǒng)計(jì)全班每門課的平均分和標(biāo)準(zhǔn)差,并計(jì)算各分?jǐn)?shù)段(90分以上;8090;7079;6069;60分以下)的學(xué)生數(shù)3 用VB語言創(chuàng)建一個(gè)數(shù)據(jù)文件,文件名為:“VB課程設(shè)計(jì)”,用來存放編號(hào),課程名稱,課程平均分,標(biāo)準(zhǔn)差,優(yōu)秀,

3、良好,中等,及格,不及格.4 打印每名學(xué)生成績(jī)條,結(jié)果存放到用VB語言創(chuàng)建的一個(gè)數(shù)據(jù)文件中,成績(jī)條格式為名次,學(xué)號(hào),姓名,英語,數(shù)學(xué),VB語言,物理,化學(xué)5 屏幕顯示所有存在不及格課程的學(xué)生的名單(含學(xué)號(hào),不及格課程名稱,課程的學(xué)分及成績(jī))6 屏幕顯示優(yōu)等生名單(含學(xué)號(hào),N門課成績(jī),平均分,名次),優(yōu)等生條件:a) 平均分>=90分b) 名次在本班位于前三名c) 平均分>=85分,并且至少有一門課的成績(jī)>=95四、系統(tǒng)設(shè)計(jì)流程 系 統(tǒng) 功 能加 權(quán) 平 均 分每 門 課 的 平 均 分打 印 學(xué) 生 成 績(jī) 總 表成 績(jī) 條不 及 格 學(xué) 生 情 況優(yōu) 秀 學(xué) 生 情 況五.

4、相關(guān)數(shù)據(jù)列表1、原始成績(jī)表2、課程及學(xué)分3、計(jì)算加權(quán)平均分4、按平均分排名次5、打印每位同學(xué)的成績(jī)條6、打印不及格的人7、打印優(yōu)等生情況8、每門課的平均分9、各分?jǐn)?shù)段人數(shù)六小結(jié) 在這次上機(jī)實(shí)習(xí)過程中,我了解了程序在Visual VB 6.0中調(diào)試并運(yùn)的方法,并上機(jī)實(shí)踐解決了一些平時(shí)沒有機(jī)會(huì)解決和一些曾經(jīng)被自己忽視的問題,如程序的排序?qū)Y(jié)果顯示影響,標(biāo)點(diǎn)符號(hào)對(duì)程序結(jié)果的影響,并養(yǎng)成了仔細(xì)檢查程序的好習(xí)慣,加強(qiáng)了自己動(dòng)手的能力。但通過這次上機(jī) 讓我看到了自己在VB學(xué)習(xí)中的漏洞,不過看到自己親自編出的程序,心里非常高興,這要特別感謝我的輔導(dǎo)老師們的耐心講解,細(xì)心的幫助我調(diào)試程序。感謝學(xué)校老師給我們這

5、樣的機(jī)會(huì),它有利于培養(yǎng)我們獨(dú)立思考,求異思維的能力。我深信這次課程設(shè)計(jì),對(duì)我的VB學(xué)習(xí)以及今后的計(jì)算機(jī)等級(jí)考試的學(xué)習(xí)和考試會(huì)起到很大的促進(jìn)作用,我從中看到了自己還有很多的不足,在這里真心的感謝兩位老師的耐心的指點(diǎn),今后我會(huì)更加努力學(xué)好計(jì)算機(jī)方面的知識(shí)!總之,這次實(shí)習(xí)讓我受益良多,我更深的體會(huì)了細(xì)節(jié)決定成敗,無論在以后上機(jī)還是學(xué)習(xí)做事中,我一定注意細(xì)節(jié)。希望學(xué)校多給我們這樣動(dòng)手實(shí)踐的機(jī)會(huì),讓我們?cè)趯?shí)踐中發(fā)現(xiàn)問題,解決問題。我會(huì)珍惜加倍這樣難得的機(jī)會(huì)七、程序代碼1、模塊代碼Type xscjb xh As String xm As String cj(1 To 5) As Integer aver

6、 As Single mc As Integer End TypeType kechen 編號(hào) As Integer 課程名稱 As String 課程學(xué)分 As Single aver As SingleEnd TypePublic stu() As xscjbPublic ke() As kechenPublic N%, M%, Zxf% '總?cè)藬?shù),課程數(shù),總學(xué)分Public str As String2、窗體代碼Private Sub Form_Load()Dim st1$(), str1$Open App.Path + "chengji.txt" For I

7、nput As #1Open App.Path + "kecheng.txt" For Input As #2N = 0: M = 0: Zxf = 0 '總?cè)藬?shù),課程數(shù),總學(xué)分Line Input #2, str1Do While Not EOF(2) M = M + 1 ReDim Preserve ke(M) Line Input #2, str1 'Text1 = Text1 & vbCrLf & str1 str1 = Trim(str1) str1 = space1(str1) st1 = Split(str1, " &

8、quot;) 'Print st1(0), st1(1) ke(M).編號(hào) = st1(0) ke(M).課程名稱 = st1(1) ke(M).課程學(xué)分 = st1(2) Zxf = Zxf + ke(M).課程學(xué)分LoopLine Input #1, str1'Text1 = str1 Do While Not EOF(1) N = N + 1 ReDim Preserve stu(N) Line Input #1, str1 'Text1 = Text1 & vbCrLf & str1 str1 = Trim(str1) str1 = space1

9、(str1) st1 = Split(str1, " ") stu(N).xh = st1(0) stu(N).xm = st1(1) stu(N).cj(1) = st1(2) stu(N).cj(2) = st1(3) stu(N).cj(3) = st1(4) stu(N).cj(4) = st1(5) stu(N).cj(5) = st1(6) stu(N).aver = 0 stu(N).mc = 0LoopEnd SubPublic Function space1(ByVal sss As String) Dim x% x = InStr(sss, "

10、 ") Do While x > 0 sss = Replace(sss, " ", " ") x = InStr(sss, " ") Loop space1 = sssEnd FunctionPrivate Sub yuancj_Click() Dim i% Cls Print "學(xué)號(hào) 姓名 化學(xué) 工程制圖 線代 VB 物理" For i = 1 To N Print stu(i).xh; Tab(12); stu(i).xm; Tab(22); stu(i).cj(1); Print Tab(3

11、6); stu(i).cj(2); Tab(46); stu(i).cj(3); Tab(57); stu(i).cj(4); Print Tab(66); stu(i).cj(5); Tab(77) Next iEnd SubPrivate Sub Average_Click() '計(jì)算加權(quán)平均分 Dim i% For i = 1 To N stu(i).aver = 0 For j = 1 To M stu(i).aver = stu(i).aver + stu(i).cj(j) * ke(j).課程學(xué)分 Next j stu(i).aver = Round(stu(i).aver

12、 / Zxf, 2) Next i Cls Print "學(xué)號(hào) 姓名 平均分" For i = 1 To N Print stu(i).xh; Tab(12); stu(i).xm; Tab(26); stu(i).aver Next iEnd SubPrivate Sub GRS_Click() '統(tǒng)計(jì)各分?jǐn)?shù)段人數(shù)Dim chengji(1 To 5, 1 To 5) As Integer Cls For j = 1 To M For i = 1 To NSelect Case stu(i).cj(j)Case Is >= 90 chengji(1, j)

13、= chengji(1, j) + 1Case 80 To 89 chengji(2, j) = chengji(2, j) + 1Case 70 To 79 chengji(3, j) = chengji(3, j) + 1Case 60 To 69 chengji(4, j) = chengji(4, j) + 1Case Is < 60 chengji(5, j) = chengji(5, j) + 1End Select Next iNext jPrint " 范圍 化學(xué) 工程制圖 線代 VB 物理 "Print "90分以上 " Tab(

14、12); chengji(1, 1); Tab(24); chengji(1, 2); Tab(37); chengji(1, 3); Tab(47); chengji(1, 4); Tab(55); chengji(1, 5)Print "80-89分 " Tab(12); chengji(2, 1); Tab(24); chengji(2, 2); Tab(37); chengji(2, 3); Tab(47); chengji(2, 4); Tab(55); chengji(2, 5)Print "70-79分 " Tab(12); chengji

15、(3, 1); Tab(24); chengji(3, 2); Tab(37); chengji(3, 3); Tab(47); chengji(3, 4); Tab(55); chengji(3, 5)Print "60-69分" Tab(12); chengji(4, 1); Tab(24); chengji(4, 2); Tab(37); chengji(4, 3); Tab(47); chengji(4, 4); Tab(55); chengji(4, 5)Print "59分以下" Tab(12); chengji(5, 1); Tab(24)

16、; chengji(5, 2); Tab(37); chengji(5, 3); Tab(47); chengji(5, 4); Tab(55); chengji(5, 5)End SubPrivate Sub minci_Click() Dim i%, j%, k%, ti%, ts$, tsn!, ii%, ave!, kk% For i = 1 To N stu(i).aver = 0 For j = 1 To M stu(i).aver = stu(i).aver + stu(i).cj(j) * ke(j).課程學(xué)分 Next j stu(i).aver = Round(stu(i)

17、.aver / Zxf, 2) Next i For i = 1 To N - 1 k = i For j = i + 1 To N If stu(k).aver < stu(j).aver Then k = j Next j ts = stu(k).xh: stu(k).xh = stu(i).xh: stu(i).xh = ts ts = stu(k).xm: stu(k).xm = stu(i).xm: stu(i).xm = ts tsn = stu(k).aver: stu(k).aver = stu(i).aver: stu(i).aver = tsn For ii = 1

18、To M ti = stu(k).cj(ii): stu(k).cj(ii) = stu(i).cj(ii): stu(i).cj(ii) = ti Next ii Next i k = 1: ave = stu(1).aver For i = 1 To N If stu(i).aver = ave Then stu(i).mc = k Else ave = stu(i).aver k = k + 1 stu(i).mc = k End If Next i Cls Print "學(xué)號(hào) 姓名 名次" For i = 1 To N Print stu(i).xh; Tab(12

19、); stu(i).xm; Tab(22); stu(i).mc Next iEnd SubPrivate Sub MPJ_Click()Dim i%, j% For j = 1 To M ke(j).aver = 0 For i = 1 To N ke(j).aver = ke(j).aver + stu(i).cj(j) Next i ke(j).aver = Round(ke(j).aver / N, 2) Next j Cls Print " 化學(xué) 工程制圖 線代 VB 物理" Print ke(1).aver; Tab(13); ke(2).aver; Tab(2

20、6); ke(3).aver; Tab(36); ke(4).aver; Tab(45); ke(5).aver End SubPrivate Sub Print59_Click()Dim i% Cls Print "學(xué)號(hào) 姓名 課程名稱 課程學(xué)分 成績(jī)" For i = 1 To N For j = 1 To M If stu(i).cj(j) <= 59 Then Print stu(i).xh; Tab(12); stu(i).xm; Tab(21); ke(j).課程名稱; Tab(35); ke(j).課程學(xué)分; Tab(47); stu(i).cj(j)

21、End If Next j Next iEnd SubPrivate Sub printall_Click()Dim i%, j%, k%, ti%, ts$, tsn!, ii%, ave!, kk%For i = 1 To N stu(i).aver = 0 For j = 1 To M stu(i).aver = stu(i).aver + stu(i).cj(j) * ke(j).課程學(xué)分 Next j stu(i).aver = Round(stu(i).aver / Zxf) Next i For i = 1 To N - 1 k = i For j = i + 1 To N If

22、 stu(k).aver < stu(j).aver Then k = j Next j ts = stu(k).xh: stu(k).xh = stu(i).xh: stu(i).xh = ts ts = stu(k).xm: stu(k).xm = stu(i).xm: stu(i).xm = ts tsn = stu(k).aver: stu(k).aver = stu(i).aver: stu(i).aver = tsn For ii = 1 To M ti = stu(k).cj(ii): stu(k).cj(ii) = stu(i).cj(ii): stu(i).cj(ii)

23、 = ti Next ii Next i k = 1: ave = stu(1).aver For i = 1 To N If stu(i).aver = ave Then stu(i).mc = k Else ave = stu(i).aver k = k + 1 stu(i).mc = k End If Next i Cls Print "學(xué)號(hào) 姓名 化學(xué) 工程制圖 線代 VB 物理 平均分 名次" For i = 1 To N Print stu(i).xh; Tab(12); stu(i).xm; Tab(22); stu(i).cj(1); Print Tab(3

24、6); stu(i).cj(2); Tab(46); stu(i).cj(3); Tab(57); stu(i).cj(4); Print Tab(66); stu(i).cj(5); Tab(77); stu(i).aver; Spc(6); stu(i).mc Next iEnd SubPrivate Sub PrintCJD_Click()Dim i%, j%, k%, ti%, ts$, tsn!, ii%, ave!, kk%For i = 1 To N stu(i).aver = 0 For j = 1 To M stu(i).aver = stu(i).aver + stu(i)

25、.cj(j) * ke(j).課程學(xué)分 Next j stu(i).aver = Round(stu(i).aver / Zxf, 2) Next i For i = 1 To N - 1 k = i For j = i + 1 To N If stu(k).aver < stu(j).aver Then k = j Next j ts = stu(k).xh: stu(k).xh = stu(i).xh: stu(i).xh = ts ts = stu(k).xm: stu(k).xm = stu(i).xm: stu(i).xm = ts tsn = stu(k).aver: stu

26、(k).aver = stu(i).aver: stu(i).aver = tsn For ii = 1 To M ti = stu(k).cj(ii): stu(k).cj(ii) = stu(i).cj(ii): stu(i).cj(ii) = ti Next ii Next i k = 1: ave = stu(1).aver For i = 1 To N If stu(i).aver = ave Then stu(i).mc = k Else ave = stu(i).aver k = k + 1 stu(i).mc = k End If Next i Cls For i = 1 To

27、 N Print "學(xué)號(hào) 姓名 化學(xué) 工程制圖 線代 VB 物理 平均分 名次" Print stu(i).xh; Tab(12); stu(i).xm; Tab(22); stu(i).cj(1); Print Tab(36); stu(i).cj(2); Tab(46); stu(i).cj(3); Tab(57); stu(i).cj(4); Print Tab(66); stu(i).cj(5); Tab(77); stu(i).aver; Tab(85); Tab(90); stu(i).mc Next iEnd SubPrivate Sub PrintGood_

28、Click() Dim i%, j%, k%, ti%, ts$, tsn!, ii%, ave!, kk% For i = 1 To N stu(i).aver = 0 For j = 1 To M stu(i).aver = stu(i).aver + stu(i).cj(j) * ke(j).課程學(xué)分 Next j stu(i).aver = Round(stu(i).aver / Zxf, 2) Next i For i = 1 To N - 1 k = i For j = i + 1 To N If stu(k).aver < stu(j).aver Then k = j Next j ts = stu(k).xh: stu(k).xh = stu(i).xh: stu(i).xh = ts ts = stu(k).xm: stu(k).xm = stu(i).xm

溫馨提示

  • 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)論