长江大学VB上机实习报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vb上机实习报告”。
计算机上机实习报告
学院:石油工程学院 班级:储运11204 姓名:魏亚荣
学号:XXXXXXX 班内序号:XX 指导教师:XXX
第 1 页
计算机上机实习报告
目录
一.系统名称----------------------------3 二.实习目的----------------------------3 三.系统功能概要----------------------3 四.系统设计分析----------------------3 五.窗体设计与程序代码------------5 六.心得体会---------------------------16
第页
计算机上机实习报告
一、系统名称----班级学生成绩管理系统
二、实习目的:
综合应用所学理论知识,联系实际开发一个具备简易功能的班级学生成绩管理系统。熟悉程序编写与调试,熟悉数据文件的创建、打开、读写、关闭等相关操作,同时让我们熟悉VB 6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧。
三、系统功能概要
1、用记事本新建一个文本文件,将本班的M名学生的有关信息及本学期的N门考试课的成绩(要求用假想分数,并要求将自己的每门课的放在第一列)输入到这个文件中,建议按如下形式存放(注:20≤M≤50、5≤N≤8,下文以M=10,N=5为例): 序号
姓名
幸运日
出生日期
英语
VB 数学
体育
专业课
作者自己
1992.12.19 99
98
10
张某
1993.08.06 77
80
5
李某
1994.11.16 89
99
3
王某
1993.06.04 56
43
2
刘某
1994.01.05 82
85
1
孙某
1994.01.15 45
66
4
赵某
1992.01.05 82
56
6
陈某
1993.12.25 86
66
9
周某
1666.12.23 56
65
8
钱某
1994.03.03 56
56
562、将本学期的N门课程及其学分(16学时为1个学分)输入到另一个数据文件(文件类型同上题)中,建议如下列形式存放:
编号
课程名称
课程学分
英语
5.0 2
vb程序设计
3
数学
4.5 4
体育
3.0 5
专业课
10.0 1)找出“出生日”与幸运日相同的人,并打印出其信息(每行输出一个人信息)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程序设计
数学
平均成绩
名次
张某
80.5
2
李某
78.2
3
王某
88.8
4
赵某
68.5
8)分别统计全班每门课的平均分,并计算各分数段(60分以下;60~69;70~79;80~89;90分以上)的学生人数。用VB创建一个新的数据文件,在该文件中存放数据的格式如下:
范围.英语
VB
.>=90
.80-89
...............................9)打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。
10)打印所有存在不及格课程学生的名单(含学号、不及格课程名称、课程的学分及成绩)。11)打印优等生名单(学号、N门课成绩、平均分名次)优等生条件:
a)平均分 90分
b)名次在本班位于前三名
c)平均分85分,并且有二门课的成绩都 95分
选做内容:打印每门课成绩分布图
说
明:所有输出结果应写入用VB创建的文件中,格式要整齐,并有适当的文字说明。实习报告要求:应包括分析设计与说明、部分过程(函数)的源程序清单、程序调试过程中遇到的问题及解决方法,有待改善或改进的意见,对本次实习的意见与建议、收获等。其中原始数据及程序运行的结果应作为附录附于实习报告之后。
四、系统设计分析:
1、该成绩管理系统中要同时表示学生的学号、姓名、成绩等一些信息,及课程、课程学分等一些信息,由于每项信息的意义不同,数据类型也不同,但还要同时作为一个整体来描叙和处理,因此需要通过用户自定义来解决。所以在编程之前新建一个标准模块用来定义自定义类型。
2、为了便于后面执行求加权平均分、排名等命令,在Form1发生Load事件时应将学生信息和课程信息读取并放到两个数组中,由于这两个数组在该管理系统的全程序都要用到,因此应定义为全局类型。如是在标准模块中定义两个数组。
3、由于原始数据文件中相邻的两列之间空格的长短不一,因此在调用Split函数之前应窗体通用模块中自定义一个space1函数将原始数据文件中相邻的两列之间空格数变为相同。
4、在编写程序时,由于该系统的程序代码较多,因此在编写时要合理。
5、在打印成绩条、不及格名单、优等生等信息时,应边用write语句分别将数据存入一个新的文件中。
第页
计算机上机实习报告
6、实习必须按着老师的严格要求完成所有的实习任务,并整理成文件打印。
五.窗体设计与程序代码
1.此次窗体设计使用了11个命令按钮分别对应不同的系统功能要求,具体界面如下
2.程序代码
⑴统计“出生日”与幸运日相同的人
Dim stu()As student, n%, kc()As kecheng, x% Private Sub Command1_Click()Cls For i = 1 To UBound(stu())
If Right(stu(i).birthday, 2)= stu(i).luckyday 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 If Next i End Sub
第页
计算机上机实习报告
⑵统计不及格学生的名单
Private Sub Command10_Click()Cls Print “序号”;Spc(3);“姓名”;Spc(3);“成绩”;Spc(3);“学分”;Spc(3);“课程”;For i = 1 To UBound(stu())
For j = 1 To 5
If stu(i).score(j)
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 i End Sub
⑶打印优等生名单
Private Sub Command11_Click()Cls Print “学号”“英语”;Space(3);“VB”;Space(3);“数学”;Space(3);“体育”;Space(3);“专业课”;Space(3);“排名”
第页
计算机上机实习报告
Dim zxf%, i%, j%, k% For i = 1 To UBound(kc())
zxf = zxf + kc(i).xf Next i For 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, “0.00”)
Next k Next j For m = 1 To UBound(stu())
stu(m).rank = 1
For n = 1 To UBound(stu())
If stu(m).average
stu(m).rank = stu(m).rank + 1
End If
Next n Next m For 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).average >= 90 Or stu(i).rank = 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 If Next i End Sub
第页
计算机上机实习报告
⑷统计各幸运数字的人数 Private Sub Command2_Click()Cls For i = 0 To 9
Dim luckypeople%
For j = 1 To UBound(stu())
If Val(stu(j).luckyday)= i Then
luckypeople = luckypeople + 1
End If
Next j
Print “幸运数字为” & i;“的人数为:” & luckypeople
luckypeople = 0 Next i End Sub ⑸查询信息
Private Sub Command3_Click()Cls Dim rm As String, i%, j% rm = InputBox(“请输入你想要查询的同学的姓名”)For i = 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 If Next i End Sub
第页
计算机上机实习报告
⑹添加信息
Private Sub Command4_Click()Cls Dim xinxuesheng As String xinxuesheng = InputBox(“请依次按照序号,姓名,幸运日,出生日期,英语,vb,数学,体育,专业课的顺序输入新同学的信息,中间用空格隔开”)Open “e:vb作业1.txt” For Append As #1 Print #1, xinxuesheng Print Close #1 Do While InStr(Trim(xinxuesheng), “ ”)0
xinxuesheng = Replace(Trim(xinxuesheng), “ ”, “ ”)Loop a = Split(xinxuesheng, “ ”)n = n + 1 ReDim Preserve 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 i For 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
Print Next i
第页
计算机上机实习报告
End Sub
⑺删除信息
Private Sub Command5_Click()Cls Dim rm As String rm = InputBox(“请输入你要删除的同学的姓名”)For i = 1 To n
If Trim(stu(i).name)= rm Then
Exit For
End If Next i
For j = i To n1)For 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
第 页
计算机上机实习报告
Next i End Sub
⑻修改幸运数字
Private Sub Command6_Click()Cls Dim 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).luckyday = 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 If Next i End Sub
第 页
计算机上机实习报告
⑼计算每个学生的平均分 Private Sub Command7_Click()Cls Dim zxf%, i%, j%, k% For i = 1 To UBound(kc())
zxf = zxf + kc(i).xf Next i For 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, “0.00”)
Next k Next j For m = 1 To UBound(stu())
stu(m).rank = 1
For n = 1 To UBound(stu())
If stu(m).average
stu(m).rank = stu(m).rank + 1
End If
Next n Next m Open “e:成绩单.txt” For Append As #3 Print #3, “序号”;Space(3);“姓名”;Space(3);“幸运日”;Space(3);“出生日期”;Space(4);“数学”;Space(4);“英语”;Space(4);“vb”;Space(4);“物理”;Space(3);“专业课”;Space(3);“平均分”;Space(3);“排名” 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 i Close #3 End Sub
⑽统计成绩分布
Private Sub Command8_Click()Cls Dim i%, j%, bsix%, %, 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 Integer For i = 1 To 5
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).average Next i Open “e:成绩分布.txt” For Append As #4 Print #4, “范围”;Space(8);“数学”;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
ElseIf stu(j).score(i)>= 60 Then
r(i)= r(i)+ 1
Else
s(i)= s(i)+ 1
End If
Next j Next i Print #4, “>=90”;Spc(8);For i = 1 To 5
Print #4, o(i);Spc(4);Next i Print #4, Print #4, “>=80”;Spc(8);For i = 1 To 5
Print #4, p(i);Spc(4);Next i Print #4, Print #4, “>=70”;Spc(8);For i = 1 To 5
Print #4, q(i);Spc(4);Next i Print #4, Print #4, “>=60”;Spc(8);For i = 1 To 5
Print #4, r(i);Spc(4);Next i Print #4, Print #4, “其他”;Spc(8);For i = 1 To 5
Print #4, s(i);Spc(4);Next i Print #4, Close #4 End Sub
第 页
计算机上机实习报告
⑾打印学生成绩条
Private Sub Command9_Click()Dim stu(1 To 20)As String Open “e:成绩单.txt” For Input As #5 For i = 1 To 20 Line Input #5, stu(i): Print stu(i)Next i Close #5 End Sub
⑿文本信息的输入
Private Sub Form_Load()Dim str1 As String, a()As String, i%, str2 As String, b()As String Open “e:学生信息.txt” For Input As #1 Line Input #1, str1 Print str1
第 页
计算机上机实习报告
Do While Not EOF(1)
Line Input #1, str1
Do While InStr(Trim(str1), “ ”)0
str1 = Replace(Trim(str1), “ ”, “ ”)
Loop
a = Split(str1, “ ”)
n = n + 1
ReDim Preserve 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 i
Cls Loop Close #1 Open “e:学分.txt” For Input As #2 Line Input #2, str2 Print str2 Do While Not EOF(2)
Line Input #2, str2
Do While InStr(Trim(str2), “ ”)0
str2 = Replace(Trim(str2), “ ”, “ ”)
Loop
b = Split(str2, “ ”)
x = x + 1
ReDim Preserve kc(x)
kc(x).bh = Val(b(0))
kc(x).km = b(1)
kc(x).xf = b(2)Loop Close #2 Cls End Sub
六.心得体会
1.通过这次上机实习,我受益匪浅,不仅更加熟悉VB的操作和运行环境,同时将课堂上所学的知识进行了系统化的整
第 页
计算机上机实习报告
理与疏导;
2.在此次上机实习中,我切身体会到了编程对我们现代生活的重要性,编程能大大地方便我们日常的生活,使我们上网,工作更快捷,一个人就能干许多人的事情,大大地节约了人力,这将使计算机的应用更加普遍和普及,使社会的生产效率越来越高。
第 页
1656.2.1题目一、选择题1.以下叙述中,错误的是()。A.双击鼠标可以触发DbiClick事件B.窗体或控件的事件名称可以由编程人员确定C.移动鼠标时会触发MouseMove事件D.控件的名称可......
心得体会: 刚开始学习vb的时候,我就觉得大一的计算机基础根本不值一提,难度相去甚远。我问过很多以前的同学,他们都说vb是编程语言中最简单的,但是在这次上机实习过程中,我发现要......
真・vb大题・正式版1.0 ********************************************************************** 在考生文件夹下有一个工程文件sj44.vbp(相应的窗体文件名为sj44.frm ),其......
Auto CAD上机总结时间过得很快,一转眼就到了CAD实训周结束的时候了。这两周的Auto CAD制图实践课程主要是练习使用Auto CAD 中的二维绘图。在老师的指导下,我进一步掌握了CAD......
刀豆文库小编为你整合推荐4篇上机实习报告,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......