VB实验一(数据输入输出)
- 格式:doc
- 大小:38.00 KB
- 文档页数:1
程序设计基础(Visual Basic)实验指导书西南林学院计算机与信息科学系实验说明一、实验文档下载:老师的实验上机文档下载的地址:/~hjp/下的“VB”文件夹拷贝到计算机中。
然后从该文件夹中找到本次实验的文档。
二、个人文件夹建立在实验前,请先在电脑桌面上建立个人自己的文件夹,名称以个人的姓名加学号组成。
如:“20130208001XXX”。
同学们自己个人的VB程序设计实验文档都存放在该文件夹中。
而且要求,每个实验都保存在单独的文件夹中。
如,本次实验有三个例子,那么就需要建立三个文件夹,第一个文件夹的命名可为“实验1-1”,如此类推。
相应的例子程序文件保存在相应的文件夹中。
三、实验结果上传给老师实验完成后,同学们需将自己的文件夹上传给老师,以备检查。
上传步骤如下。
1.压缩文件夹。
请将保存有VB实验上机程序的个人文件夹(在之前建立好的,如:“20130208001XXX”)进行压缩处理。
压缩方法如下:选中该文件夹,单击鼠标右键,选中“添加到“20130208001XXX.rar””。
计算机自动完成生成该文件夹的压缩文件。
2.进入FTP。
上传的地址为:ftp://192.168.1.2(或按任课老师指定的地址),输入地址后进入该FTP网。
打开“XXX”文件(该文件夹以任课老师姓名而命名)下的“上传”文件夹。
3.上传文件。
将第一步中生成的压缩文件拷贝到第二步打开的“上传”文件夹中去。
等待拷贝完成后,才能确认程序上传成功。
四、实验内容说明本实验指导书共包含15次实验上机内容。
每次实验上机内容中包括三种题型:验证题、设计题和选做题。
验证题为教材中的例题,通过参考书上的说明和操作步骤来熟悉相应知识点,一般有1-2道题。
设计题为书上习题或其他来源的题目,目的是让学生能够在不照搬照抄的情况下自己独立思考完成VB程序设计,一般有1-2道。
选做题为学有余力的同学练习,一般有1-2道。
每次实验上机学生必须完成相应的验证题和设计题。
《程序设计基础—VB程序实验》说明:实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告。
实验1 计算机基本操作实验目的⑴熟悉计算机,能够正确进行开、关机操作。
⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换。
⑶理解操作系统概念,掌握Windows XP的基本操作,能够利用“控制面板”进行一些参数的设置。
⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。
⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用。
实验内容⑴熟悉上机实验的计算机,熟悉键盘,学会中、英文输入方式的转换。
⑵学会用正确的指法进行输入,知道键盘上所有字符的输入。
⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性。
⑷在桌面上新建一个文件夹,该文件夹以学生自己的名字+班级+学号的后3位命名。
⑸用文本方式或Word文档,写一段字数不少于300字的自我介绍,以1.doc命名并保存到上述文件夹中。
⑹将上述文件夹复制到ftp://10.10.9.222上。
实验2 常用软件的基本操作实验目的⑴了解Word功能,掌握Word的基本操作,包括页眉/页脚的设置、分栏、页面设置、添加底纹等。
⑵学会文件的保存与打开、打印预览、段落的间隔、首字符位置改变等,能够在Word中插入图片、表格、艺术字、特殊符号等。
⑶了解Excel的功能,掌握Excel的基本操作,包括单元格属性的设置、数字的几种填充形式、单元格的合并与恢复、边框的设置等。
⑷掌握Excel的基本公式的使用,能够用公式进行基本计算。
掌握Excel中的图形制作方法,能够根据表格做出图形。
实验内容⑴将ftp上自己文件夹中的1.doc文件复制到桌面上,然后做如下处理:①将标题“自我介绍”居中;②将文章中第二段的内容进行分栏,要求中间有分割线;③插入一个4行4列的表格,内容为学号、姓名、某门课的成绩;④任意插入一张图片;⑤在文章中的任意位置加底纹。
将做好的文档以2.doc命名并保存。
实验一窗体、按钮、标签、文本框实验目的:1、掌握简单的VB程序的建立、编辑、调试、运行和保存;2、正确设置窗体、标签、文本框、命令按钮的属性,并编写简单的事件过程代码;3、掌握使用窗体的Print方法。
实验内容:一、设计一个登陆窗口。
单击“登陆”按钮,弹出Form2,并在Form2上的标签上输出“江垚,欢迎使用VB6.0!”单击“退出”按钮,则退出程序。
提示:(1)设置各标签的背景颜色,字体大小,以美化界面。
姓名处输入有下划线。
(2)密码处输入的“*****”在属性PasswordChar中设置。
二、实验设计步骤1、首先创建窗体Form1,在窗体中建立文本框Text1至Text5以及命令按钮Command1和Command2。
2、各对象建立好之后,要为其设置属性。
首先将窗体的BackColor 属性设置为“活动边框”。
选中文本框Text1并将其BackColor属性设置为深蓝色,Caption属性设置为“请登录”,双击Font,将“请登录”字体设置为宋体、粗体、小初;用同样的方法将Text2、Text3的Caption 属性设置为“姓名:、密码:”,字体设置为宋体、粗体、三号,背景颜色为黄色;将命令按钮Command1、Command2的Caption属性设置为“登陆、退出”,其字体为宋体、常规、四号。
将文本框Text4的Font属性设置为新宋体、倾斜、小三,同时在其中输入的内容需加下划线;Text5的PasswordChar属性设置为“*”。
3、再新建窗体Form2,将该窗体的BackColor属性设置为“活动边框”,同时在窗体中建立标签Label1,将其Caption属性设置为欢迎使用VB6.0!,其Font属性设置为新宋体、粗体、倾斜及二号。
4、双击命令按钮Command1,出现工程1-Form1(code)对话框,在该对话框中输入程序,如下图所示:该程序是利用命令按钮来控制程序,该Command1程序中用了Show方法,此方法是用于显示窗体,其语法为:【对象.】Show 【Style】,将Style的参数设置为0,即无模式显示。
实验题目总体要求:本学期的所有的实验题目,希望同学们按如下步骤认真做,(1)先画出处理界面(窗体);(2)再给出处理步骤,(3)写出程序代码:可参考下面的例题:例如:设计程序,求1+2+3+...+N 的和值。
其处理过程是:(一)设计界面(在纸上画出界面,并注明各控件的名称):(二)处理步骤:单击命令按钮,按以下步骤处理(1)定义3个变量:N ,s ,x ,分别用于存放:输入的数值,和值,控制循环(2)将文本框1的值,提供给变量N ;(3)s=0(累加前,将变量s 初始化为0);(4)X=1(设置循环的开始值)(5) 当X<=N 时 重复执行S=s+xX=X+1(5)在文本框2中显示和值S(三)编写有关的代码:Private Sub Command1_Click()Dim n%,s%,x%N=val(text1.text)S=0X=1Do while x<=nS=s+xX=x+1LoopText2=sEnd Sub文本框1:TEXT1 文本框2:TEXT21:Command1标签1:Label1 标签2:实验一:用语言或流程图描述处理步骤(1次)1.判定一个数X是否是偶数的处理步骤;2.写出求5的阶乘的计算步骤;3.写出求1+2+3+...... +100的计算过程;4.写出计算1!+2!+3!+4!+......+20!的计算步骤;5.写出求一元二次方程解的处理步骤;6.给出将三个整数A,B,C按从小到大的顺序排列的处理步骤;实验二:表达式及其运算的实现(1次)1.设计一个程序,完成利用文本框输入任意两个数的乘法运算,并显示计算结果。
2.进一步完善程序,完成利用文本框输入任意两个数的加法、减法、乘法、除法运算,并显示计算结果,3.再进一步,改进,完成,利用随机函数,产生任意两个100到200之间的整数,并完成两个数的加法、减法、乘法、除法运算,并显示计算结果。
4.求方程AX+B=0的解。
一、程序运行界面如下图所示。
程序实现的功能:1、程序运行时,首先随机产生30个100-3000之间的任意年份,并显示在List1中。
2、当单击“判断”按钮时,选出是闰年的年份,显示在List2中。
3、当单击“排序”按钮时,将选出的闰年的年份值按从小到大的顺序排序,并重新显示在List2中。
说明:判断某一年是否是闰年有两个条件:1、能被4整除,但不能被100整除。
2、既能被4整除,又能被400整除二、在磁盘上有顺序文件test22in.txt。
要求编程实现以下功能:1.单击“读入串”按钮,从文件中读出一个字符串并显示在text1中;2.淡季“排序”按钮,将字符串按字母ASCⅡ码值从小到大排序,并显示在text2中;3.单击“追加”按钮,将排序后生成的字符串添加到文件末尾(要求采用冒泡法排序)。
三、编写程序,实现对任意字符串的加密和解密操作。
其中,对大小写英文字母的加密规则为:A→D,B→E,C→F,……,M→P,N→Q,……,W→Z,X→A,Y→B,Z→C;其他字符保持原样不变。
要求程序界面如下所示。
当在test1中输入需要加密的源文后,单击“加密”按钮,得到密文,并显示在test2中;当在test3中输入需要解密的密文后,单击“解密”按钮,得到源文,并显示在test4中。
四、建立一个成绩查询窗体如下图所示:要求在Form_Load时打开磁盘文件test42in.txt度曲数据,并将读入的学号和姓名分别添加进两个列表框中,同时将三门课的考试成绩读入c,d,e三个数组(每个数组可定义为200个元素);并将两个列表框Listindex属性置为0。
当点击姓名中任意一项,学号的Listindex应随之改变,同样点击学号中任意一项,姓名的Listindex应随之改变。
点击“查询”则将该学生的三项成绩显示在右边的三个文本框内,同时将平时成绩置空。
点击“计算”则将该学生三项成绩的平时值显示出来。
点击“退出”则结束程序。
河西学院
教案
2015~2016学年第二学期
课程名称Visual Basic程序设计
授课教师
职称
教师所在单位信息技术与传媒学院
河西学院教务处制
注:表中()选项请打“√”。
授课时间顺序编号: 1
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
填表说明:每项页面大小可自行添减。
实验一 Visual BASIC 6.0集成开发环境的初步使用实验目的1.掌握启动和退出Visual BASIC 6.0的方法。
2.熟悉Visual BASIC 6.0集成开发环境。
3.掌握开发一个简单程序的基本步骤。
4.初步掌握菜单栏、工具栏、窗体窗口、工具箱、工程资源管理器窗口和属性窗口的使用。
5.了解Visual BASIC 6.0连机帮助的使用。
实验内容1.开发一个简单程序:把华氏温度转换为摄氏温度。
在上机调试程序过程中,掌握启动和退出Visual BASIC 6.0的方法,初步掌握菜单栏、工具栏、窗体、工具箱、工程资源管理器窗口和属性窗口的使用。
2.使用Visual BASIC 6.0的连机帮助。
实验指导第1题实验指导上机操作的过程为:1.启动Visual BASIC 6.0启动Visual BASIC 6.0的方法有两种:方法一:若使用Visual BASIC 6.0中文版,操作步骤为:(1)单击“开始/程序/Microsoft Visual BASIC 6.0中文版”。
(2)双击 Microsoft Visual BASIC 6.0中文版图标。
若使用Visual Studio 6.0套装软件,则操作步骤为:(1)单击“开始/程序/Microsoft Visual Studio 6.0”。
(2)双击Microsoft Visual BASIC 6.0图标。
方法二:在桌面上双击Microsoft Visual BASIC 6.0快捷方式图标。
选择上述其中一种方法启动Visual BASIC 6.0。
启动成功之后,系统进入Visual BASIC 6.0集成开发环境,并显示一个“新建工程”对话框。
默认选择是建立标准VB工程,如图1.1.1所示。
1图1.1.1 “新建工程”对话框2.界面设计单击“打开”按钮,Visual BASIC 6进入设计模式。
系统在屏幕上提供一个名为Form1的窗体,我们就在这个窗体上进行界面设计。
实验五数组一、控件属性的设置 (滚动条)1、在名称为Forml的窗体上添加一个名称为H1水平滚动条,请在属性窗口中设置它的属性值,满足下列要求:它的最小刻度值为1,最大刻度值为100,在程序运行时鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动10个刻度。
再在滚动条下面画两个名称分别为L1、L2的标签,并分别显示1、100,运行时的窗体如图5-1所示。
工程文件名保存为sy5-1.vbp,窗体文件名为sy5-1.frm。
2、在名称为Form1的窗体上添加一个名称为HS1的水平滚动条,其刻度值范围为1 -100;添加一个命令按钮,名称为C1,标题为"移动滚动框"。
请编写适当的事件过程,使得在程序运行时,每单击命令按钮一次(假定单击次数不多于10次),滚动框向右移动10个刻度。
程序运行时的窗体如图5-2所示。
要求程序中不得使用变量,事件过程中只能写一条语句。
工程文件名保存为sy5-2.vbp,窗体文件名保存为sy5-2.frm。
3、在名称为Form1的窗体上画一个图片框,其名称为Picture1、一个水平滚动条,名称为HScroll1,和一个命令按钮,名称为Command1,标题为"设置属性",通过属性窗口在图片框中装入一个图形(文件名为pic1.jpg,位于考生目录下),图片框的高度与图形的高度相同,图片框的宽度任意(如图1所示)。
编写适当的事件过程,程序运行后,如果单击命令按钮,则设置水平滚动条的如下属性:Min 100Max 1500LargeChange 100SmallChange 10之后就可以通过移动滚动条上的滚动块来放大或缩小图片框。
程序运行后的窗体如图5-3所示。
要求程序中不得使用任何变量。
工程文件名为sy5-3.vbp,窗体文件名为sy5-3.frm。
4、在控件属性1文件夹下有一个工程文件sy5-4.vbp,窗体上有一个圆和一个矩形,还有水平和垂直滚动条各一个。
VB实验报告《VB程序设计》实验单元一实验报告专业班级:姓名学号 2指导教师:王云侠完成时间: 3月22日实验一VB环境和可视化编程基础一、实验目的1 了解Visual Basic的安装2 掌握启动与退出Visual Basic3 掌握建立、编辑和运行一个简单应用程序的全过程4 掌握基本控件的使用二、实验环境VB6.0三、实验内容1、编写一程序,在文本框中统计在该窗口上鼠标单击的次数。
提示:对窗口编写两个事件:Form_Load事件对文本框初值设为空;Form_Click事件对文本框计数。
对文本框计数:Text1=Val(text1)+1 。
2、命令按钮、字号、内容和格式的复制练习。
按钮1:使得Text1中的文本按要求改变。
按钮2:将Text1中选定的文本复制到Text2. 控件名 Form1 Label1 Label2 Text1 属性 Ca ption=”实验2” 复制文本输入文本Text=“VB功能强大,但要下功夫学习才能学好。
” (每个同学文本框中内容可以不同) Text2 Command1 Command2 四、实验步骤1、编写一程序,在文本框中统计在该窗口上鼠标单击的次数。
从运用中点击vb6.0经典版Text=”” Caption=”隶书25磅” Caption=”复制=>” 打开标准 EXE 建立一个form 1添加一个Label和TextBox,Label的caption改为“你单击窗体的次数”,TextBox 的text改为空,然后编写代码如图点击运行即可。
2、命令按钮、字号、内容和格式的复制练习。
从运用中点击vb6.0经典版打开标准 EXE 建立一个form 1添加两个Label两个TextBox两个CommandButton,Label的caption改为“输入内容”和“复制效果”,TextBox的text改为“任意文字”和“空”,CommandButton的caption改为“隶书25磅”和“复制=>”。
C语⾔程序设计实验及习题(1-4)ffB v vbvv bgbb实验⼀C程序运⾏环境及简单程序的运⾏2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以⽂件名sy1_2.cpp#includevoid main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输⼊圆的半径,计算圆⾯积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以⽂件名sy1_3.cpp存盘)。
#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输⼊三个整数a、b、c,显⽰出其中的最⼤值。
4.分析与总结⑴总结C程序的结构和书写规则。
⑵阅读:附件1-C语⾔程序的跟踪调试。
特别提⽰:当程序在编译时发现很多错误,此时应从上到下逐⼀改正,或改⼀个错误,就重新再编译,因为有时⼀个错误会引起很多错误信息。
习题⼀⼀、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B⼆、综合题绘制NS 算法流程图。
(1)输⼊10个数,求其中的最⼤值。
(2)输⼊3个数,将它们升序排列输出。
(3)输⼊2个数,求它们的最⼤公约数。
(4)输⼊⼀元⼆次⽅程的系数a 、b 、c ,判断其根。
实验⼆顺序结构程序设计1.阅读程序,尝试写出程序的运⾏结果,然后输⼊并调试程序,对照其实际输出与分析的结果是否⼀致,若不⼀致,请找出原因。
⑴以下程序⽤于测试C中不同类型数据所占内存字节数,运⾏并体会sizeof运算符的使⽤⽅法。
实验一问答题:1、答:常见的有visual Basic、C++、Java、SQL。
用途特点:(参考课本4-5页)2、答:代码是一行或几行命令。
程序是针对某个任务编写的有序代码的集合。
软件是程序和文档的集合。
它们的关系是:代码 < 程序 < 软件3、答:面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。
它能够让人们更简单地设计并维护程序,使得程序更加便于分析、设计、理解。
4、答:参考课本第9页5、答:类——是创建对象实例的模板, 包含了创建对象的属性描述和行为特征的定义。
对象——是类的一个实例,继承了类的属性、方法。
控件——是具有图形界面的对象,它同样具有属性、方法、事件,是用来设计用户界面的重要元素。
属性——是对象的性质,用来描述和反应对象特征的参数。
事件——响应对象的动作,它发生在用户与程序交互时。
如单击控件、鼠标移动、键盘按下。
过程——指附在该对象上的程序代码,是事件的处理程序。
6、答:参考课本12页到17页。
实验二问答题:1、答通用属性有:Caption标题、Enabled可用性、Visible可见性、ForeColor前景颜色、BackColor背景颜色等。
2、答标签label是用来显示信息的,不具有输入功能。
属性有Caption、BackStyle、Alignment、BorderStyle、AutoSize。
文本框用来输入、输出数据,编辑文本。
属性有Text、 Maxlength、MultiLine、 ScrollBars、 Locked 、 PassWord 。
3、答结果为:标签里显示一个“abc”,图片框里显示3行“欢迎您”。
4、答要保存2次,分别是工程文件.vbp和窗体文件.frm。
实验一:一、选择1.D2.D3.B4.A5.B6.C7.CD8.D9.D10.编程机制是C、设计方式是B11.A12.D13.D14.C15.A二、填空1.windows2. 中断3.工具箱4.代码5.分类6.form2.show7. 出现语法错误8. 错9. 事件10. 面向对象11. 工程文件结构及各文件名12. 工程13. 设计程序代码14.双击窗体15.vb的安装文件夹16.属性17.方法18.font 19. form_load() 20.对象1.Private Sub Command1_Click()Print Sqr(8), 8 ^ (1 / 3)End Sub2.Private Sub Command1_Click()For i = 100 To 110Print Sqr(i)Next iEnd Sub3.Private Sub Form_Load()Print " 郑州大学在前进!"End Sub4. Private Sub label_click()PrintLabel.caption=”蓝天白云绿水青山”End sub实验二:一、选择1.B2.C3.B4.C5.C6.C7.B8.B9.D10.A11.C12.C13.C14.B15.A16.C17.B18.D19.C20.C二、填空1. Form_Click()2. Interval、5003..vbp .frm4.left top Height、Width twip5.picture6.load7. locked8. font Alignment9. GotFocus() LostFocus() 10. 属性窗口程序代码1.Private Sub Command1_Click()Label3 = Val(Text1) * Val(Text2)Private Sub Command2_Click()Label3 = Val(Text1) / Val(Text2)End Sub2.Private Sub Command1_Click()Picture1.Visible = TruePicture1.Picture = LoadPicture("d:\tu1.jpg") End SubPrivate Sub Command2_Click()Picture1.Visible = TruePicture1.Picture = LoadPicture("d:\tu2.jpg") End SubPrivate Sub Command3_Click()Picture1.Visible = False'也可以改为:Picture1.Picture = LoadPicture("") End Sub3.Private Sub Command1_Click()Label3 = Val(Text1) * Val(Text2) End Sub4.Private Sub Command1_Click() Text2 = Text1End SubPrivate Sub Command2_Click() Text1 = ""Text2 = ""End SubPrivate Sub Form_Load() Command1.Visible = False Command2.Visible = FalseEnd SubPrivate Sub Text1_Change() Command1.Visible = True Command2.Visible = TrueEnd Sub5.Private Sub Form_Load()Image1.Picture = LoadPicture("d:\tu3.jpg")End SubPrivate Sub Command1_Click()Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer()Image1.Left = Int(Rnd * (Form1.ScaleWidth - Image1.Width)) Image1.Top = Int(Rnd * (Form1.ScaleHeight - Image1.Height)) End实验三:一、选择1.A2.BC3.BC4.A5.A6.A7.BCD8.D9.B10.B 11.B二、判断题不合法的变量:3. 4. 5. 6. 8. 10. 11. 14.15. 16.三、1、abs(x+y)2. (3+x*y)^23. (-b+sqr(b^2-4*a*c))/(2*a)4.sin(30*3.14/180)+exp(2)四、1. int(rnd* 71+20) 或int(rnd* 71)+202. x<0 and y>0 or x>0 and y<0 或者x*y<03. x mod 3=0 or x mod 7=0或x/3=x\3 or x/7=x\74. x>=10 and x<205. x>="A" and x<="Z"6. left(s,3) 或mid(s,1,3)操作题:2.Private Sub Command1_Click()Dim n%n = Abs(Val(Text1))Label2 = Format(n ^ 2, "#.000") & Space(2) & Format(Sqr(n), "#.000") & Space(2) & Format(n ^ 3, "#.000") & Space(2) & Format(n ^ (1 / 3), "#.000")'上句的输出也可以用下面的print方式:' Print Format(n ^ 2, "#.000"); Spc(2); Format(Sqr(n), "#.000"); Spc(2); Format(n ^ 3, "#.000"); Spc(2); Format(n ^ (1 / 3), "#.000")End Sub3.Private Sub Command1_Click()Dim x%, y%x = Int(Rnd * 900 + 100)Print "产生的随机数:"; xy = (x Mod 10) * 100 + (x \ 10 Mod 10) * 10 + x \ 100Print "反序数:"; Format(y, "000")End SubPrivate Sub Command2_Click()Dim x%, y As Stringx = Int(Rnd * 900 + 100)Print "产生的随机数:"; xy = Trim(Str(x))Print "反序数:" & Right(y, 1) & Mid(y, 2, 1) & Left(y, 1)End Sub4.Private Sub Command1_Click()Dim m%, n%Randomizem = Val(Text1): n = Val(Text2)x = Int(Rnd * (n - m) + m)y = Int(Rnd * (n - m) + m)z = Int(Rnd * (n - m) + m)Label3 = m & "到" & n & "之间的3个随机数为: " & x & Space(3) & y & Space(3) & zEnd Sub5.Private Sub Command1_Click()Label1.Caption = DateEnd SubPrivate Sub Command2_Click()Label2.Caption = TimeEnd SubPrivate Sub Command3_Click()Label3.Caption = WeekdayName(Weekday(Date))End Sub实验四:一、选择1.C2.D3. C4.D5.A6.D7.B8.B9.A10.C二、填空1. 48.71E-01, -4.87122. 关系、逻辑、算术3. 900,100,mid(s,2,1)4.m、1,2,3 、print m & "月是第二季度"、end select三、程序结果1. X=4 y=132. 10操作题:1.方法一:Private Sub Command1_Click()x = InputBox("请输入弧度数值", "弧度转换", 0)xx = Val(x)a = x * 180 / 3.14aa = Int(a)b = (a - aa) * 60bb = Int(b)c = (b - bb) * 60cc = Format(c, "#.000")MsgBox "弧度" & x & "转换为" & aa & "度" & bb & "分" & cc & "秒" End Sub方法二:Option ExplicitPrivate Sub Command1_Click()Dim x!, a!, aa%, b!, bb%, c!, cc$x = Val(Text1)a = x * 180 / 3.14aa = Int(a)b = (a - aa) * 60bb = Int(b)c = (b - bb) * 60cc = Format(c, "#.000")Label2 = "弧度" & Text1 & "转换为" & aa & "度" & bb & "分" & cc & "秒"End Sub2.Private Sub Command1_Click()Dim x%x = Val(Text1)If x / 400 = x \ 400 Or x Mod 4 = 0 And x Mod 100 <> 0 ThenLabel2 = Text1 & "年是闰年"ElseLabel2 = Text1 & "年不是闰年"End IfEnd Sub3.Private Sub Command1_Click()Dim x%, y%, z%x = InputBox("输入第一个数")y = InputBox("输入第二个数")z = InputBox("输入第三个数")Print "输入的数是:"; x; y; zIf x > y Then t = x: x = y: y = tIf y > z Then t = y: y = z: z = tIf x > y Then t = x: x = y: y = tPrint "排序结果是:"; x; y; zEnd Sub4.方法一:Private Sub Command1_Click() x = Val(InputBox("请输入上网时间:")) If x <> -1 ThenSelect Case xCase Is < 10fei = 25Case 10 To 50fei = x * 2Case 50 To 100fei = x * 1.5fei = x * 1End SelectMsgBox "上网费用为:" & fei & "元" End IfEnd SubPrivate Sub Command2_Click()EndEnd Sub方法二:Private Sub Command1_Click() Dox = Val(InputBox("请输入上网时间:", , -1)) If x <> -1 ThenSelect Case xCase Is < 10fei = 25Case 10 To 50fei = x * 2Case 50 To 100fei = x * 1.5Case Is >= 100End Selectzongfei = zongfei & Space(3) & fei MsgBox zongfei, , "上网费用为"ElseExit DoEnd IfLoopEnd SubPrivate Sub Command2_Click()EndEnd Sub实验五一、选择B C B A C二、填空(1)for x=2 to 10s*(1-1/x)(2) 1 t>1E-6(3) j t(4) 5 11 51.Private Sub Command1_Click()For n = 1 To 100s = s + nNext nPrint sEnd SubPrivate Sub Command2_Click()n = 1Do While n <= 100s = s + nn = n + 1LoopPrint sEnd Sub2.Private Sub Command1_Click()For i = 0 To 20For j = 0 To 33If i * 5 + j * 3 + 1 / 3 * (100 - i - j) = 100 Then Print i, j, 100 - i - j Next jNext iEnd Sub3.Private Sub Command1_Click()n = 0DoIf n Mod 2 = 1 And n Mod 3 = 2 And n Mod 5 = 4 And n Mod 6 = 5 And n Mod 7 = 0 Then Exit Don = n + 1LoopPrint nEnd Sub4.'已知x,y,z分别是0~9中的一个数,求x,y,z的值,使得xxz+yzz=532. Private Sub Command1_Click()Dim x%, y%, z%, i%, j%For x = 0 To 9For y = 0 To 9For z = 0 To 9If (x * 100 + x * 10 + z) + (y * 100 + z * 10 + z) = 532 Then Print x, y, z NextNextNextEnd SubPrivate Sub Command2_Click()For x = 0 To 9For y = 0 To 9For z = 0 To 9If Val(x & x & z) + Val(y & z & z) = 532 Then Print x; y; z NextNextNextEnd Sub5.Private Sub Command1_Click()x = Val(Text1)y = x * 4n = 0Do While x <= yx = x * (1 + 0.1)n = n + 1LoopPrint x, nEnd Sub6.Private Sub Command1_Click()n = Val(InputBox("输入计算到第几项:", , 0))For i = 1 To ns = s + (-1) ^ (i + 1) * iNextPrint n, sEnd SubPrivate Sub Command2_Click()n = Val(InputBox("输入计算到第几项:", , 0))p = 1For i = 1 To ns = s + p * ip = -pNextPrint n, sEnd Sub7.'s=(0+1)+(0+1+2)+(0+1+2+3)+(0+1+2+3+4)+……(0+1+2+3+4+……n) Private Sub Command1_Click()Dim n%, s%n = Val(InputBox("输入计算到第几项:", , 0))s = 0: t = 0For i = 1 To nt = t + is = s + tNext iPrint sEnd SubPrivate Sub Command2_Click()Dim n%, s%n = Val(InputBox("输入计算到第几项:", , 0)) s = 0: t = 0For i = 1 To nt = 0For j = 1 To it = t + jNexts = s + tNextPrint sEnd Sub8.Private Sub Command1_Click()Dim s As Double, pi As Doublen = 1: s = 0Do While 1 / (2 * n - 1) >= 0.0001 '也可以是Do Until 1 / (2 * n - 1)< 0.0001s = s + (-1) ^ (n + 1) * 1 / (2 * n - 1)n = n + 1Looppi = 4 * sPrint piEnd Sub9.'5-9:输出所有的“水仙花数”.'所谓的“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
实验一:设计简单的VB 应用程序一、实验目的1.掌握Visual Basic 启动和退出的方法。
2.熟悉Visual Basic 的集成开发环境。
3.掌握Visual Basic 程序设计的基本步骤,了解VB 程序的编写、保存和编译的方法过程。
4.初步了解几个常用基本控件控件(标签、命令按钮和文本框)的使用方法。
二、实验类型综合三、实验时间:2013-3-8四、实验任务1、启动Visual Basic ,然后创建一个“标准 EXE ”工程(保存在D 盘以自己学号命名的文件夹中,文件名和窗体名均为SJT ),并了解Visual Basic 集成开发环境下各组成部分及其作用。
2、编一程序,计算任意输入的正整数的平方根。
3、编写一个应用程序,界面如图1-1所示。
窗体中文字“VB 应用程序!”为一标签控件,单击标题为“放大”的命令按钮,则“VB 应用程序!”的字号放大一号,单击“缩小”按钮则反之;同时,窗体中还有4个含某种指向图案的按钮,若单击某个按钮,则使“VB 应用程序!”向该按钮所指向的方向移动50Twip 。
(提示:四种指向的图案可以在Visual Basic 安装目录中的“…graphics\icon\Arrows ”子目录中找到,名称分别为arw07dn.ico 、arw07lt.ico 、arw07rt.ico 和arw07up.ico )五、实验要求 写出实验报告,内容是:1、第1小题的操作步骤2、第2、3题1).程序的界面设计。
2).程序主要代码。
3).运行结果(输入与输出)。
4).实验总结。
(写上你自己的总结。
可以从以下几个方面来总结:你在编程过程中花时多少?时间是怎么分配的?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?)图1-1 实验1-2程序运行实验二:数据的输入和输出一、实验目的1.掌握常量和变量、表达式的基本概念和正确书写格式。
2.掌握基本语句(Print语句、赋值语句、Dim语句等)的使用;3、掌握常用函数的正确使用方法;4、掌握数据的动态输入InputBox和信息提示MsgBox的基本使用方法。
vb程序设计实验报告VB程序设计实验报告一、引言在计算机科学与技术领域中,程序设计是一项至关重要的技能。
Visual Basic (VB)作为一种强大的编程语言,被广泛应用于软件开发领域。
本实验报告旨在总结和分析我在VB程序设计实验中的学习和实践经验。
二、实验目的本次实验的主要目的是通过设计和实现一个简单的VB程序,加深对VB语言的理解和掌握。
通过这个实验,我将学习如何使用VB语言进行界面设计、事件处理和数据处理。
三、实验过程1. 界面设计在实验开始时,我首先进行了界面设计。
通过VB的可视化设计环境,我选择了合适的控件,布局了用户界面。
我使用了文本框、标签、按钮等控件,使用户能够输入数据并进行相应的操作。
2. 事件处理在界面设计完成后,我开始编写事件处理程序。
我为按钮添加了点击事件,当用户点击按钮时,程序会执行相应的操作。
例如,当用户点击“计算”按钮时,程序会读取用户输入的数据,并进行计算操作。
通过编写事件处理程序,我学会了如何响应用户的操作,并进行相应的逻辑处理。
3. 数据处理在实验中,我还学习了如何进行数据处理。
我使用了VB的变量和运算符,对用户输入的数据进行计算和处理。
通过编写算法和逻辑,我实现了对用户输入数据的验证和处理,确保程序能够正确运行。
四、实验结果经过一段时间的设计和调试,我成功完成了VB程序的实现。
我的程序可以根据用户输入的数据进行相应的计算,并将结果显示在界面上。
通过这个实验,我不仅巩固了VB语言的基础知识,还提高了自己的编程能力。
五、实验总结通过这次VB程序设计实验,我收获了很多。
首先,我学会了如何使用VB语言进行界面设计,掌握了一些常用的控件和布局方法。
其次,我学习了如何编写事件处理程序,响应用户的操作,并进行相应的逻辑处理。
最后,我还学习了如何进行数据处理,使用变量和运算符对数据进行计算和处理。
在实验过程中,我遇到了一些问题和挑战。
例如,我曾经遇到过界面布局不合理导致用户体验不佳的情况,但通过不断的调整和改进,最终解决了这个问题。
第1章VB集成环境与VB概述一、选择题第2章常用控件与界面设计一、选择题第3章数据、表达式与简单程序设计一、选择题第4章选择分支与循环一、选择题二、填空题1.5 7 13 12 14 112. 3 1 5 3 4 13. right(a$,i)4. 45. 6-i6. 6 11 10 21 13 347. 5 14 138. Is else end select9. a*(2*i-1)*(-1)*x/(2*i+2) i+110. 0 n-111. 1 t*(-1)*x^2/((2*k-1)*(2*k)) Abs(t)>eps12. count1=count+1 count1>013. sum=0 sum+j st & k & “+”14. 9 x三、编程题1.Option ExplicitPrivate Sub Command1_Click()Dim s As String, i As Integer, ch As String * 1Dim a As Integer, b As Integer, c As Integers = Text1.TextFor i = 1 To Len(s)ch = Mid(s, i, 1)If (ch >= "0" And ch <= "9") Thena = a + 1ElseIf (ch >= "A" And ch <= "Z") Or (ch >= "a" And ch <= "z") Thenb = b + 1Elsec = c + 1End IfNextPrint "数字个数"; aPrint "字符个数"; bPrint "其他字符"; cEnd Sub2.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, n As IntegerDim a As Integer, b As Integer, c As IntegerFor i = 1 To 50n = Int(Rnd * 90 + 10)Print n;If i Mod 10 = 0 Then PrintIf n <= 40 Thena = a + 1ElseIf n <= 70 Thenb = b + 1Elsec = c + 1End IfNext iPrint "小于等于40的个数:"; aPrint "大于40小于等于70的个数:"; bPrint "大于70的个数:"; cEnd Sub3.Option ExplicitPrivate Sub Command1_Click()Dim x As SingleDim t As Long, n As Integerx = 1t = 1n = 1Do While 1 / t >= 0.0001x = x + 1 / tn = n + 1t = t * nLoopPrint xEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim k As Integer, sum As Integer, i As Integerk = InputBox("请输入一个正整数k", "输入框")For i = 1 To Len(CStr(k))sum = sum + Mid(k, i, 1)Next iMsgBox k & "的各位数字之和" & sumEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, iSum As LongFor i = 1 To 20iSum = iSum + i ^ 4NextPrint iSumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As IntegerDim sum1 As Integer, sum2 As LongDim i As Integer, j As IntegerFor a = 2 To 3000sum1 = 0sum2 = 0For i = 1 To a \ 2If a Mod i = 0 Then sum1 = sum1 + i Next ib = sum1For j = 1 To b \ 2If b Mod j = 0 Then sum2 = sum2 + j Next jIf sum2 = a And a < b Then Print a, bNextEnd Sub7.Private Sub Command1_Click() '打印菱形Dim i As Integer, j As IntegerClsFor i = 1 To 6 '打印菱形上边6行Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iFor i = 5 To 1 Step -1 '打印下半部分Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iEnd Sub8.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, j As Integer, iSum As IntegerPrint "连续和为1250的正整数是:"For i = 1 To 500iSum = 0For j = i To 500iSum = iSum + jIf iSum >= 1250 Then Exit ForNextIf iSum = 1250 ThenPrint i; " ~"; jEnd IfNextEnd Sub9.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As Integer, c As IntegerFor a = 1 To 50For b = a To 50For c = b To 50If a ^ 2 + b ^ 2 = c ^ 2 ThenPrint a, b, cEnd IfNext cNext bNext aEnd Sub第5章数组一、选择题二、填空题1.Variant2.ReDim A(N)A(1)If M < A(I) Then M = A(I)3.Int(26 * Rnd) + 65Chr(t)i + 1 To 10A(i) > A(j)4.InStr(s, ",")Right(s, Len(s) - n)s5.T – 1I + 16.k = 6 - i – jmax = m7.j = 48j = j-38.i + 1i = i + 19. 23710. 3103511.numi + 1a(j)=temp三、编程题1.Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(10) As IntegerDim i As Integer, max As IntegerFor i = 1 To 10a(i) = Int(90 * Rnd) + 10Print a(i);Next iPrinti = 1max = 0Do While i <= 10If a(i) Mod 3 = 0 ThenIf a(i) > max Thenmax = a(i)End IfEnd Ifi = i + 1LoopIf max = 0 ThenPrint "无要找的数"ElsePrint max & "是最大的能被3整除的数"End IfEnd Sub2.Option ExplicitOption Base 1Private Sub Command1_Click()Dim A() As IntegerDim I As Integer, m As IntegerDim K As IntegerReDim A(10)Print "原数组:";For I = 1 To 10A(I) = IPrint A(I);Next IPrintm = InputBox("????m")K = 9 + mReDim Preserve A(K)For I = 11 To KA(I) = A(I - 10)Next IFor I = 1 To 10A(I) = A(I + m - 1)Next IPrint "平移后的数组:";For I = 1 To 10Print A(I);Next IPrintEnd Sub3.Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, J As Integer, K As IntegerDim a() As Integer, n As Integer, p As Integer Dim s As String, Flag As Booleanp = 1For K = 10 To 100I = 1Do While I <= 10 And Not FlagJ = 1Do While J <= 10 And Not Flagn = I ^ 2 + J ^ 2If n = K ThenFlag = TrueReDim Preserve a(p)a(p) = Kp = p + 1s = I & Str(J) & Str(K)List1.AddItem sEnd IfJ = J + 1LoopI = I + 1LoopFlag = FalseNext KEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim A(10) As IntegerDim B(10) As Integer, S As StringDim I As Integer, J As Integer, X As IntegerA(1) = Int(90 * Rnd) + 10S = A(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = A(J) Then Exit ForNext JIf J = I ThenA(I) = XS = S & " " & A(I)Exit DoEnd IfLoopNext IText1.Text = SB(1) = Int(90 * Rnd) + 10S = B(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = B(J) Then Exit ForNext JIf J = I ThenB(I) = XS = S & " " & B(I)Exit DoEnd IfLoopNext IText2.Text = SS = ""For I = 1 To 10For J = 1 To 10If A(I) = B(J) ThenS = S & " " & A(I)End IfNext JNext IIf S = "" ThenText3.Text = "没有重复"ElseText3.Text = SEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim I As Integer, J As IntegerDim a() As Integer, K As Integer, Sum As Integer K = Val(Text1.Text)I = 1DoJ = K Mod 10ReDim Preserve a(I)a(I) = JSum = Sum + JK = K \ 10I = I + 1Loop Until K = 0Text2.Text = SumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a(100, 2) As Integer, K As IntegerDim I As Integer, J As IntegerDim M As Integer, N As IntegerK = 1For I = 1 To 99For J = 1 To 99If I > J ThenM = I - JN = I + JIf Sqr(M) = Int(Sqr(M)) And Sqr(N) = Int(Sqr(N)) ThenList1.AddItem I & " " & Ja(K, 1) = Ia(K, 2) = JK = K + 1End IfEnd IfNext JNext IEnd Sub7.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsPicture3.ClsRandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, max As IntegerDim b(5) As Integer, c(5) As IntegerFor i = 1 To 5max = a(i, 1)For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)End Ifb(i) = maxIf max = a(i, j) Then c(i) = jNext jNext iFor i = 1 To 5Picture2.Print b(i)Picture3.Print c(i)NextEnd Sub8.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsLabel3.Caption = "最大值?"Label4.Caption = "最小值?"RandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click() '交换并显示Dim i As Integer, j As Integer, t As IntegerDim maxi As Integer, mini As Integer, max As Integer, min As Integer max = 10: min = 99For i = 1 To 5For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)maxi = iEnd IfIf min > a(i, j) Thenmin = a(i, j)mini = iEnd IfNextNextIf maxi <> mini ThenFor j = 1 To 5t = a(maxi, j)a(maxi, j) = a(mini, j)a(mini, j) = tNext jFor i = 1 To 5For j = 1 To 5Picture2.Print a(i, j);NextPicture2.PrintNextLabel3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"ElsePicture2.Print "最小值和最大值在一行"Label3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"End IfEnd SubPrivate Sub Form_click()Picture1.ClsPicture2.ClsLabel3.Caption = ""Label4.Caption = ""End Sub9.Option Base 1Private Sub Command1_Click()Dim i As Integer, j As Integer, n As Integer, a() As Integern = InputBox("请输入一个奇数N:")If n Mod 2 = 0 ThenMsgBox ("请重新输入奇数!")End IfReDim a(n, n)For i = 1 To nFor j = 1 To nIf i = (n + 1) / 2 And j = (n + 1) / 2 Thena(i, j) = -1ElseIf i = j Or i + j = n + 1 Thena(i, j) = 1Elsea(i, j) = 0End IfNext jFor i = 1 To nFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd Sub10.Option Base 1Dim a(10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerPrint "生成的数组:"RandomizeFor i = 1 To 10a(i) = Int(Rnd * 90) + 10Print a(i);NextPrintEnd SubPrivate Sub Command2_Click()Dim i As Integerx = InputBox("请输入要删除的数组元素下标:") Print "删除第" & x & "个数组元素后:"For i = x + 1 To 10a(i - 1) = a(i)NextFor i = 1 To 9Print a(i);NextEnd Sub11.Option ExplicitDim a(20) As Integer, i As IntegerPrivate Sub Command1_Click()RandomizeFor i = 1 To 20a(i) = Int(Rnd * 9) + 1Text1 = Text1 & a(i) & " "If i = 10 Then Text1 = Text1 & vbCrLf NextPrivate Sub Command2_Click()Dim j As Integer, k As Integer, b(20) As Boolean 'b(2)用来记录a(2)是否和前面的数相同,相同记为true,不再统计For i = 1 To 20k = 1If b(i) = False Then '如果b(i)=False,表示a(i)没有被统计过For j = i + 1 To 20If a(i) = a(j) Thenk = k + 1b(j) = TrueEnd IfNext jList1.AddItem a(i) & "出现次数:" & kEnd IfNextEnd SubPrivate Sub Command3_Click()Text1 = ""List1.ClearEnd Sub第6章过程一、选择题二、填空题1. 6 .2. 4 20 1013.第一行是 6 26 、第三行是-2 984.第一行10 6 、第二行 5 -55.第一行 6 5 、第三行8 76.第一行11 、第二行77.Fun(i)Fun=p8.第一行 4 、第二行2079.第一行29 、第二行28.710.J=kb( ) As Integerb( k-1) =b(k)i11.第一行gec 、第二行ge 、第四行 312.p1 = True And p2 = True 或p1 And p2= isp(i)Isp = Truem Mod i = 013.Convert(st)Len(s)"A" To "F"k = k + p * h14.isualVisualVisu15.s + an + 1x As Single, n As Integer 、p * (x + i) / ((2 * i - 1) * i * x)16.27617.Left(s, 1)Mid(s, i - 1, 1) = Mid(s, i, 1)n = 1c & CStr(n)18.chtempTrue19.val(mid(s,i,j))n as longprime=True20.A(2,2)的值是 6 ,A(3,1) 的值是8 ;A(4,2) 的值是 321.Option1(i)X22.1023.第一行7 6 ,第二行16 16 ,第三行,4524.第一行15 1 ,第二行35 3 ,第三行,50三、改错题1、Option Base 1Private Sub Command1_Click()Dim A() As Integer, I As Integer, J As Integer, Logic As Boolean Dim K As IntegerReDim A(1)A(1) = 50————————'K=1For I = 51 To 149K = 1 '位置错Logic = FalseCall Sub1(A, I, Logic)If Logic ThenK = K + 1ReDim A(K) 'ReDim Preserve A(K)A(K) = IEnd IfNext IFor I = 1 To UBound(A)Text1 = Text1 & Str$(A(I))If I Mod 5 = 0 Then Text1 = Text1 & vbCrLfNext IEnd SubPrivate Sub Sub1(A() As Integer, N As Integer, F As Boolean) Dim I As Integer, J As Integer, Ub As IntegerUb = UBound(A)For I = 1 To UbFor J = 2 To A(I)If A(I) Mod J = 0 And N Mod J = 0 ThenExit For 'Exit SubEnd IfNext JF = TrueNext IEnd Sub2、Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, Flg As Boolean, S1 As Integer, S2 As IntegerDim J As Integer, K As Integer, P() As IntegerReDim P(1)P(1) = 2For I = 3 To 150 Step 2For J = 2 To Sqr(I)If I Mod J = 0 Then Exit ForNext JIf J > Sqr(I) ThenReDim Preserve P(UBound(P) + 1)P(UBound(P) + 1) = I 'P(UBound(P)) = IEnd IfNext IFor I = 80 To 125If fun(I, P, S1, S2) Then 'If fun(I, P, S1, S2)Text1 = Text1 & Str$(I) & "=" & Str(S1) & "*" & Str$(S2) & vbCrLf End IfNext IEnd SubPrivate Function fun(N As Integer, P() As Integer, S1 As Integer, S2 As Integer) As Boolean Dim I As Integer, J As IntegerFor I = 1 To UBound(P)For J = 1 To UBound(P) - 1If N = P(I) * P(J) ThenS1 = P(I)S2 = P(J)'fun = TrueExit Functionfun = True '位置错End IfNext JNext IEnd Function3、Option ExplicitPrivate Sub Get_Chess(Chess() As Integer, idx As Integer, Over As Integer) 'ByVal idx As IntegerDim Ub As Integer, Counter As Integer, K As IntegerUb = UBound(Chess)Chess(idx) = 0Counter = 1K = 0 '位置错Do Until Counter = Ub - 1Do Until K = 2idx = idx + 1If idx > Ub Then idx = 1K = K + Chess(idx)LoopChess(idx) = 0Counter = Counter + 1LoopFor Over = 1 To UbIf Chess(Over) <> 0 Then Exit ForNext OverEnd SubPrivate Sub Command1_Click()Dim Chess(32) As Integer, I As Integer, J As IntegerDim K As Integer, idx As IntegerFor I = 1 To 32For J = 1 To 32Chess(J) = 1Next JCall Get_Chess(Chess, I, K)If K = 23 ThenText1 = "从第" & Str$(I) & "号棋子开始取"Exit ForEnd IfNext IEnd Sub4、Option ExplicitPrivate Sub Form_Click()Dim S As String, Flg As BooleanDoS = InputBox("输入一个自然数")If S = "" Or Not IsNumeric(S) ThenMsgBox "请重新输入", 48 + vbOKOnlyElseExit DoEnd IfLoopjudge(S, Flg) ' Call judge(S, Flg) 或judge S, Flg If Flg ThenPrint S; "是回文数"ElsePrint S; "不是回文数"End IfEnd SubPrivate Sub judge(Ch As String, F As Boolean)Dim L As Integer, I As IntegerL = Len(Ch)F = True ' F = FalseFor I = 1 To LIf Mid$(Ch, I, 1) <> Mid$(Ch, L + 1 - I, 1) Then Exit Sub Next IF = False ' F = TrueEnd Sub四、编程题1.Private Function Prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iPrime = TrueEnd Function'方法一Private Sub Command1_Click()Dim m As Integer, i As Integerm = InputBox("请输入一个大于2 的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub If Prime(2) And Prime(m - 2) ThenPrint m & "=2 +" & m - 2ElseDoi = i + 1If Prime(2 * i + 1) And Prime(m - (2 * i + 1)) ThenPrint m & "=" & 2 * i + 1 & "+" & m - (2 * i + 1)Exit DoEnd IfLoop While 2 * i + 1 < m - (2 * i + 1)End If'方法二Private Sub Command2_Click()Dim m As Integer, i As Integer, p() As Integer, n As IntegerDim flg As Booleanm = InputBox("请输入大于2的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub ReDim p(1)p(1) = 2n = 1For i = 3 To m - 2 Step 2If Prime(i) Thenn = n + 1ReDim Preserve p(n)p(n) = iEnd IfNext iFor i = 1 To nFor j = 1 To nIf p(i) + p(j) = m ThenPrint m & "=" & p(i) & "+" & p(j)flg = TrueExit ForEnd IfNext jIf flg = True Then Exit ForNext iEnd Sub2.Private Function Fact(a As Integer) As LongIf a = 0 Or a = 1 ThenFact = 1ElseFact = a * Fact(a - 1)End IfEnd FunctionPrivate Sub Command1_Click()Dim n As Integer, m As Integer, result As Singlen = Val(Text1.Text)m = Val(Text2.Text)If n >= m Thenresult = Fact(n) / Fact(m) / Fact(n - m)Text3.Text = resultMsgBox "要求n>=m,请重新输入"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub3.Private Function Istgs(n As Integer) As BooleanDim s As String, L As IntegerL = Len(CStr(n))s = CStr(n ^ 2)If Right(s, L) = n Then Istgs = TrueEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 10 To 300If Istgs(n) Then List1.AddItem n & "^2" & "=" & n ^ 2 Next nEnd SubPrivate Sub Command2_Click()EndEnd Sub4.Private Sub Command1_Click()Dim a(3, 4) As Integer, i As Integer, j As IntegerDim m As Integer, mj As IntegerRandomizeFor i = 1 To 3For j = 1 To 4a(i, j) = Int(900 * Rnd + 100)Print a(i, j);Next jPrintNext iFor i = 1 To 3m = 0Call max(a, i, m, mj)Print "第" & i & "行最大值为" & m & ",在第" & mj & "列"Next iEnd SubPrivate Sub max(a() As Integer, i As Integer, m As Integer, maxj As Integer) Dim j As Integerm = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > m Thenm = a(i, j)maxj = jEnd IfNext jEnd SubPrivate Sub Command2_Click()EndEnd Sub5.Private Function Judge(n As Integer) As BooleanDim sum As Integersum = yz(n)If yz(sum) = 2 * n Then Judge = TrueEnd FunctionPrivate Function yz(n As Integer) As IntegerDim i As IntegerFor i = 1 To nIf n Mod i = 0 Then yz = yz + iNext iEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 1 To 500If Judge(n) Then Print nNext nEnd SubPrivate Sub Command2_Click()EndEnd Sub6.Private Sub Command1_Click()Dim n As Integer, j As Integer, flg As BooleanFor n = 2 To 30flg = FalseFor j = 2 To nIf pfs(j) And n Mod j = 0 Thenflg = TrueExit ForEnd IfNext jIf flg = False Then Print n;Next nEnd SubPrivate Function pfs(n As Integer) As BooleanIf Sqr(n) = Int(Sqr(n)) Then pfs = TrueEnd Function7.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd Function'判断某数是否为回文数Private Function Hws(n As Long) As BooleanDim i As Integer, s As String, L As Integers = CStr(n): L = Len(s)For i = 1 To Len(s) / 2If Mid(s, i, 1) <> Mid(s, L + 1 - i, 1) Then Exit Function Next iHws = TrueEnd FunctionPrivate Sub Command1_Click()Dim x As Long, t As Longx = InputBox("请输入一个正整数:")t = xDo While Hws(t) = FalsePrint t; "+"; fxs(t); "="; t + fxs(t)t = t + fxs(t)LoopEnd Sub8.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Sub Command1_Click()Dim n As Long, t As LongFor n = 1 To 999t = fxs(n)If t ^ 2 = fxs(n ^ 2) And n Mod 10 <> 0 And n < t ThenList1.AddItem n & " " & tList2.AddItem n & "^2" & "=" & n ^ 2 & " " & t & "^2" & "=" & t ^ 2 End IfNext nEnd Sub9.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Function Judge(n As Integer) As BooleanDim i As Integer, L As Integer, a(9) As Integer, t As IntegerIf Sqr(n) = Int(Sqr(n)) ThenL = Len(CStr(n))For i = 1 To Lt = Mid(CStr(n), i, 1)a(t) = 1Next iFor i = 0 To 9Sum = Sum + a(i)Next iIf Sum = L - 1 Then Judge = TrueEnd IfEnd FunctionPrivate Sub Command1_Click()Dim a As IntegerFor a = 300 To 2000If Judge(a) Then List1.AddItem aNext aEnd Sub10.Private Function F(n As Integer) As BooleanDim i As IntegerFor i = 1 To Len(CStr(n))If i Mod 2 = 1 And Mid(CStr(n), i, 1) Mod 2 <> 1 Then Exit FunctionIf i Mod 2 = 0 And Mid(CStr(n), i, 1) Mod 2 <> 0 Then Exit Function Next iF = TrueEnd FunctionPrivate Sub Command1_Click()Dim a(8) As Integer, i As Integer, j As IntegerRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tList1.AddItem a(i)If F(a(i)) Then List2.AddItem a(i)End IfLoop Until i = 8End SubPrivate Sub Command2_Click()List1.ClearList2.ClearEnd SubPrivate Sub CmdEnd_Click()EndEnd Sub11.Private Function prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iprime = TrueEnd FunctionPrivate Function nx(n As Integer) As IntegerDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext inx = Val(s)End FunctionPrivate Sub Command1_Click()Dim n As Integer, t As IntegerFor n = 100 To 900t = nx(n)If prime(n) And prime(t) And n < t ThenList1.AddItem "(" & n & "," & t & ")"End IfNext nEnd SubPrivate Sub Command2_Click()List1.ClearEnd Sub12.Option Base 1Dim a(4, 5) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As IntegerRandomizeFor i = 1 To 4For j = 1 To 5a(i, j) = Int(Rnd * 90 + 10)Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Fp(a() As Integer, i As Integer, maxj As Integer, Flg As Boolean) Dim max As Integer, j As Integer, t As Integermax = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > max Thenmax = a(i, j)maxj = jEnd IfNext jFor t = 1 To UBound(a, 1)If a(t, maxj) > max ThenFlg = FalseExit SubEnd IfNextFlg = TrueEnd SubPrivate Sub Command2_Click()Dim i As Integer, m As Integer, mj As Integer, f As BooleanFor i = 1 To 4f = Falsem = 0: mj = 0Call Fp(a, i, mj, f)If f = True ThenText1.Text = Text1.Text & "(" & i & "," & mj & "):" & a(i, mj) & vbCrLf End IfNext iEnd SubPrivate Sub Command3_Click()Picture1.ClsText1 = ""End Sub13.Private Sub Command1_Click()Dim a(30) As Integer, i As Integer, j As IntegerDim Flag As BooleanRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tText1.Text = Text1.Text + Str(a(i))If i Mod 10 = 0 Then Text1.Text = Text1.Text + vbCrLfIf IsDown(a(i)) ThenList1.AddItem a(i)Flag = TrueEnd IfEnd IfLoop Until i = 30If Flag = False Then List1.AddItem "无降序数"End SubPrivate Function IsDown(n As Integer) As BooleanDim i As Integer, S As StringS = CStr(n)For i = 1 To Len(S) - 1If Mid(S, i, 1) < Mid(S, i + 1, 1) Then Exit FunctionNext iIsDown = TrueEnd FunctionPrivate Sub Command2_Click()List1.ClearText1 = ""End Sub14.Option ExplicitPrivate Sub CmdFind_Click()Dim i As Integer, p As String, st As String, st1 As StringFor i = 100 To 999st = ""If csum(i) = zyz(i, st) Thenp = CStr(i)st1 = Left(p, 1) & "+" & Mid(p, 2, 1) & "+" & Right(p, 1)List1.AddItem i & ": " & st1 & "=" & Left(st, Len(st) - 1)End IfNext iIf List1.ListCount = 0 ThenList1.AddItem "无满足要求的数!"End IfEnd SubPrivate Function csum(m As Integer) As Integer '求各位数字之和Dim i As Integer, p As Stringp = CStr(m)For i = 1 To Len(p)csum = csum + Val(Mid(p, i, 1))Next iEnd FunctionPrivate Function zyz(ByVal m As Integer, st As String) As Integer '求所有质因子之和Dim i As Integeri = 2DoIf m Mod i = 0 Thenzyz = zyz + ist = st & i & "+"m = m \ iElsei = i + 1End IfLoop Until m = 1End Function15.Private Sub Command1_Click()Dim k As Integer, i As Integerk = InputBox("请输入要求的数列项数:")List1.AddItem "共输出前" & k & "项数列"For i = 0 To kList1.AddItem p(i)NextEnd SubPrivate Function p(n As Integer) As IntegerIf n = 0 Or n = 1 Or n = 2 Thenp = 1Elsep = p(n - 2) + p(n - 3)End IfEnd Function第7章文件一、选择题二、填空题1.顺序文件和随机文件2. EOF3. Write和Print4.返回或设置当前的工作目录5.5116.文件的写语句7.Append8.LOF9.关闭10.Pattern11.【1】For Input 【2】#2 【3】Not EOF(2) 12.【1】”END”【2】Text1.Text 或者Text113.【1】Input 【2】ch 【3】Len(mystr) 14.【1】Number 【2】s15.【1】For Append As #1 【2】"end" 【3】ct,nt 16.【1】For Input 【2】For Output As #2 【3】Not EOF(1) 【4】Line Input #1,str1 【5】Close #1,#2 【6】Kill “C:\old.txt 17.【1】Open "C:StuData.txt" For OutPut As #1 【2】Write 18.【1】"C:\data.txt" 【2】#1, a(i) 【3】k>1 And a(k-1)>b 【4】k = k -1三、综合题1.Option Base 1Dim arr(100) As IntegerPrivate Sub Command1_Click()Dim i As IntegerOpen "c:\in18.txt" For Input As #6For i = 1 To 100Input #6, arr(i)Next iClose #6End SubPrivate Sub Command2_Click()Dim i As IntegerText1.Text = ""Open "c:\out18.txt" For Output As #8For i = 1 To 100If arr(i) Mod 2 <> 0 ThenText1.Text = Text1.Text & Str(arr(i))Write #8, arr(i)End IfNext iClose #8End Sub2.Dim str As StringDim n As LongPrivate Sub Command1_Click()CommonDialog1.Filter = "文本文件(*.txt)|*.txt|All Files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.Action = 1Open CommonDialog1.FileName For Input As #2n = LOF(2)str = Input(n, #2)Text1.Text = strClose #2End SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 1 To Len(str)If Asc(Mid(str, i, 1)) <= Asc("Z") And Asc(Mid(str, i, 1)) >= Asc("A") Then Mid(str, i, 1) = LCase(Mid(str, i, 1))ElseIf Asc(Mid(str, i, 1)) <= Asc("z") And Asc(Mid(str, i, 1)) >= Asc("a") Then Mid(str, i, 1) = UCase(Mid(str, i, 1))End IfNext iText1.Text = strEnd SubPrivate Sub Command3_Click()Open "D:\out.txt" For Output As #3Print #3, strClose #3End Sub第8章程序调试一.选择题二.改错题1.a(i)=int(Rnd*19)+1 →a(i)=int(rnd*20)+1For l=1 to a(i)+1 →for i=2 to a(i)+1If l=a(i) →if l <> a(i)K=k+1 →k=k-1。
《VB程序设计》实验指导书18学时实验一VB集成环境及简单应用程序的建立一、实验目的1.掌握Visual Basic启动和退出的方法。
2.熟悉Visual Basic的集成开发环境。
3.掌握Visual Basic程序设计的基本步骤。
4. 掌握窗体的使用方法。
二、实验内容1 启动Visual Basic,然后创建一个“标准 EXE”工程。
了解Visual Basic集成开发环境下各组成部分及其作用。
【要求】(1)在集成开发环境中分别寻找“窗体窗口”、“属性窗口”、“工程资源管理器”、“窗体布局窗口”、“工具箱窗口”,熟悉它们的默认位置。
(2)在“视图”或“工程资源管理器”中切换显示“代码窗口”和“窗体窗口”。
(3)在“视图”菜单中点击“立即窗口”,观察刚刚显示出来的“立即窗口”。
(4)尝试分别将各部分关闭,然后再用“视图”菜单中对应的菜单命令将其显示。
2 编写一个简单的应用程序。
要求窗体的标题为“简单VB实验”;窗体中有一个标题为“显示”的按钮;单击该按钮后在窗体上显示蓝色的“江西农业大学”。
【步骤】(1)设计应用程序的界面;(2)设置对象的属性;(3)编写事件代码;(4)程序的运行及保存。
【提示】在窗体上显示“江西农业大学”有两种方法:(1)用Print方法:颜色应该设置窗体的前景色。
(2)用一个标签控件:颜色应该设置标签控件的前景色。
【思考】为什么在以上两种方法中在颜色的设置问题上有所不同?3 窗体无最大化和最小化按钮。
在窗体装入时,在窗体的标题栏显示“装入窗体”,并在窗体上装入一幅图片作为背景;当用户单击窗体,在标题栏显示“鼠标单击”,在窗体上显示“单击窗体”;当用户双击窗体,在标题栏显示“鼠标双击”。
去除窗体的背景图案,并显示“双击窗体”。
实验二VB常用控件的使用一、实验目的1.掌握基本控件(标签、命令按钮和文本框)的基本使用方法。
2. 掌握Visual Basic程序设计的基本步骤。
二、实验内容1 利用标签做浮雕效果文字。