您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 1510030130张三第5章数组和自定义类型实验2
第5章数组和自定义类型实验2班级:学号:姓名:一、实验目的1.掌握数组的基本概念。2.掌握数组的声明、引用。3.掌握静态数组和动态数组的区别。4.掌握如何利用数组解决与数组相关的常用算法二、实验内容(一)、实例解析:按下列说明操作,完成程序调试。1.编写程序,完成下列要求:(1)在文本框内输入一个字符串,统计该字符串中各字母的个数,不区分大小写。(2)在图片框内显示统计结果,每行打印5个统计结果。(3)在图片框内反序显示输入的字符串。程序运行效果如下图所示。操作步骤如下:(1)建立应用程序用户界面,设置对象属性。(2)属性设置如下表。表统计字母个数属性设置对象属性名属性值说明窗体Name(名称)Form1默认值为Form1CaptionForm1默认值为Form1标签(1个)Name(名称)Label1默认值为Label1Caption请输入字符串文本框(1个)Name(名称)Text1默认值为Text1Text(清空)用于接受用户的输入命令按钮(1个)Name(名称)Command1默认值为Command1Caption统计字符串命令按钮的名称图片框(1个)Name(名称)Picture1默认值为Picture1(3)编写程序代码编写命令按钮Command1的Click事件代码PrivateSubCommand1_Click()Dima(65To90)AsInteger,cAsString*1,i%,j%,n%,le%le=Len(Text1)Fori=1Tolec=UCase(Mid(Text1,i,1))Ifc=AAndc=ZThenj=Asc(c)a(j)=a(j)+1EndIfNextiPicture1.ClsForj=65To90Ifa(j)0ThenPicture1.Print;Chr(j);=;a(j);n=n+1IfnMod5=0ThenPicture1.PrintEndIfNextjPicture1.PrintPicture1.PrintStrReverse(Text1)EndSub(4)保存窗体文件和工程文件(5)调试并运行程序图统计字母个数程序运行结果2.应用数组实现以下功能(1)利用Array()函数,将数据(15,67,82,-3,56,-34,59,41)放入一维数组A中。(2)将A数组中的元素按递减的顺序排列,并在窗体上显示排序结果。(3)在文本框中输入要插入的数据,单击“插入”按钮,将数据插入到数组中,并显示插入后的数组元素。运行程序界面如下图所示。图排序插入程序运行结果操作步骤如下:(1)建立应用程序用户界面,设置对象属性。(2)属性设置如下表。表排序插入属性设置对象属性名属性值说明窗体Name(名称)Form1默认值为Form1CaptionForm1默认值为Form1标签(1个)Name(名称)Label1默认值为Label1Caption请输入一个数文本框(1个)Name(名称)Text1默认值为Text1Text(清空)用于接受用户的输入命令按钮(3个)Name(名称)Command1默认值为Command1Caption产生数据命令按钮的名称Name(名称)Command2默认值为Command2Caption排序命令按钮的名称Name(名称)Command3默认值为Command3Caption插入命令按钮的名称(3)编写程序代码Dima(),i%,j%PrivateSubCommand1_Click()a=Array(15,67,82,-3,56,-34,59,41)Print原始数组元素:Fori=LBound(a)ToUBound(a)Printa(i);NextiPrintEndSubPrivateSubCommand2_Click()Dimimax%,t%Fori=LBound(a)ToUBound(a)-1imax=iForj=i+1ToUBound(a)Ifa(j)a(imax)Thenimax=jNextjt=a(i):a(i)=a(imax):a(imax)=tNextiPrint排序后的数组元素:Fori=LBound(a)ToUBound(a)Printa(i);NextiEndSubPrivateSubCommand3_Click()Dimx%,k%,n%x=Val(Text1.Text)n=UBound(a)Fork=0TonIfxa(k)ThenExitForNextkReDimPreservea(n+1)Fori=nTokStep-1a(i+1)=a(i)Nextia(k)=xPrintPrint插入x后的数组元素:Fori=0Ton+1Printa(i);NextiEndSub(4)保存窗体文件和工程文件(5)调试并运行程序(二)、见“三、实验题代码”描述(三)、提交完成后的实验报告:将文件名“1510030130张三第四章基本结构复习实验”改名后上交。改名方法为,将“1510030130张三”换成你的“学号姓名”。三、实验题代码1、编程实现将30个互不相同的两位随机正整数按照从大到小降序排列。(类似P2844)【要求】(1)分别用选择法和冒泡法实现排序。(2)30个数据的输出格式为每行显示10个数据。提示:界面设计:1个图片框用于显示结果;4个命令按钮用于实现操作功能。代码设计提示:产生一位数组及清除按钮单击事件代码参见如下所示,其余参见教材P106。事件过程描述:2、设有一个一维数组,数组的大小通过输入对话框输入,数组元素值为0~100之间的随机整数,编程计算出一维数组所有元素值的平均值和高于平均值的元素个数。【要求】(1)在图片框中输出数组,并且每行只能显示10个元素值。(2)单击“指定数组大小”按钮,将利用InputBox函数输入数组S的大小n;(2)单击“显示结果”按钮,将计算数组S的平均值P并在文本框Text1中显示;统计超过平均值的数组元素个数M并在文本框Text2中显示。(3)单击“清除”按钮将清空文本框和图片框中的内容。(提示:用Picture1.Cls和Text1.Text=””实现)事件过程描述:补充以下代码OptionExplicitDimS()AsSingle'声明动态数组DimnAsIntegerPrivateSubCommand1_Click()'指定数组大小按钮DimiAsInteger,kAsIntegerRandomizen=Val(InputBox(请给出数组大小:))ReDimS(1Ton)'指定动态数组下标界Fori=1Ton给数组元素S(i)赋值在Picture1每行显示10个元素值NextiEndSubPrivateSubCommand2_Click()DimiAsInteger,MAsInteger,sumAsInteger,PAsSingle求数组和sum计算平均值P统计高于平均值的元素个数MText1=PText2=MEndSubPrivateSubCommand3_Click()Picture1.ClsText1.Text=Text2.Text=EndSubPrivateSubCommand4_Click()退出EndSub思考:如果题目改为“编程计算出一维数组所有元素值的平均值和高于平均值的元素个数,并将它们放在该数组的最后。”又如何修改代码。四、以下为选做题:有时间可选做:1、教材P284实验5二、实验内容第6题输入整数n,显示出具有n行的杨辉三角形。如图2.5.5显示n=8的效果。提示:界面设计:1个图片框用于显示结果;1个标签用于提示;一个文本框用于输入;1个命令按钮用于计算。代码设计提示:见教材P285提示。事件过程描述:2、数组的插入与删除。编写一个向一维字符数组的指定位置添加字符元素和删除指定数组元素的程序。【要求】(1)单击“产生字符数组”按钮,则根据用户输入的数组大小n随机产生并显示n个大写字母,每行显示20个。(2)单击“插入”按钮,则根据用户输入的字母和插入的位置将之插入并显示。(3)单击“删除”按钮,则删除指定的数组元素并重新显示。【分析】声明段设置如下:OptionExplicitOptionBase1DimP()AsString*1(1)将一个新元素X插入到某个含有n个元素的数组的第k个位置的方法为:从第n个元素开始,将第n个元素到第k个元素逐个向后移1位,将新的元素X插入到第k个位置。通用代码如下:ReDimPreserveA(n+1)Fori=nTokStep-1A(i+1)=A(i)NextiA(k)=X(2)删除某个含有n个元素的数组A的第k个位置的元素的方法为:从A(k+1)起到A(n),将各个元素的逐个向前移一位。通用代码如下:Fori=k+1TonA(i-1)=A(i)NextiReDimPreserveA(n-1)事件过程描述:3、判断完数。一个数如果恰好等于它的因子之和,这个数就是完数。一个数的因子是指除了本身以外的能够被其整除的数。例如,6是一个完数,因为6的因子有1、2、3,而且6=1+2+3。【要求】(1)单击“判断”按钮,对文本框中的输入的整数进行判断,若是完数,按图所示的形式输出结果;若不是“完数”,则输出不是完数的信息。(2)单击“重新输入”按钮,则清除文本框和图片框中的内容,并将焦点置于文本框中。【分析】用循环将输入的数的因子逐个求出,放在一个数组中,并对因子进行累加,求出因子和。因为无法预知因子个数,应使用动态数组,每找到一个因子,就增加一个数组元素。事件过程描述:
本文标题:1510030130张三第5章数组和自定义类型实验2
链接地址:https://www.777doc.com/doc-3019103 .html