VB程序设计实验-学生成绩管理系统_第1页
VB程序设计实验-学生成绩管理系统_第2页
VB程序设计实验-学生成绩管理系统_第3页
VB程序设计实验-学生成绩管理系统_第4页
VB程序设计实验-学生成绩管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南工业大学计算机上机实习报告 姓名:张翼飞 序号:11学号:3班级:食工 1004班指导老师: 任老师 张老师日期:2011-03-05 目录一:系统名称:学生成绩管理系统的设计与实现二:设计目的三:程序摘要四:系统设计流程五:相关数据列表六:小结七:程序代码 (1)模块代码 (2)窗体代码一.系统名称:学生成绩管理系统的设计与实现二.设计目的1.熟悉VB 6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧;2. 主要掌握VB语言中的结构体指针及文件操作等内容3. 了解开发简单应用程序的全过程,包括:分析设计编程调试和编写报告.三.程序摘要先在记事本中创建2个文本文档,分别输入本班24名学生在本学期的5门考试课的成绩和课程名及其学分.在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,计算出每个学生5门课的加权平均分,并按平均分排列名次.然后显示菜单,调用各个函数,完成以下功能:1 用VB语言创建一个数据文件,文件名为:“VB课程设计”,用来存放班级的成绩表.2 分别统计全班每门课的平均分和标准差,并计算各分数段(90分以上;8090;7079;6069;60分以下)的学生数3 用VB语言创建一个数据文件,文件名为:“VB课程设计”,用来存放编号,课程名称,课程平均分,标准差,优秀,良好,中等,及格,不及格.4 打印每名学生成绩条,结果存放到用VB语言创建的一个数据文件中,成绩条格式为名次,学号,姓名,英语,数学,VB语言,物理,化学5 屏幕显示所有存在不及格课程的学生的名单(含学号,不及格课程名称,课程的学分及成绩)6 屏幕显示优等生名单(含学号,N门课成绩,平均分,名次),优等生条件:a) 平均分=90分b) 名次在本班位于前三名c) 平均分=85分,并且至少有一门课的成绩=95四、系统设计流程 系 统 功 能加 权 平 均 分每 门 课 的 平 均 分打 印 学 生 成 绩 总 表成 绩 条不 及 格 学 生 情 况优 秀 学 生 情 况五.相关数据列表1、原始成绩表2、课程及学分3、计算加权平均分4、按平均分排名次5、打印每位同学的成绩条6、打印不及格的人7、打印优等生情况8、每门课的平均分9、各分数段人数六小结 在这次上机实习过程中,我了解了程序在Visual VB 6.0中调试并运的方法,并上机实践解决了一些平时没有机会解决和一些曾经被自己忽视的问题,如程序的排序对结果显示影响,标点符号对程序结果的影响,并养成了仔细检查程序的好习惯,加强了自己动手的能力。但通过这次上机 让我看到了自己在VB学习中的漏洞,不过看到自己亲自编出的程序,心里非常高兴,这要特别感谢我的辅导老师们的耐心讲解,细心的帮助我调试程序。感谢学校老师给我们这样的机会,它有利于培养我们独立思考,求异思维的能力。我深信这次课程设计,对我的VB学习以及今后的计算机等级考试的学习和考试会起到很大的促进作用,我从中看到了自己还有很多的不足,在这里真心的感谢两位老师的耐心的指点,今后我会更加努力学好计算机方面的知识!总之,这次实习让我受益良多,我更深的体会了细节决定成败,无论在以后上机还是学习做事中,我一定注意细节。希望学校多给我们这样动手实践的机会,让我们在实践中发现问题,解决问题。我会珍惜加倍这样难得的机会七、程序代码1、模块代码Type xscjb xh As String xm As String cj(1 To 5) As Integer aver 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% 总人数,课程数,总学分Public str As String2、窗体代码Private Sub Form_Load()Dim st1$(), str1$Open App.Path + chengji.txt For Input As #1Open App.Path + kecheng.txt For Input As #2N = 0: M = 0: Zxf = 0 总人数,课程数,总学分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, ) Print st1(0), st1(1) ke(M).编号 = st1(0) ke(M).课程名称 = st1(1) ke(M).课程学分 = st1(2) Zxf = Zxf + ke(M).课程学分LoopLine Input #1, str1Text1 = 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(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, ) 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(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) 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 / 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() 统计各分数段人数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) = 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(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(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); 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).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 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); 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(26); 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) 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 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) = 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(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; 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).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(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 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(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论