选择循环数组和过程综合程序设计.docx
《选择循环数组和过程综合程序设计.docx》由会员分享,可在线阅读,更多相关《选择循环数组和过程综合程序设计.docx(10页珍藏版)》请在冰豆网上搜索。
选择循环数组和过程综合程序设计
内蒙古工业大学信息工程学院
实验报告
课程名称:
高级语言程序设计(VB)Ⅰ
实验名称:
选择、循环、数组和过程综合程序设计
实验类型:
验证性□综合性√设计性□
实验室名称:
校计算中心
班级:
学号:
姓名:
组别:
同组人:
成绩:
实验日期:
预习报告成绩:
指导教师审核(签名):
年月日
预习报告
(一)实验目的
学习综合运用选择结构、循环结构、数组和过程进行程序设计的方法
(二)实验用仪器设备、器材或软件环境
1.设备:
校计算中心计算机
2.软件环境:
windowsXPMicrosoftVisualBasic6.0
(三)实验要求
1.将随机产生的80个整数存入数组,按每行10个数输出到窗体或文本框中。
2.偶数和奇数也分别存入数组,将排好序的偶数和奇数分别输出到窗体或两个文本框中。
3.用Sub子过程或Function函数过程判断随机整数是否为素数。
4.将素数按每行10个数在窗体或文本框中输出。
5.将素数的个数及求和结果输出到窗体或文本框中。
6.界面由学生自行设计。
(四)实验原理
利用随机函数产生80个10~99之间的随机整数,将其中的偶数按由小到大的顺序排列并输出,将奇数按由大到小的顺序排列并输出;在产生的80个随机整数中,找出其中的素数,并将这些素数求和。
(五)设计方案
1、属性设置:
控件名称
控件属性
属性值
Command1
Caption
产生随机数
Text1
MultiLine
true
Labl1
Caption
奇数排列前
2、流程图
假真
3、预编程序
Dima(1To80)AsInteger,b()AsInteger,c()AsInteger
PrivateSubCommand1_Click()
Randomize
Cls
Print"原始数据"
Print
Fori=1To80
a(i)=Int(90*Rnd+10)
Printa(i);
IfiMod10=0Then
Print
EndIf
Nexti
EndSub
PrivateSubCommand2_Click()
DimpAsInteger
Text2.Text=""
text1.Text=""
ReDimb(80)
p=0
Fori=1To80
Ifa(i)Mod2<>0Then
p=p+1
b(p)=a(i)
EndIf
Nexti
ReDimPreserveb(p)
Forj=1Top
text1.Text=text1.Text&""&b(j)
IfjMod10=0Thentext1.Text=text1.Text+vbCrLf
Next
Fori=1Top-1
Forj=i+1Top
Ifb(i)
h=b(i):
b(i)=b(j):
b(j)=h
EndIf
Next
Fori=1Top
Text2.Text=Text2.Text&""&b(i)
IfiMod10=0ThenText2.Text=Text2.Text+vbCrLf
Next
EndSub
PrivateSubCommand3_Click()
DimpAsInteger
ReDimc(80)
Text4.Text=""
Text5.Text=""
p=0
Fori=1To80
Ifa(i)Mod2=0Then
p=p+1
c(p)=a(i)
EndIf
Nexti
ReDimPreservec(p)
Forj=1Top
Text4.Text=Text4.Text&""&c(j)
IfjMod10=0ThenText4.Text=Text4.Text+vbCrLf
Next
Fori=1Top-1
Forj=i+1Top
Ifc(i)>c(j)Then
h=c(i):
c(i)=c(j):
c(j)=h
EndIf
Next
Next
Fori=1Top
Text5.Text=Text5.Text&""&c(i)
IfiMod10=0ThenText5.Text=Text5.Text+vbCrLf
Next
EndSub
PrivateSubCommand4_Click()
DimtAsInteger
ReDimd(80)
Text3.Text=""
m=0
Fort=1To80
Ifsushu(a(t))=TrueThen
m=m+1
d(m)=a(t)
EndIf
Next
ReDimPreserved(m)
Forj=1Tom
Text3.Text=Text3.Text&""&d(j)
IfjMod10=0Then
Text3.Text=Text3.Text+vbCrLf
EndIf
Next
DimmaxAsInteger
Fori=1Tom
max=max+d(i)
Nexti
Text3.Text=Text3.Text+vbCrLf&max
EndSub
PublicFunctionsushu(mAsInteger)AsBoolean
DimkAsInteger,fAsBoolean
f=True
Fork=2Tom-1
IfmModk=0Then
f=False
EndIf
Nextk
sushu=f
EndFunction
实验报告成绩:
指导教师审核(签名):
年月日
实验报告
一、地点:
校计算中心机房计算机
编号:
C16
二、实验器材:
计算机
软件环境:
MicrosoftVisualBasic6.0
三、实验步骤及调试方法
1、实验步骤
(1)、运行VB6.0,建立标准.EXE工程
(2)、在窗体上添加所需控件,并设置其相应的属性
(3)、编写代码
(4)、运行调试程序,检查错误并改正
(5)、运行程序,保证程序正确,最后保存
2、调试方法
首先逐行逐句读程序,弄清楚每条语句的作用,预见每条语句和模块的执行结果,判断其是否与预期结果一致,检查无误后再进行动态检查,通过上机调试来发现错误,并改正。
四、实验数据处理及结果分析
(1)将随机产生的80个整数存入数组中,使用IF语句使其分行,按每行10个数打印在窗体上。
其中利用Cls,可使每次清屏。
(2)利用动态数组,用IF语句判断是否是偶数,并将它们分别放入两个动态数组里。
再使用循环函数,用替换的方法,排列它们的大小。
(3)用Function函数过程判断随机整数是否为素数。
(4)将素数按每行10个数在窗体输
(5)用累加的方法求出素数和
五、实验中存在的问题
1.在使用文本框输入数据时,忘记修改文本框的MultiLine属性,而导致文本框中的数据无法换行。
2.在使用动态数组时,会忘记重新定义数组的范围和类型
3.文本框输入数据时,会使的输出的数都连在一起,这时应连接&"",让它们中间有分隔
4.编写时还会出现编码重复定义,不能使程序启动。
六、体会及思考
在编写程序时,首先要理清整个实验的思路,要知道先什么再做什么,而不是上来就编。
在编写的过程中,要细心谨慎,要明确定义变量的范围,分清各个的实质定义,更要了解代码的含义,能使之正确运行。
还要清楚了解常用函数的用法,还有常用控件的重要属性,不要下标越界,检查时逐行检查,不要丢掉Endif、Next等语句。