VB程序设计课程设计实验报告.doc_第1页
VB程序设计课程设计实验报告.doc_第2页
VB程序设计课程设计实验报告.doc_第3页
VB程序设计课程设计实验报告.doc_第4页
VB程序设计课程设计实验报告.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第31页共31页福建农林大学计算机与信息学院(程序设计类课程)实验报告课程名称:visual basic程序设计教程姓 名:系:计算机与信息学院专 业:计算机应用技术年 级:05级学 号:指导教师:职 称:讲师2007年 6月 2 日实验项目列表序号实验项目名称成绩指导教师1visual basic环境和程序设计初步2顺序程序设计3选择结构程序设计4循环结构程序设计及数组的运用5过 程6窗体和常用控件(一)7常用控件(二)8循环结构程序设计及动态数组的应用9综合实例(一)10综合实例(二)系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 学号: 0 计算机号 67 实验时间: 2007、3、28 实验地点: 综南附307 指导教师签字: 实验一 visual basic环境和程序设计初步一、实验目的和要求1、 了解visual basic系统对计算机软件、硬件的要求。2、 掌握启动与退出visual basic的方法。3、 熟悉visual basic的集成开发环境(ide)。4、 掌握在窗体上添加控件的各种方法。5、 掌握建立、编辑、运行和保存一个简单的visual basic应用程序的全过程。二、实验内容和原理1、 熟悉工具箱上的标准控件以及窗体设计器和工程管理器窗口、属性窗口、代码窗口的功能、组成以及它们各种不同的打开方法。2、 在窗体上画一文本框个一个命令按钮,在文本框中显示“vb程序设计”,然后执行如下操作:(1) 编写适当事件过程,当单击命令按钮时,文本框内容消失。(2) 单击“文件”“生成工程”并退出。在windows环境下运行该工程。用户界面:31 实验代码:private sub command1_click()text1.text = end sub3、 创建一个“标准exe”类型的应用程序。要求:程序运行时在屏幕上显示“欢迎您的到来!”,并输入您的名字,当按回车键时弹出如下对话框:用户界面:代码:private sub text1_keypress(keyascii as integer)if keyascii = 13 then msgbox 欢迎 + text1.text + 的到来 end ifend sub4、 创建如图所示的应用程序,要求:单击“确定”按钮后,第一个文本框显示系统日期,第二个文本框显示星期。单击“退出”按钮则退出应用程序。用户界面:实验代码:private sub command1_click()dim num as integernum = weekday(now)text1.text = dateselect case num case 1 text2.text = 日case 2 text2.text = 一case 3 text2.text = 二case 4 text2.text = 三case 5 text2.text = 四case 6 text2.text = 五case 7 text2.text = 六end select end subprivate sub command2_click()endend sub三、总结通过本次实验熟悉了visual basic的集成开发环境(ide)。掌握在窗体上添加控件的各种方法。掌握建立、编辑、运行和保存一个简单的visual basic应用程序的全过程。系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、4、4 实验地点: 综南附307 指导教师签字: 黄红兵 实验二 顺序程序设计一、实验目的和要求1.掌握常用内部函数的使用2.掌握表达式赋值语句的正确书写规则3.掌握inpuebox和msgbox的使用二、实验内容和原理1.创建如图所示的应用程序,要求:单击窗体显示如图所示的图形。用户界面:实验代码:private sub form_click()dim i as integerdim j as integerfor i = 1 to 9 for j = 1 to i if i = 9 or j = 1 or i = j then print ; else print spc(2); end if next j print next iend sub2.创建如图所示的应用程序,要求:单击“放大”按钮后,将文本中显示的字符串放大-倍;若单击按钮“还原”按钮。则将文本框显示的字符串大小返原。用户界面:实验代码:dim x as integerdim y as integerprivate sub command1_click() y = text1.fontsize text1.fontsize = int(rnd * 2 + 2) * yend subprivate sub command2_click() text1.fontsize = yend sub3.创建如图的应用程序,要求:单击“确定”按钮后,弹出“是否继续”,若单击“是”,则文本框显示:“您按下的按钮是是”;若单击按钮“否”,则文本框显示:“您按下的是否”。单击“结束”,则退出应用程序。用户界面:实验代码:private sub command1_click() dim x as integer x = msgbox(是否继续?, 20, msgbox 信息显示窗口) if x = vbyes then text1.text = 您按下的按钮: + 是 else text1.text = 您按下的按钮: + 否 end ifend subprivate sub command2_click() endend sub三、总结通过本次实验掌握常用内部函数的使用,表达式赋值语句的正确书写规则以及inputbox和msgbox的使用系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、4、11 实验地点: 综南附307 指导教师签字: 黄红兵 实验三 选择结构程序设计一、实验目的和要求1、掌握if条件语句的使用。2、掌握情况语句的使用,以及情况语句与多分支条件语句的使用区别。二、实验内容和原理1、请编一程序用于在期未时根据学生总分情况给予奖励,条件如下:四门总分不低于360(含360分),特等奖;四门总分320分(含320分)360分(不含360分),优秀奖;单科成绩不低于95分,特别奖。用户界面:实验代码:private sub command1_click()dim t1 as integer, t2 as integer, t3 as integer, t4 as integer, sum as integerif isnumeric(text1.text) and isnumeric(text2.text) and isnumeric(text3.text) and isnumeric(text4.text) then t1 = val(text1.text) t2 = val(text2.text) t3 = val(text3.text) t4 = val(text4.text) sum = t1 + t2 + t3 + t4 label3.caption = sum if (sum = 360) then msgbox 您获得了特等奖, 64, 获奖通知 elseif (sum = 320) and (sum = 95) and (t2 = 95) and (t3 = 95) and (t4 = 95) then msgbox 您获得了特别奖, 64, 获奖通知 else msgbox 您要努力了!, 64, 通知 end if else msgbox 请输入数字, 48 text1.text = text2.text = text3.text = text4.text = text1.setfocusend ifend subprivate sub form_activate() text1.text = text2.text = text3.text = text4.text = text1.setfocusend sub2. 输入x,y,z三个数,按从小到大的次序显示出来,要求:程序中不得使用循环结构和转向语句;掌握两个数交换的方法程序界面:实验代码:dim x as double, y as double , z as double , t as doubleprivate sub text1_keypress(keyascii as integer) if keyascii = 13 then x = val(trim(text1.text) text2.setfocus end if text4.text = xend subprivate sub text2_keypress(keyascii as integer) if keyascii = 13 then y = val(trim(text2.text) if x y then t = x x = y y = t end if text3.setfocus end if text4.text = x text5.text = y end subprivate sub text3_keypress(keyascii as integer) if keyascii = 13 then z = val(trim(text3.text) if z = x then text5.text = z text6.text = y elseif z x then text4.text = z text5.text = x text6.text = y else text6.text = z end if end if end sub315页简易计算器:然后输入代码,代码如下所示:private sub command1_click() dim a as double, b as double dim operator as string a = val(text1.text) operator = trim(text2.text) b = val(text3.text)select case operator case + text4.text = a + b case - text4.text = a - b case * text4.text = a * b case / if b = 0 then msgbox (分母出错为零,出错) else text4.text = a / b end if case else msgbox (运算符出错,请重新输入!)end selectend subprivate sub form_activate() text1.text = text2.text = text3.text = text4.text = text1.setfocusend sub三、总结通过本次实验掌握if条件语句的使用,情况语句的使用以及情况语句与多分支条件语句的使用。系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、4、18 实验地点: 综南附307 指导教师签字: 黄红兵 实验四 循环结构程序设计及数组的运用一、实验目的和要求1、 掌握for语句的使用。2、 掌握do语句的各种形式的使用。3、 掌握如何控循环条件,防止死循环或不循环。4、 掌握数组的声明以及数组元素的使用差别。5、 掌握静态数组和动态数组的使用差别。6、 应用数组解决与数组有关的常用算法问题。二、实验内容和原理1、 编程计算1-2+3-4+5-6+n的值,其中n由文本框输入,要求掌握for语句的正确使用。用户界面:private sub text1_keypress(keyascii as integer)dim n as integer, i as integer, s as integers = 0if keyascii = 13 then n = val(trim(text1.text) for i = 1 to n if i mod 2 = 0 then s = s - i else s = s + i end if next label1.caption = 1-2+3-4+. + str(n) + = + str(s)end ifend sub2随机产生10个110的正整数(包括1,10),求最大值、最小值和平均值,并显示整个数组的值。用户界面:实验代码:option base 1private sub form_click() dim a(10) as integer dim i as integer, max as integer, min as integer dim sum as integer randomize for i = 1 to 10 a(i) = int(rnd * 10) + 1 print spc(3); a(i); next i max = a(1) min = a(1) for i = 2 to 10 if max a(i) then max = a(i) end if if a(i) min then min = a(i) end if sum = sum + a(i) next text1.text = max text2.text = min text3.text = sum / 10end sub4.在窗体上显示给定行的杨辉三角形。用户界面:private sub command1_click()fontsize = 22fontbold = truedim i%, j%, n as integerdim a() as integern = val(text1.text)redim a(n, n) as integer 将定义为nn的数组 for i = 1 to n 给第一列和主对角线上的元素赋值1 a(i, i) = 1 a(i, 1) = 1 next i for i = 3 to n for j = 2 to n - 1 a(i, j) = a(i - 1, j - 1) + a(i - 1, j) 计算除第一列和主对角线上之外元素的值 next j next i for i = 1 to n rem print tab(30 - i * 3); 定位每一行第一个元素输出位置 for j = 1 to i print a(i, j); if a(i, j) 10 then 打印格式的设置 print space(3); else print space(2); end if next j print next iend sub三、总结通过本次实验掌握循环语句的使用,数组的声明以及数组元素的使用。掌握了静态数组和动态数组的使用差别。系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、4、25 实验地点: 综南附307 指导教师签字: 黄红兵 实验五 过程一、实验目的和要求1、 掌握自定义函数过程和子过程的定义和调用方法。2、 掌握形参和实参的对应关系。3、 掌握值传递和地址传递的传递方式。4、 掌握递归的概念和使用方法。二、实验内容和原理1. 编程计算1+x+x2+xn的子过程和函数过程,并分别调用。要求:其中x和n的值由用户给定。用户界面: 实验代码:option explicitprivate x as integer, n as integerprivate function f(n, x) as double dim i as integer, sum as double for i = 0 to n sum = sum + x i next i f = sumend functionprivate sub form_click()label1.caption = 1+ & x & + & x & & 2 & + & x & & n & =text1.text = f(n, x)end subprivate sub form_load()x = cint(inputbox(请输入底数x)n = cint(inputbox(请输入指数n)form_click end sub2. 编写函数s(m as integer,n as integer )as long ,此函数返回m+mm+mmm+mmm(n个m)的值。用户界面: 实验代码:option explicitprivate sub form_load()dim m as integer, n as integern = inputbox(请输入个数n)m = inputbox(请输入m)label1.caption = m & + & (m * 10 + m) & +.+ & m & . & m & =text1.text = s(m, n)end subfunction s(m as integer, n as integer) as longdim i as integer, k as long, sum as longk = msum = 0for i = 1 to n sum = sum + k k = k * 10 + mnext is = sumend function3用递归函数求和12+3+n,其中n的值由用户输入private function fac(n as integer) as long if n = 1 then fac = 1 else fac = n + fac(n - 1) end ifend function4 用(pi)/6=1/1+1/2+1/3+1/n近似公式pi的值.当1/n= 10 -5s = s + 1 / n 2n = n + 1loops = s * 6pi = str(sqr(s)print pi; = + piend sub三、总结通过本次实验掌握了自定义函数过程和子过程的定义和调用方法,掌握值传递和地址传递的传递方式以及递归的概念和使用方法。系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、5、9 实验地点: 综南附307 指导教师签字: 黄红兵 实验六 窗体和常用控件(一)一、实验目的和要求掌握窗体与常用控件的重要属性、事件和方法。二、实验内容和原理1、在窗体上建立3个文本框和一个命令按钮。程序运行后,单击命令按钮,在第一个文本框中显示由command1_click事件过程设定的内容,同时在第二、第三个文本框中分别用大写字母和小写字母显示第一个文本框中的内容。用户界面: 实验代码:option explicitprivate sub command1_click()text1.text = text command imagetext2.text = ucase(text1.text)text3.text = lcase(text1.text)end sub3. 设计一个界面程序,要求程序能实现界面上所指示的编辑操作和字体设置功能。用户界面:实验代码:option explicitprivate sub check1_click(index as integer) if check1(0).value = vbchecked then text1.fontname = 黑体 else text1.fontname = 宋体 end if if check1(1).value = vbchecked then text1.fontitalic = true else text1.fontitalic = false end if if check1(2).value = vbchecked then text1.fontunderline = true else text1.fontunderline = false end ifend subprivate sub option1_click(index as integer)dim k as stringk = text1.textif option1(0).value then clipboard.clear clipboard.settext kend ifif option1(1).value then clipboard.clear clipboard.settext k text1.text = end ifif option1(2).value then text1.text = text1 + clipboard.gettextend ifend sub2、设计一个界面程序,要求程序运行时选中组合框中的某一项,将弹出如下对话框加以说明。用户界面:实验代码:option explicitprivate sub combo1_click()dim exp1 as stringexp1 = 我的兴趣爱好是 + combo1.textmsgbox exp1, , 兴趣爱好end subprivate sub form_load()combo1.additem 音乐combo1.additem 美术combo1.additem 体育combo1.additem 上网combo1.additem 旅游end sub3、在窗体上画一个名称为his的水平滚动条和三个名称分别为c1,c2,c3,标题分别为“左端”、居中、右端的命令按钮。请编写适当的事件过程,使得在运行后,如果单击“左端”,命令时则滚动框位于滚动条最左端处;如果单击“右端”则滚动框位于滚动条最右端处;如果单击“居中”则滚动框位于滚动条中间处用户界面:实验代码:option explicitprivate sub command1_click() hscroll1.value = 0end subprivate sub command2_click() hscroll1.value = 50end subprivate sub command3_click() hscroll1.value = 100end sub三、总结通过本次实验掌握了窗体与常用控件的重要属性、事件和方法。系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、5、16 实验地点: 综南附307 指导教师签字: 黄红兵 实验七 常用控件(二)一、实验目的和要求掌握常用控件的重要属性、事件和方法二、实验内容和原理 1.在窗体上画一个图片框和两个命令按钮。程序运行后,如果单击“显示图片”命令按钮,则在图片框装入一个用图形编辑软件画的简单图形。单击“清除图片”命令按钮,则清除图片框的图形。用户界面:实验代码:option explicitprivate sub command1_click()image1.picture = loadpicture(d:picturebentley arnage 3.jpg)end subprivate sub command2_click()image1.picture = loadpicture()end sub2. 在窗体上画4个图像框和一个文本框,在每个图像框中装入一个箭头图形,分为4个不同的方向,把文本框的multiline属性设置为true。编写程序,当单击某个图像框时,在文本框中显示相应的信息。用户界面:实验代码:option explicitprivate sub form_load() image1.picture = loadpicture(d:picture1.bmp) image2.picture = loadpicture(d:picture2.bmp) image3.picture = loadpicture(d:picture3.bmp) image4.picture = loadpicture(d:picture4.bmp)end subprivate sub image1_click() text1.text = 单击向左箭头end subprivate sub image2_click() text1.text = 单击向右箭头end subprivate sub image3_click() text1.text = 单击向下箭头end subprivate sub image4_click() text1.text = 单击向上箭头end sub3. 编写一个模拟秒表操作的程序,运行时的界面,程序运行后,单击“启动”按钮,该按钮变灰,在上面的标签中显示开始时间。过一会儿,单击停止按钮,该按钮变灰,同时“启动”按钮可用,并在中间标签中显示当前时间,在下面的标签中显示经过的时间。用户界面: 实验代码:option explicitprivate sub command1_click()label4.caption = nowcommand1.enabled = falsecommand2.enabled = truetimer1.enabled = truelabel5.caption = label6.caption = timer1_timerend subprivate sub command2_click()label5.caption = nowcommand2.enabled = falsecommand1.enabled = truetimer1.enabled = falseend subprivate sub timer1_timer() static count as long label6.caption = count & 秒 count = count + 1end sub4. 设计一个简易面板,在窗体上画一个图片框、一个命令按钮和一组单选按钮。用户界面:实验代码:option explicitdim flag as booleandim px as integer, py as integerprivate sub command1_click()picture1.clsend subprivate sub form_load() flag = falseend subprivate sub picture1_mousedown(button as integer, shift as integer, x as single, y as single)if option1(0).value = true then 画直线 if button = 1 then flag = true px = x py = y end ifelseif option1(1).value = true then 画矩形 if button = 1 then flag = true px = x py = y end ifelseif option1(2) = true then 画圆 if button = 1 then flag = true px = x py = y end ifelseif option1(3) = true then 画椭圆 if button = 1 then flag = true px = x py = y end ifend ifend subprivate sub picture1_mouseup(button as integer, shift as integer, x as single, y as single) dim r as single dim rate as single randomize if round(rnd) = 1 then rate = int(5 * rnd) else rate = 1 / int(5 * rnd + 1) end ifif option1(0).value = true then 画直线 if flag = true then picture1.line (px, py)-(x, y) end ifelseif option1(1).value = true then 画矩形 if flag = true then picture1.line (px, py)-(x, y), , b end ifelseif option1(2) = true then 画圆 if flag = true then r = sqr(x - px) 2 + (y - py) 2) picture1.circle (px, py), r end ifelseif option1(3).value = true then 画椭圆 if flag = true then r = sqr(x - px) 2 + (y - py) 2) picture1.circle (px, py), r, , , , rate end ifend ifend sub三、总结通过本次实验熟练掌握了常用控件的重要属性、事件和方法。系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、5、23 实验地点: 综南附307 指导教师签字: 黄红兵 实验八 循环结构程序设计及动态数组的应用一、实验目的和要求1.熟练掌握动态数组的使用。2.进一步提高编程技巧。二、实验内容和原理1.声明一个二维动态数组a(1 to n,1 to n)代表一个n*n的方阵。编程给数组元素赋值,使之成为如图所示的螺旋方阵。要求:n由文本框输入。用户界面: 实验代码:option base 1private sub command1_click()dim a() as integer, a1%, a2%, a3%, a4%, m%, n%, i%, j%n = val(trim(text1.text)redim a(n, n)k = fix(n / 2)m = 1for i = 1 to k 矩阵圈数 for a1 = i to n - i 左边部分 a(a1, i) = m m = m + 1 next a1 for a2 = i to n - i 下面部分 a(a1, a2) = m m = m + 1 next a2 for a3 = n - i + 1 to i + 1 step -1 右面部分 a(a3, a2) = m m = m + 1 next a3 for a4 = n - i + 1 to i + 1 step -1 上面部分 a(a3, a4) = m m = m + 1 next a4next iif n mod 2 = 1 then 如果n为奇数 a(n + 1) / 2, (n + 1) / 2) = n * n end if for i = 1 to n 输出螺旋方阵 for j = 1 to n if a(i, j) 10 then print space$(1); a(i, j); else print a(i, j); end if next j print next iend subprivate sub command2_click()form1.clstext1.text = text1.setfocusend sub三、总结通过本次实验熟练掌握了动态数组的使用,.进一步提高了用动态数组解决相关问题的能力。系: 计算机与信息学院 专业: 计算机应用技术 年级: 05级 姓名: 洪景泉 学号: 051893067 计算机号 67 实验时间: 2007、5、30 实验地点: 综南附307 指导教师签字: 黄红兵 实验九 综合实例(一)一、实验目的和要求进一步提高编程技巧。二、实验内容和原理1.编写一个简单的计算器。要求:能实现简单的基本运算,以及实现八进制、十六进制的转换。用户界面:实验代码:dim op1, op2 as singledim firstinput as booleandim opflag, lastinput, disp as stringprivate sub clea_click()disp = format(0, 0)op1 = 0:op2 = 0firstinput = truelastinout = text1.text = end subprivate sub form_load() text1.text = 0 firstinput = truedisp = forma

温馨提示

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

评论

0/150

提交评论