VB程序設計實驗學生成績管理系統(tǒng)_第1頁
VB程序設計實驗學生成績管理系統(tǒng)_第2頁
VB程序設計實驗學生成績管理系統(tǒng)_第3頁
VB程序設計實驗學生成績管理系統(tǒng)_第4頁
VB程序設計實驗學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

5、樣的機會,它有利于培養(yǎng)我們獨立思考,求異思維的能力。我深信這次課程設計,對我的VB學習以及今后的計算機等級考試的學習和考試會起到很大的促進作用,我從中看到了自己還有很多的不足,在這里真心的感謝兩位老師的耐心的指點,今后我會更加努力學好計算機方面的知識!總之,這次實習讓我受益良多,我更深的體會了細節(jié)決定成敗,無論在以后上機還是學習做事中,我一定注意細節(jié)。希望學校多給我們這樣動手實踐的機會,讓我們在實踐中發(fā)現(xiàn)問題,解決問題。我會珍惜加倍這樣難得的機會七、程序代碼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 編號 As Integer 課程名稱 As String 課程學分 As Single aver As SingleEnd TypePublic stu() As xscjbPublic ke() As kechenPublic N%, M%, Zxf% '總人數(shù),課程數(shù),總學分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 '總人數(shù),課程數(shù),總學分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).編號 = st1(0) ke(M).課程名稱 = st1(1) ke(M).課程學分 = st1(2) Zxf = Zxf + ke(M).課程學分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 "學號 姓名 化學 工程制圖 線代 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() '計算加權平均分 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).課程學分 Next j stu(i).aver = Round(stu(i).aver

12、 / Zxf, 2) Next i Cls Print "學號 姓名 平均分" 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)計各分數(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 " 范圍 化學 工程制圖 線代 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).課程學分 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 "學號 姓名 名次" 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 " 化學 工程制圖 線代 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 "學號 姓名 課程名稱 課程學分 成績" 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).課程學分; 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).課程學分 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 "學號 姓名 化學 工程制圖 線代 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).課程學分 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 "學號 姓名 化學 工程制圖 線代 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).課程學分 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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論