长江大学VB上机实习报告_第1页
长江大学VB上机实习报告_第2页
长江大学VB上机实习报告_第3页
长江大学VB上机实习报告_第4页
长江大学VB上机实习报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机上机实习报告学院:石油工程学院班级:储运11204姓名:魏亚荣学号:XXXXXXX班内序号:XX指导教师:XXX目录1. 系统名称-3二. 实习目的-3三. 系统功能概要-3四. 系统设计分析-3五窗体设计与程序代码-5六心得体会-16一、系统名称-班级学生成绩管理系统二、实习目的:综合应用所学理论知识,联系实际开发一个具备简易功能的班级学生成绩管理系统。熟悉程序编写与调试,熟悉数据文件的创建、打开、读写、关闭等相关操作,同时让我们熟悉VB 6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧。三、系统功能概要1、用记事本新建

2、一个文本文件,将本班的M名学生的有关信息及本学期的N门考试课的成绩(要求用假想分数,并要求将自己的每门课的放在第一列)输入到这个文件中,建议按如下形式存放(注:20M50、5N8,下文以M=10,N=5为例):序号 姓名 幸运日 出生日期 英语 VB 数学 体育 专业课 7 作者自己 8 99 100 98 98 100 10 张某 6 1993.08.06 77 76 80 89 85 5 李某 1 1994.11.16 89 88 99 97 95 3 王某 6 1993.06.04 56 76 43 54 77 2 刘某 3 1994.01.05 82 87 85 79 89 1 孙某

3、2 1994.01.15 45 56 66 65 68 4 赵某 5 1992.01.05 82 96 56 85 55 6 陈某 3 1993.12.25 86 86 66 86 879 周某 5 1666.12.23 56 96 65 56 568 钱某 6 1994.03.03 56 65 56 56 56 2、将本学期的N门课程及其学分(16学时为1个学分)输入到另一个数据文件(文件类型同上题)中,建议如下列形式存放:编号 课程名称 课程学分1 英语 5.02 vb程序设计 43 数学 4.54 体育 3.0 5 专业课 10.01)找出“出生日”与幸运日相同的人,并打印出其信息(每行

4、输出一个人信息)2)统计出分别拥有幸运数字1,2,3,4,5,6,7,8,9,0的人数3)能查出任何一个你感兴趣的人的信息4)可新添加一个人的信息5)和删除一个人的信息6)可以对某个人的幸运数字进行修改,只改变其幸运数字,其他信息不变7)根据以上两文件内容分别计算每个学生N门课的加权平均分(保留2位小数,4舍5入),按平均分排列名次,平均分相同则名次并列,如第1、2、2、4、5、5、7名。用VB创建一个数据文件,存放班级的成绩表,建议按以下形式存放。学号 姓名 英语 vb程序设计 数学 平均成绩 名次1 张某 76 89 89 80.5 22 李某 91 96 67 78.2 33 王某 75

5、 58 56 88.8 14 赵某 58 67 77 68.5 48)分别统计全班每门课的平均分,并计算各分数段(60分以下;6069;7079;8089;90分以上)的学生人数。用VB创建一个新的数据文件,在该文件中存放数据的格式如下:范围. 英语 VB .>=90 3 5 .80-89 10 12 . . . . . . . . . .9) 打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。10)打印所有存在不及格课程学生的名单(含学号、不及格课程名称、课程的学分及成绩)。11)打印优等生名单(学号、门课成绩、平均分名次)优等生条件:a) 平均分 ³ 90

6、分b) 名次在本班位于前三名c) 平均分³85分,并且有二门课的成绩都 ³ 95分选做内容:打印每门课成绩分布图说 明:所有输出结果应写入用VB创建的文件中,格式要整齐,并有适当的文字说明。实习报告要求:应包括分析设计与说明、部分过程(函数)的源程序清单、程序调试过程中遇到的问题及解决方法,有待改善或改进的意见,对本次实习的意见与建议、收获等。其中原始数据及程序运行的结果应作为附录附于实习报告之后。四、系统设计分析:1、 该成绩管理系统中要同时表示学生的学号、姓名、成绩等一些信息,及课程、课程学分等一些信息,由于每项信息的意义不同,数据类型也不同,但还要同时作为一个整体来描

7、叙和处理,因此需要通过用户自定义来解决。所以在编程之前新建一个标准模块用来定义自定义类型。2、 为了便于后面执行求加权平均分、排名等命令,在Form1发生Load事件时应将学生信息和课程信息读取并放到两个数组中,由于这两个数组在该管理系统的全程序都要用到,因此应定义为全局类型。如是在标准模块中定义两个数组。3、 由于原始数据文件中相邻的两列之间空格的长短不一,因此在调用Split函数之前应窗体通用模块中自定义一个space1函数将原始数据文件中相邻的两列之间空格数变为相同。4、 在编写程序时,由于该系统的程序代码较多,因此在编写时要合理。5、 在打印成绩条、不及格名单、优等生等信息时,应边用w

8、rite语句分别将数据存入一个新的文件中。6、 实习必须按着老师的严格要求完成所有的实习任务,并整理成文件打印。五窗体设计与程序代码 1.此次窗体设计使用了11个命令按钮分别对应不同的系统功能要求,具体界面如下2.程序代码统计“出生日”与幸运日相同的人Dim stu() As student, n%, kc() As kecheng, x%Private Sub Command1_Click()ClsFor i = 1 To UBound(stu() If Right(stu(i).birthday, 2) = stu(i).luckyday Then Print stu(i).num; st

9、u(i).name; stu(i).luckyday; stu(i).birthday; For j = 1 To 5 Print stu(i).score(j); Next j Print End IfNext iEnd Sub统计不及格学生的名单Private Sub Command10_Click()ClsPrint "序号" Spc(3); "姓名" Spc(3); "成绩" Spc(3); "学分" Spc(3); "课程" For i = 1 To UBound(stu() For

10、j = 1 To 5 If stu(i).score(j) < 60 Then Print Tab(0); stu(i).num; Spc(3); stu(i).name; Spc(2); stu(i).score(j); Spc(3); kc(j).xf; Spc(3); kc(j).km; End If Next j Next iEnd Sub打印优等生名单Private Sub Command11_Click()ClsPrint "学号""英语" Space(3); "VB" Space(3); "数学"

11、; Space(3); "体育" Space(3); "专业课" Space(3); "排名"Dim zxf%, i%, j%, k%For i = 1 To UBound(kc() zxf = zxf + kc(i).xfNext iFor j = 1 To UBound(stu() For k = 1 To 5 stu(j).average = stu(j).average + stu(j).score(k) * kc(k).xf / zxf stu(j).average = Format(stu(j).average, &quo

12、t;0.00") Next kNext jFor m = 1 To UBound(stu() stu(m).rank = 1 For n = 1 To UBound(stu() If stu(m).average < stu(n).average Then stu(m).rank = stu(m).rank + 1 End If Next nNext mFor i = 1 To UBound(stu() k = 0 For j = 1 To 5 If stu(i).score(j) >= 95 Then k = k + 1 End If Next j If stu(i).

13、average >= 90 Or stu(i).rank <= 3 Or (stu(i).average >= 85 And k >= 2) Then Print stu(i).num; Space(3); stu(i).name; For m = 1 To 5 Print stu(i).score(m); Spc(4); Next m Print stu(i).rank End IfNext iEnd Sub统计各幸运数字的人数Private Sub Command2_Click()ClsFor i = 0 To 9 Dim luckypeople% For j =

14、1 To UBound(stu() If Val(stu(j).luckyday) = i Then luckypeople = luckypeople + 1 End If Next j Print "幸运数字为" & i; "的人数为:" & luckypeople luckypeople = 0Next iEnd Sub查询信息Private Sub Command3_Click()ClsDim rm As String, i%, j%rm = InputBox("请输入你想要查询的同学的姓名")For i =

15、1 To UBound(stu() If Trim(stu(i).name) = rm Then Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday; For j = 1 To 5 Print stu(i).score(j); Next j End IfNext iEnd Sub添加信息Private Sub Command4_Click()ClsDim xinxuesheng As Stringxinxuesheng = InputBox("请依次按照序号,姓名,幸运日,出生日期,英语,vb,数学,体育,专

16、业课的顺序输入新同学的信息,中间用空格隔开")Open "e:vb作业1.txt" For Append As #1Print #1, xinxueshengPrintClose #1Do While InStr(Trim(xinxuesheng), " ") <> 0 xinxuesheng = Replace(Trim(xinxuesheng), " ", " ")Loopa = Split(xinxuesheng, " ")n = n + 1ReDim Preserv

17、e stu(n)stu(n).num = a(0)stu(n).name = a(1)stu(n).luckyday = a(2)stu(n).birthday = a(3)For i = 1 To 5 stu(n).score(i) = a(3 + i)Next iFor i = 1 To UBound(stu() Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday; For j = 1 To 5 Print stu(i).score(j); Next j PrintNext iEnd Sub删除信息Private

18、Sub Command5_Click()ClsDim rm As Stringrm = InputBox("请输入你要删除的同学的姓名")For i = 1 To n If Trim(stu(i).name) = rm Then Exit For End IfNext i For j = i To n - 1 stu(j) = stu(j + 1) Next j ReDim Preserve stu(n - 1)For i = 1 To UBound(stu() Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).b

19、irthday; For j = 1 To 5 Print stu(i).score(j); Next j PrintNext iEnd Sub修改幸运数字Private Sub Command6_Click()ClsDim rm As String, shuzi As String, i%, j%rm = InputBox("请输入你要修改的同学的姓名")shuzi = InputBox("请输入你要修改后的幸运数字")For i = 1 To UBound(stu() If Trim(stu(i).name) = rm Then stu(i).luc

20、kyday = shuzi Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday; For j = 1 To 5 Print stu(i).score(j); Next j End IfNext iEnd Sub计算每个学生的平均分Private Sub Command7_Click()ClsDim zxf%, i%, j%, k%For i = 1 To UBound(kc() zxf = zxf + kc(i).xfNext iFor j = 1 To UBound(stu() For k = 1 To 5 stu(

21、j).average = stu(j).average + stu(j).score(k) * kc(k).xf / zxf stu(j).average = Format(stu(j).average, "0.00") Next kNext jFor m = 1 To UBound(stu() stu(m).rank = 1 For n = 1 To UBound(stu() If stu(m).average < stu(n).average Then stu(m).rank = stu(m).rank + 1 End If Next nNext mOpen &q

22、uot;e:成绩单.txt" For Append As #3Print #3, "序号" Space(3); "姓名" Space(3); "幸运日" Space(3); "出生日期" Space(4); "数学" Space(4); "英语" Space(4); "vb" Space(4); "物理" Space(3); "专业课" Space(3); "平均分" Space(3);

23、 "排名"For i = 1 To UBound(stu() Print #3, Print #3, stu(i).num; Space(3); stu(i).name; Space(3); stu(i).luckyday; Space(3); stu(i).birthday; Space(3); For j = 1 To 5 Print #3, stu(i).score(j); Space(3); Next j Print #3, stu(i).average; Space(3); stu(i).rank;Next iClose #3End Sub统计成绩分布Privat

24、e Sub Command8_Click()ClsDim i%, j%, bsix%, ss%, se%, en%, anine%, a(1 To 25) As Integer, b(1 To 5) As Integer, c(1 To 5) As Integer, d(1 To 5) As Integer, e(1 To 5) As Integer, o(1 To 5) As Integer, p(1 To 5) As Integer, q(1 To 5) As Integer, r(1 To 5) As Integer, s(1 To 5) As IntegerFor i = 1 To 5

25、 kc(i).zf = 0 For j = 1 To UBound(stu() kc(i).zf = kc(i).zf + stu(j).score(i) Next j kc(i).average = kc(i).zf / UBound(stu() kc(i).average = Format(kc(i).average, "0.00") Print kc(i).averageNext iOpen "e:成绩分布.txt" For Append As #4Print #4, "范围" Space(8); "数学"

26、Space(3); "英语" Space(3); "vb" Space(3); "物理" Space(3); "专业课"For i = 1 To 5 For j = 1 To UBound(stu() If stu(j).score(i) >= 90 Then o(i) = o(i) + 1 ElseIf stu(j).score(i) >= 80 Then p(i) = p(i) + 1 ElseIf stu(j).score(i) >= 70 Then q(i) = q(i) + 1 Else

27、If stu(j).score(i) >= 60 Then r(i) = r(i) + 1 Else s(i) = s(i) + 1 End If Next jNext iPrint #4, ">=90" Spc(8);For i = 1 To 5 Print #4, o(i); Spc(4);Next iPrint #4,Print #4, ">=80" Spc(8);For i = 1 To 5 Print #4, p(i); Spc(4);Next iPrint #4,Print #4, ">=70" S

28、pc(8);For i = 1 To 5 Print #4, q(i); Spc(4);Next iPrint #4,Print #4, ">=60" Spc(8);For i = 1 To 5 Print #4, r(i); Spc(4);Next iPrint #4,Print #4, "其他" Spc(8);For i = 1 To 5 Print #4, s(i); Spc(4);Next iPrint #4,Close #4End Sub打印学生成绩条Private Sub Command9_Click()Dim stu(1 To 20) As StringOpen "e:成绩单.txt" For Input As #5For i = 1 To 20Line Input #5, stu(i): Print stu(i)Next iClose #5End Sub文本信息的输入Private Sub Form_Load()Dim str1 As String, a() As String, i%, str2 As String, b() As StringOpen "e:学生

温馨提示

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

评论

0/150

提交评论