长江大学VB上机实习报告_vb上机实习报告

实习报告 时间:2020-02-28 22:03:17 收藏本文下载本文
【www.daodoc.com - 实习报告】

长江大学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

Print

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

Print

第 页

计算机上机实习报告

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.在此次上机实习中,我切身体会到了编程对我们现代生活的重要性,编程能大大地方便我们日常的生活,使我们上网,工作更快捷,一个人就能干许多人的事情,大大地节约了人力,这将使计算机的应用更加普遍和普及,使社会的生产效率越来越高。

第 页

VB上机实习第五、六章

1656.2.1题目一、选择题1.以下叙述中,错误的是()。A.双击鼠标可以触发DbiClick事件B.窗体或控件的事件名称可以由编程人员确定C.移动鼠标时会触发MouseMove事件D.控件的名称可......

vb上机心得体会

心得体会: 刚开始学习vb的时候,我就觉得大一的计算机基础根本不值一提,难度相去甚远。我问过很多以前的同学,他们都说vb是编程语言中最简单的,但是在这次上机实习过程中,我发现要......

vb大题上机总结

真・vb大题・正式版1.0 ********************************************************************** 在考生文件夹下有一个工程文件sj44.vbp(相应的窗体文件名为sj44.frm ),其......

长江大学Auto CAD上机总结

Auto CAD上机总结时间过得很快,一转眼就到了CAD实训周结束的时候了。这两周的Auto CAD制图实践课程主要是练习使用Auto CAD 中的二维绘图。在老师的指导下,我进一步掌握了CAD......

上机实习报告

刀豆文库小编为你整合推荐4篇上机实习报告,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......

下载长江大学VB上机实习报告word格式文档
下载长江大学VB上机实习报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文