VisualBasic程序设计实验指导书_第1页
VisualBasic程序设计实验指导书_第2页
VisualBasic程序设计实验指导书_第3页
VisualBasic程序设计实验指导书_第4页
VisualBasic程序设计实验指导书_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、visualbasic程序设计实验指导书实验一、vb程序设计起步一、实验目的:熟悉vb集成开发环境;掌握开发vb程序的步骤二、实验内容:练习属性窗口、工程窗口和工具箱窗口打开与关闭的各种方法新建一个工程,在属性窗口修改form1的几个属性:caption,backcolor,height和width。在界面设计的操作过程中及程序执行后,观察窗体的变化情况新建一个工程,在窗体上画一个本文框、两个命令按钮。两个命令按钮的标题分别是“问”与“答”。编写程序代码。程序运行后,当单击“问”按钮,文本框中显示“你是谁?”;当单击“答”按钮,文本框中显示“我是vb用户!”。三、实验步骤:1. 打开开始-程序

2、- microsoft visual basic6.0中文版2. 在弹出窗口选择标准exe3然后拖动相应控件到窗体上,如按钮等4分别选中窗体、控件,看其属性代码窗口,了解其属性设置。5打开界面的菜单、工具栏,了解其内容、功能和使用。 实验二、简单vb程序设计一、实验目的 掌握visual basic基本数据类型、内部函数、表达式的使用; 掌握窗体、命令按钮、标签与文本框的常用属性、事件和方法; 掌握inputbox函数、msgbox函数和print方法; 掌握顺序结构程序设计; 二、实验内容 1设计一个收款程序。用户输入商品单价和商品数量后,单击“计算”按钮,则显示应付款;单击“清除”按钮,则

3、清除显示的数据。 2.在窗体上画一个文本框。名称为text1,高度为350,宽度为2000,字体为“黑体”,并设置其它相关属性,使得在运行时,在文本框中输入的字符都显示为“?”。 三、实验步骤1、启动vb。2、在窗体上创建两个命令按钮、四个标签和两个文本框。四个标签的caption属性值分别为“商品单价”、“商品数量”、“应付款”和“”;两个文本框的text属性值为空;命令按钮的caption属性值分别为“计算”、“清除”。“计算”按钮的click事件中输入如下代码,运行后观察结果输出情况:private sub command1_click()dim a!, b!, c!a=text1.te

4、xt b=text2.text c=a*b lable4.caption=c end sub "清除"按钮的click事件中输入如下代码。private sub command1_click()text1.text=“” text2.text=“” end sub 3、新建一个工程,在窗体上添加一个文本框,将height属性和width属性值分别设置为350,200;font属性值设置为“黑体”;multilline属性设置为false,passwordchar属性值设置为“?”。 实验三、选择结构 一、实验目的:熟悉选择结构的控制流程掌握能实现选择结构的各种格式掌握选择结

5、构的编程。二、实验内容:编一程序,功能是:根据给定图形三条边的边长来判定图形的类型。若为三角形,则同时计算出为何种三角形,及三角形面积。提示:三角形存在的条件是:任意一边大于零且任意两边之和大于第三边。若三边是勾股数,则是直角三角形;若任意两边平方和大于第三边的平方,则为锐角三角形;若有一边的平方大于另外两边的平方和,则为钝角三角形 设计一个两位数加、减、乘、除运算的程序,要求如下。加、减、乘、除由用户单击相应按钮选择运算数据由随机函数产生。选择合适的控件显示运算式数据、运算符对用户输入的结果对错用消息框给出提示:结果正确时有“!”图标;结果错误时有“×”图标。三、实验步骤:1. 启

6、动microsoft visual basic6.02然后拖动三个命令按钮(commandbutton)、八个标签控件(label)和六个文本框到窗体上,调整各控件的大小和位置。 3从属性列表框中设置个控件的属性。设置命令caption(标题)属性分别为“判断并计算”、“清除再来”、“退出”;设置标签的caption(标题)属性分别为“请输入各边边长”、“显示结果”、“第一条边”、“第二条边”、“第三条边”、“是否三角形”、“何种三角形”、“三角形面积”;设置文本框的text属性值为空。4编写程序代码代码如下:private sub command1_click() dim a!, b!, c

7、!, s!, p!, y! a = text1.text b = text2.text c = text3.text if a > 0 and b > 0 and c > 0 then if a + b > c and a + c > b and b + c > a then text4.text = "是" p = (a + b + c) / 2 s = sqr(p * (p - a) * (p - b) * (p - c) text6.text = s if a 2 = b 2 + c 2 or b 2 = a 2 + c 2 or

8、c 2 = a 2 + b 2 then text5.text = "直角三角形" elseif a 2 < b 2 + c 2 and b 2 < a 2 + c 2 and c 2 < a 2 + b 2 then text5.text = "锐角三角形" elseif a 2 > b 2 + c 2 or b 2 > a 2 + c 2 or c 2 > a 2 + b 2 then text5.text = "钝角三角形" end if else: text4.text = "否

9、" end if else: text4.text = "否" end ifend sub5.计算器编写程序代码如下:dim a%, b%, s%private sub command1_click()label1.caption = str(a) & "+" & str(b)s = a + bend subprivate sub command2_click()if a < b then t = a: a = b: b = tlabel1.caption = str(a) & "-" &

10、; str(b)s = a - bend subprivate sub command3_click()label1.caption = str(a) & "*" & str(b)s = a * bend subprivate sub command4_click()if a < b then t = a: a = b: b = tlabel1.caption = str(a) & "/" & str(b)s = a / bend subprivate sub command5_click()if val(text1

11、.text) = s then msgbox "正确", 48 else msgbox "错误", 16end subprivate sub form_load()randomizea = int(rnd * 90) + 10b = int(rnd * 90) + 10end sub实验四、循环结构一、实验目的:掌握for语句的使用。掌握do.loop语句两种格式的使用。掌握while语句的使用。掌握循环控制条件的使用,避免编程中出现死循环或不循环。二、实验内容:求1000以内所有能被7整除的数的个数。计算1!+3!+5!+7!+9!使用循环结构编程,输

12、出图形找出所有的“水仙花”数。所谓水仙花数,是指一个三位数,它的各位数字的立方和等于它本身。 三、实验步骤:1.窗体的单击事件过程private sub form_click()dim n%, i%n = 0for i = 1 to 1000if i mod 7 = 0 thenn = n + 1end ifnext iprint "1000以内能被7整除的数的个数为:" nend sub 2.窗体的单击事件过程private sub form_click()dim n!, i%, s!n = 1s = 1for i = 3 to 9 step 2n = n * (i -

13、1) * is = s + nnext iprint "阶乘和为:", send sub3.窗体的单击事件过程private sub form_click()dim i%, j%for i = 1 to 7print tab(20 + i);for j = 13 to 2 * i - 1 step -1print "*"next jprintnext iend sub 4.窗体的单击事件过程private sub form_click()dim i%,a%, b%, c%, n%print "水仙花数如下:"for i = 100 t

14、o 900a = i 100b = (i - a * 100) 10c = i - a * 100 - b * 10if i = a 3 + b 3 + c 3 thenprint i;n = n + 1if n mod 5 = 0 then printend ifnext iend sub 实验五、选择语句的应用一、实验目的 1、掌握逻辑表达式的正确书写形式; 2、学会单分支和双分支结构程序的使用; 3、学会多分支条件语句的使用;二、实验内容 1.编写一个模拟计算器的程序。要求:输入两个操作数和一个操作符,根据操作符决定所进行的运算。 2.公用电话收费标准如下:通话时间在3分钟以内,收费0.

15、5元;3分钟以上,则每超过1分钟加收0.15元。编写一段程序,计算某人通话s分钟,应缴多少电话费。三、实验步骤1、在窗体上创建以下控件:标签(3个,分别为参加运算的两个数、运算符和结果)、文本框(4个,分别为参加运算的两个数、运算符和结果)、按钮(1个,标题名为“计算”),然后在命令按钮的click事件中判断运算符为四则运算的哪种运算符号,再根据运算符号判断进行何种运算,在结果文本框中显示结果。2、根据题目要求,我们可以得出以下分段函数:h= 0.5 s<=30.5+(s-3)*0.15 s>3输入s的值,根据s进行判断,然后计算h的值。在窗体上创建以下控件:标签(用来输入s的值和

16、显示结果的值h)、文本框(用来输入s的值和显示结果的值h)、计算按钮3、在按钮的 click事件中输入代码4、运行程序,检查结果。实验六、练习使用for语句及while语句一、实验目的 1、掌握for语句的使用; 2、加深理解循环的概念,掌握循环的规则及其执行过程;3、掌握多重循环的规则和程序设计方法;4、学会如何控制循环条件,防止死循环或不循环。二、实验内容 1、编写程序,求s=1×2×3 +2×3×4 + + n ×(n+1)×(n+2)的值。n由程序输入。 2、分别计算1+2+3+.+n和1!+2!+3!+.+10! 三、实验步

17、骤1、数学中的累乘和累加都需要用循环完成,并且一般是循环次数已知的循环,用for语句及while语句都可以。2、在进行累加时,除了设置循环控制变量,还要设置一个存放累加和的变量;在进行累乘时,除了设置循环控制变量,还要设置一个存放乘积的变量;实验内容2中求阶乘相加,则综合了累乘和累加。3、在按钮的 click事件中输入代码4、运行程序,检查结果。实验七、练习do循环语句的使用一、实验目的1掌握dowhile|untile.loop与do.loopwhile|untile两种形式的使用。2掌握如何控制循环条件,防止死循环或不循环。二、实验内容计算的近似值,直到最后一项的绝对值小于10-4为止,的

18、计算公式为:/4=1-1/3+1/5-1/7+1/9-三、实验步骤1、首先可以肯定,此问题用dowhile|untile.loop语句实现比较方便 2、找出该数列中各项的变化规律,从近似公式看出:数列第n项的分母是第n-1项的分母加上2,第n项的分子是第n-1项的分子乘以-1,把数列中小于10-4之前的项累加起来,其和就是所求的的近似值。3、设用t存放当前项的值,初值为1;pi用来存放所求的累加和,初值为0;用n存放每项的分母;用s存放每项的分子。4、在按钮的 click事件中输入代码5、运行程序,检查结果。实验八、vb常用控件使用一、实验目的:1、掌握命令按钮、标签、文本框相关的属性、事件和

19、方法。 2、熟练掌握在窗体上创建上述控件的操作方法。3、掌握事件过程的代码编写。二、实验内容:1、计算长方形的表面积、长方体的体积2、连锁反应测试3、阴影文字三、实验步骤1、设置窗体的标题为“计算”。在窗体中添加4个文本框和3个命令按钮,文本框(txtl、txtw、txth)用于接收用户输入的长、宽、高。文本框(txtresult)用于显示计算结果,并不可编辑。命令按钮(cmdarea)的标题为“表面积”、命令按钮(cmdvol)的标题为“体积”、命令按钮(cmdclear)的标题为“重置”。设置并利用tab键,可在输入数据的3个文本框以及命令按钮之间进行焦点切换。文本框(txtresult)

20、不接受用户的输入。单击“表面积”按钮或“体积”按钮,在文本框(txtresult)中输出相应的计算结果。单击“重置”按钮,清除本文框中的数据,并将焦点置于第一个文本框中。2、设置窗体的标题为“连锁反应测试”。在窗体中添加2个命令按钮和2个文本框。文本框均限长度为20个字符,其中,文本框(txtshow1)的字体为楷体、五号字,红色,文本框(txtshow2)的字体为隶书、三号字、蓝色。命令按钮(cmdclear)的标题为“清除”,命令按钮(cmdexit)的标题“退出”。当在其中的一个文本框中输入内容,立刻在另一个文本框中显示相同的内容。单击“消除”按钮,清除两个文本框中的内容。单击“退出”按

21、钮,结束程序。3、设置窗体的标题为“阴影文字”。在窗体中添加1个标签,标签(lblshow)上的文字为隶书、蓝色、20号字。单击窗体,为文字添加阴影效果。双击窗体,取消阴影效果。提示:利用标签的top、left和backstyle属性制作阴影文字效果      实验九、练习列表框、组合框与滚动条的使用一、实验目的:通过本次实验,使学生熟悉常用控件的使用,能用按钮、文本框、标签、框架、列表框、时钟等常用控件,建立简单的应用程序,并实现一定的功能。二、实验内容:列表框、组合框、时钟等控件。三、实验步骤:1、列表框的应用设置窗体的标题为“数据编辑”。

22、在窗体中添加1个列表框(lstdata)和3个命令按钮。命令按钮(cmdadd)的标题为“增加”、命令按钮(cmddele)的标题为“删除”、命令按钮(cmdexit)的标题为“退出”。单击“增加”按钮,用inputbox输入添加的数据。当选中列表框中某一数据项时,“删除”按钮呈“可用”状态,单击“删除”按钮,弹出msgbox消息框,提示用户“是否要删除×××项?”,单击“是”,删除该数据项,单击“否”,取消删除操作。2、有如下图这样一个应用程序:在名为 cbochoose 的下拉组合框中任意选择一种机型,自动会在名为 lblshow 的标签上显示出来。程序代码如

23、下:窗体:十、练习多窗体的使用一、实验目的:1、了解多窗体程序与 mdi 程序之间的区别;2、掌握多窗体与 mdi 界面的编程方法。二、实验内容:1、新建工程,其中包含两个窗体form1和form2。在form1中通过两个按钮分别控制 form2 的显示与关闭2、建立含有一个子窗体的mdi程序 , 通过主窗体中提供的菜单实现子窗体的打开和关闭。3、为父窗体添加“窗口”菜单。4、在父窗体中建立“文件”菜单 , 每次选择其子菜单中的菜单项“新建”则创建并显示一个新的子窗体三、实验步骤1、从题目要求看 , 工程的启动对象应该为 forml 。调用窗体的show方法可以实现窗体的显示;另外,设置窗体的

24、 visible 属性为 true 也可以实现窗体显示。关闭窗体可以使用 unload 语句。设置窗体的 visible 属性为 false 或调用窗体的hide方法只能从屏幕上隐藏窗体,并未真正关闭窗体。2、mdi 程序中可以含有一个父窗体和多个子窗体。添加父窗体: 选择“工程”菜单中的“添加mdi窗体”。添加子窗体: 向工程添加普通窗体,然后将窗体的 mdichild 属性设置为 true。在父窗体、子窗体中均可以使用菜单及控件,但一般在父窗体中只使用菜单和一些不可见的控件。3、编辑菜单时在“菜单编辑器”中将菜单项的“显示窗口列表”属性选项选中,该菜单项即可作为“窗口” 菜单,程序运行时自

25、动在其子菜单中显示菜单项,这些菜单项与所有己打开的子窗体标题一一对应。调用父窗体的arrange方法可以设置所有己打开的子窗体的排列方式。该方法的参数取值可以是0-层叠式排列、 1- 水平方向平铺、 2-垂直方向平铺。4、程序参考代码以 forml 为模板新建一个子窗体 dim x as new forml x.show每一次新建的子窗体x的属性与 form1 完全相同且相互独立,对窗体 x 的修改不会再影响forml的属性。父窗体的activeform属性表示当前的活动子窗体。十一、数组操作一、实验目的:通过本次实验,使学生熟练掌握数组的使用方法,能够利用数组开发小的应用程序二、实验内容:建

26、立一个学生信息输入和查询的应用程序,学生的信息保存在一个二维数组中,根据学号或姓名进行查询,并在文本框中显示查询结果。三、实验步骤:1. 打开开始-程序- microsoft visual basic6.0中文版2. 在弹出窗口中,选择标准exe3设计如下界面4.编写代码option explicitdim arstu() as string '动态数组dim intnum as integer '存记录数private sub command3_click()if intnum = 0 then exit sub '若记录数为零,退出过程dim i as intege

27、r, j as integerdim strall as stringfor i = 1 to intnum 'i为数组第2维下标for j = 0 to 3 'j为数组第1维下标'以i为行,j为列,将数组元素存入变量strall = strall & arstu(j, i) & " "next jstrall = strall & vbcrlf '行尾加回车换行符next itext5.text = strall '在文本框显示end sub'"结束"按钮private sub c

28、ommand4_click()endend sub'"输入"按钮private sub command1_click()static i as integer '静态变量存记录数dim j as integerdim found as booleanfound = false'检查各文本框是否为空'若第(j)个文本框无内容,则利用相应标签的caption属性提示应输入哪一项内容if trim(text1.text) = "" thenmsgbox "请输入" & label1.caption,

29、vbinformation, " 提示"text1.setfocusexit subend ifif trim(text2.text) = "" thenmsgbox "请输入" & label2.caption, vbinformation, " 提示"text2.setfocusexit subend ifif trim(text3.text) = "" thenmsgbox "请输入" & label3.caption, vbinformation, &

30、quot; 提示"text3.setfocusexit subend ifif trim(text4.text) = "" thenmsgbox "请输入" & label4.caption, vbinformation, " 提示"text1.setfocusexit subend iffor j = 1 to iif arstu(0, j) = trim(text1.text) thenfound = trueelsefound = falseend ifnext jif not found then 若数组中没

31、有相同的学号,则将相关信息保存到数组中i = i + 1 '静态变量累加记录数redim preserve arstu(3, i) '根据记录数重新定义动态数组第二维上界'将各文本框的数据存入数组,同时清空文本框以备输入下一记录arstu(0, i) = trim(text1.text)text1.text = ""arstu(1, i) = trim(text2.text)text2.text = ""arstu(2, i) = trim(text3.text)text3.text = ""arstu(3,

32、i) = trim(text4.text)text4.text = ""intnum = i '保存记录数text1.setfocus '焦点返回学号文本框else<完成如果学号相同,要求用户做出选择是否覆盖,若要覆盖,则更改该学号的相关信息,若不覆盖,则不允许用户将该学号及相关信息输入到数组中的功能>end ifend sub'"查询"按钮private sub command2_click()if intnum = 0 then exit sub '若记录数为零,退出过程dim i as integer,

33、j as integerif trim(text1.text) <> "" then '若已输入学号,则按学号查找for i = 1 to intnum' 若找到,在查询结果文本框显示记录内容并退出本过程if arstu(0, i) = trim(text1.text) thentext5.text = arstu(0, i) & space(2) & arstu(1, i) & space(2) & arstu(2, i) & space(2) & arstu(3, i)exit sub '

34、;找到退出end ifnextelseif <完成若未输入学号,但输入了姓名,则按姓名查找功能>else '若学号、姓名均未输入msgbox "请先输入学号或姓名,再单击""查询""按钮。", vbinformation, " 提示"text1.setfocusexit subend if'若未找到msgbox "对不起,没有您要查询的学生。", vbinformation, " 查询结果"end sub5运行程序并调试结果。十二、练习子过程、函数

35、过程、参数传递的使用一、实验目的:了解过程与函数的主要区别;掌握通用过程和函数的创建方法;学习过程和函数的调用;二、实验内容由计算机自动产生 15 个 90999 之间的正整数 , 求出其中最大和最小值。用户界面 如图下图所示。三、实验步骤根据实验的要求,新建一个标准exe 工程,依次在窗体中添加 3 个命令按钮 command1command3、5 个标签 labelllabel5、1个框架 frame1、1 个文本框 text1, 将各控件调整到适当大小并放置到恰当的位置上 , 按照表下列属性进行设置。对象 属性 属性值forml caption 求最值commandl caption 生

36、成随机数command2 caption 求最值command3 caption 退出labell caption 求最大最小值label2 caption 最大值label3 caption 空label4 caption 最小值label5 caption 空framel caption 随机数textl text 空backcolor &h8000000f&multiline trueborderstyle none在本例中既使用了子过程也使用了函数过程 , 随机数的生成之所以采用 子过程 , 因为该过程的功能是将生成的随机数序列保存到指定的数组中 , 可以不需要返回值。

37、而求最大与最小是采用函数过程的原因是要直接调用它的返回值用于输出 , 同时 , 该函数内不包含任何特定显示输出的功能(若包含某些特定的显示功能 , 将限制了某些程序的调用),仅返回一个数列中的最大、最小值 , 可以被任何求最值的程序所调用,使函数过程更具有通用性。在设计过程中,应当将过程的功能设计更加单一,这样才能使过程更具有通用性。打开代码设计窗口 , 输入下列各个事件过程代码。dim s(15) as integer,i as integer, t as stringprivate sub commandl_click()call ins(s() ' 调用子过程 , 将随机数序列保

38、存到数组 s 中 t=""for i =l to 15t=t &s (i )& ? ? '将随机数序列保存到字符变量 t 中next itext1.text =t ' 显示随机数序列command2.enabled=true ' 置 " 求最值 " 按钮有效end subprivate sub ins (a()as integer)randomize ' 初始化随机数生成器for i=l to 15 ' 生成 15 个随机数a(i)=int(rnd*900+100) ' 将随机数限制在 lo

39、o999 之间next iend subprivate function max(a() as integer)dim t as inteqert=a (l)for i =2 to l5if t<a(i) then ' 找出随机数中的最大值t=a(i) ' 保存最大值end ifnext imax=t ' 返回最大值end functionprivate function min (a() as integer)dim t as integert=a (1)for i =2 to 15if t >a(i) then ' 找出随机数中的最小值t=a(i

40、) ' 保存最小值end if next i min=t ' 返回最小值end functionprivate sub command2_click()label3.caption =max(s() ' 输出最大值label5.caption =min(s() ' 输出最小值end subprivate sub command3_click()endend sub实验十三:练习鼠标事件和键盘事件的使用一、实验目的:1、掌握常用的鼠标操作事件,主要包括: click、dbclick、mousedown、mouseup、mousemove、dragdrop事件:拖放

41、事件,相当于mousedown、mousemove和mouseup的组合。 2、键盘操作事件: keydown、keyup、keypress事件。二、实验内容:编写口令程序,用文本框的password属性编写过口令程序,下面的口令程序是用keypress事件编写的。三、实验步骤1、当用户按下某个键时,在标签中显示出对应的字符,当放开按键时,消失。private sub form_keydown(keycode as integer, shift as integer)label1.caption = str(keycode) + "-" + chr(keycode)end

42、subprivate sub form_keyup(keycode as integer, shift as integer)label1.caption = ""end sub对于组合键,对多种可能的情况都要一一判断:private sub form_keydown(keycode as integer, shift as integer)select case shiftcase 0x$ = "按下"case 1x$ = "按下shift"case 2x$ = "按下ctrl"case 3x$ = "

43、按下shift、ctrl"case 4x$ = "按下alt"case 5x$ = "按下shift、alt"case 6x$ = "按下ctrl、alt"case 7x$ = "按下shift、ctrl、alt"end selectlabel1.caption = x + "-" + str(keycode) + "-" + chr(keycode)end subprivate sub form_keyup(keycode as integer, shift as integer)label1.caption = ""end sub2、在窗体上有两个图片框picture1、picture2。分别设置dragmode、dragicon属性。当拖动这两个图片框时,在窗体的dragdrop事件过程中作出响应。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论