资源描述
学院专业(班级)姓名学号任课教师目录实验一 Visual Basic编程环境和控件1实验二 窗体及基本控件使用6实验三 顺序结构程序设计13实验四 选择结构程序设计19实验五 选择结构程序设计(续)24实验六 循环结构程序设计30实验七 循环结构程序设计(续)34实验八 常用控件38实验九 常用控件(续)45实验十 数组50实验十一 数组(续)56实验十二 顺序文件60实验十三 过程67实验十四 过程(续)72实验十五 菜单及通用对话框77实验十六 随机文件(选作)80附录:VB统考编程题(精选)83期末自测题(A卷)92期末自测题(B卷)97 实验报告的整理与编写上机实验结束后,编写实验报告是软件工程的要求,也是培养科学作风的重要途径,实验报告的主要内容包括:(1)实验目的 实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题,从而进一步提高分析问题和解决问题的能力。因此,当我们着手做一个实验的时候,必须明确实验的目的,以保证达到课程所指定的基本要求。在写实验报告时,要进一步确认是否达到了预期的目的。 (2)实验内容 实验的目的是要通过解决一些具体问题来达到的。在书中,每一部分都安排了多个实验题目,根据教学安排、进度、实验条件、可提供的机时、学生的基础等因素,可以选择其中的几个或全部。因此,在实验报告中,实验内容是指本次实验中实际完成的内容。在每一个实验题目中,一般都提出一些具体要求,其中有些具体要求是为了达到实验目的而提出的,不仅有具体的实验题目,还应包括具体要求。 (3)程序设计说明 包括算法设计思路,必要的流程图,界面设计说明、使用模块及变量的说明等。 (4)源程序代码Visual Basic的源程序包括界面设计和代码。程序设计的产品是程序,它应与算法或流程图相一致,要与用户界面设计一致。程序要有具有易读性,符合结构化原则。 (5)程序的运行结果(包括对不同测试数据的运行结果) 程序运行结果一般是输出语句所输出的结果。对于不同的输入,其输出的结果是不同的。因此,在输出结果之前一般还应注明输入的数据,以便对输出结果进行分析和比较。在程序的运行中,还必须用各种不同情况的数据进行调试,以检查程序能否正常运行。因为,有时程序对某些情况是可以正常运行的,而对某些特殊情况的数据可能会出现运行出错或死机,通过各种数据的调试,尽量做到程序不会出问题。(6) 实验体会分析和体会实验中碰到的问题及解决方法,这是实验报告中最重要的一项,也是最容易忽视的一项。实验过程中大量的工作是程序调试,在调试过程中会遇到各种各样的问题,每解决一个问题就能积累一点经验,提高自己的编程能力。因此,对实验的总结,最主要的是程序调试经验的总结。调试分析也包括对结果的分析。体会主要是指通过本次实验是否达到了实验目的,有哪些基本概念得到了澄清,碰到了那些以前没有见到的问题,最后采用什么方法得到解决等。 104实验日期 年 月 日实验一 Visual Basic编程环境和控件一、实验目的1、掌握启动与退出Visual Basic的方法。2、掌握Visual Basic语言程序的开发环境.3、掌握Visual Basic语言程序设计的方法与特点4、掌握建立、编辑、运行和保存一个简单的Visual Basic应用程序的全过程。二、实验内容申请一个免费邮箱(如果已经有邮箱,请跳过),以便以后将每星期编制的程序压缩并存放在邮箱中(或者保存在U盘中),以便复习时用。1. 创建第一个应用程序。编写一个简单程序,实现单击命令按钮时在文本框显示“单击命令按钮”,单击窗体空白处时在文本框显示“单击窗体”。 保存窗体文件名:SY1_1.frm,保存工程名:SY1_1.vbp。程序界面如图1 1.所示。 图1.1 实验1的运行界面【步骤】 启动Visual Basic6.0,在弹出的“新建工程”对话框中选择“标准EXE”。 在窗体上建立一个文本框和一个命令按钮。建立方法:在左边工具箱上,单击要绘制的控件的按钮,再把鼠标移到窗体,按住鼠标左键画出所需大小的框体。或者是双击工具箱的要绘制的控件的按钮。 分别选中命令按钮和文本框,在属性窗口中对各属性进行设置,属性设置参照表:表1.1 实验1属性设置对象名称属性属性值窗体Caption我的第一个程序文本框Text(空)命令按钮Caption命令按钮 双击命令按钮,进入代码窗口中命令按钮的默认事件,编写代码如下:Private Sub Command1_Click()Text1.Text = 单击命令按钮End Sub 双击窗体的空白处,进入代码窗口中窗体的默认事件(Form_Load(),在右边的过程列表框中选择Click,编写代码如下:Private Sub Form_Click()Text1.Text = 单击窗体End Sub 单击工具栏上的按钮,运行程序,分别单击命令按钮以及窗体空白处,观察文本框上显示的内容有何变化。如果程序代码有错误,则进入代码窗口中调试程序。 单击工具栏上的按钮,结束程序运行。 单击工具栏上的 按钮,将窗体、工程分别以SY1_1.frm、SY1_1.vbp保存在磁盘上。2. 建立一个应用程序, 界面如图1.2所示,窗体包含有一个文本框和三个按钮,要求文本框中的字体为14号黑体加粗,颜色为红色,且文本内容居中显示。编写代码实现: 图1.2 实验2 的运行界面1)按“显示内容”按钮时,文本框显示“Hello,Visual Basic!”;2)按“清屏”按钮时,文本框中文字消失;3)按“结束”按钮后,程序结束。(提示:代码中输入End,则可结束应用程序运行)保存窗体文件名:SY1_2.frm,保存工程名:SY1_2.vbp。表1.2 实验2属性设置对象名称属性属性值窗体Form1Caption文本框Text1TextAlignmentFontForeColor命令按钮Command1Caption显示内容命令按钮Command2Caption清屏命令按钮Command3Caption结束编写代码如下:代码遇到的主要问题及分析:3、P260 实验A 。二、3.编写一程序,在文字框中统计在该窗口上鼠标单击的次数。设计和运行界面如图1.3所示。完成后自己取名保存。 图1.3 实验3 设计界面 运行界面编写代码如下:代码遇到的主要问题及分析:【提高题】 P259 实验A 。二、1. 编写一程序,要求在屏幕上显示“欢迎学习Visual Basci”,并在“请输入你的姓名”标签后的文本框Text1中输入姓名;单击“你输入的姓名是”按钮,则在Label3标签上显示在文本框Text1中输入的姓名。窗体如图1.4所示。Label3将BorderStyle属性设置为1Command1Text1Label2Label1调整控件的大小使内容显示为两行 图1.4 提高题 的运行界面编写代码如下:代码遇到的主要问题及分析:【选作题】窗体上有两个名称分别为C1, C2的命令按扭,一个文本框Text1。命令按钮的标题及文本框上显示的字符自定。编程实现当按下C1时,将C2的标题与Text1中的内容交换。要求:1)界面自己设计 2)连续多次单击C1,都能将C2的标题与Text1中的内容交换。设计的界面如下:编写代码如下:代码遇到的主要问题及分析:实验心得体会成绩:教师签名:实验日期 年 月 日实验二 窗体及基本控件使用一、实验目的1、复习启动与退出Visual Basic的方法。2、掌握窗体基本的事件、方法和属性,并学会在不同的事件的过程中,编写代码。3、掌握文本框和标签两种控件的使用,掌握文本框和标签控件的常用属性、事件和方法。以及它们之间的区别。4、掌握命令按钮控件的常用属性、事件和方法。二、实验内容1、设计一个程序(如图2.1所示),用窗体模拟黑板,窗体上没有最大化、最小化按钮;鼠标单击窗体时窗体上输出提问,双击时显示回答。分析:把窗体装扮成黑板模样,要设置窗体的BackColor属性为黑色,ForeColor属性为白色(模拟粉笔字的颜色)。窗体上没有最大化、最小化按钮,则需要设置窗体的MaxButton、MinButton属性。而单击、双击时的输出显示,可以在Click、DblClick事件里用Print和Cls方法来实现。(a)设计状态(b)运行状态(c)窗体单击(d)窗体双击图2.1 实验2.1模拟黑板1) 属性设置表2.1 实验1属性设置对象名称属性属性值窗体Form1BackColorForeColoFontMaxButtonMinButtonvbBlackVbwhiteFalseFalse2)代码编写代码遇到的主要问题及分析:Private Sub Form_Load()Form1.Caption = 模拟黑板End SubPrivate Sub Form_Click()ClsPrint 1+1=?End SubPrivate Sub Form_DblClick()ClsPrint 1+1=2End Sub 【思考】如果进一步要求随机出题(简单的数学四则运算题)在窗体上输出并显示答案,该怎么做Private Sub Form_Click()Dim a As Integer, b As Integera = Int(Rnd * 10)b = Int(Rnd * 10)Print a; +; b; =; a + b 减法等同理End Sub2、窗体上有一个文本框Text1,要求当鼠标划过文本框Text1时,鼠标显示Cross“”形状;窗体上的一个标题为“复制”的命令按钮C1。通过属性窗口实现以上的设置之后,编程实现:1)程序启动时窗体标题为“修改文本框内容”;2)单击命令按钮C1,则把按钮上的标题复制到文本框,并使按钮不可见;3)单击窗体空白处,按钮可见但不可用。 必要属性设置表2.2 实验2属性设置对象名称属性属性值Text1mousepointer2-crossC1caption复制 代码编写代码遇到的主要问题及分析:Private Sub Form_Load()Form1.caption= “修改文本框内容”End SubPrivate Sub C1_Click()Text1 = C1.CaptionC1.Visible = FalseEnd SubPrivate Sub Form_Click()C1.Visible = TrueC1.Enabled = FalseEnd Sub3、窗体上有四个文本框,两个标题分别为“显示选中信息”“选中文本”的命令按钮。要求程序运行时,光标焦点在Text1上,按下Tab键后,光标焦点跳到在Text3上。在文本框Text1中输入一些字符;要求编程实现: 图2.2 实验2.3文本信息选定窗体1)在文本框Text1中输入一行文字并按回车(Enter)后,把Text1的内容设置为窗体的标题。2)在Text1中选中其中一部分内容后,单击“显示选中信息”命令按钮,则把在Text1中被选中文本的第一个字符的顺序号,被选中文本的字符个数,被选中的文本内容分别显示在文本框Text2,Text3,Text4中。3)分别在文本框Text2,Text3中输入你所希望文本框Tex1中选中文本信息的顺序号以及长度,单击“选中文本”命令按钮,则根据文本框Text2,Text3输入的内容,在Text1中选中对应的内容,同时在Text4中显示出来。【提示】部分相关属性和事件:SelStart、SelLength、SelText、KeyPress 必要的属性设置表2.3 实验3属性设置对象名称属性属性值Text1text“”Text2text“”Text3text“”Text4text“”Command1caption显示选中信息Command2caption选中文本Text1tabindex0Text3tabindex1或者Text2tabstopfalse 代码编写代码遇到的主要问题及分析:Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then Form1.Caption = Text1End SubPrivate Sub Command1_Click()Text2 = Text1.SelStartText3 = Text1.SelLengthText4 = Text1.SelTextEnd SubPrivate Sub Command2_Click()Text1.SelStart = Text2Text1.SelLength = Text3Text4 = Text1.SelTextEnd Sub或者 Private Sub Text1_LostFocus()Text3.SetFocusEnd Sub【提高题1】创建VB工程,运行时可将文本框中的文字缩小以及还原。窗体中包括下列控件:标签、文本框和两个命令按钮,窗体标题为“字符缩小”,文本框字号为30磅。 图2.3 实验提高1窗体在文本框输入一串字符;按下“缩小”按钮时字号缩小为原来的一半(每按一下都会缩小为一半),界面如右图。请完善以下代码:Private Sub Form_Load() Text1.FontSize = 30 设置文本框原始字号End SubPrivate Sub Command1_Click() Text1.FontSize = _ Text1.FontSize / 2_ 将文本框字体每次缩小一半End SubPrivate Sub Command2_Click() _ Text1.FontSize = 30_ 文本框的字体恢复为30End Sub【提高题2】 P260 实验A 。二、5. 命令按钮、字号、内容和格式的复制练习!效果如右图。要求:1)Command1:使得Text1中的字体和字号根据 图2.4实验实验提高1窗体命令按钮上显示的要求改变。2)Command2:要求将Text1选中的内容及其字体格式复制到Text2文本框中。 代码编写代码遇到的主要问题及分析:Private Sub Command1_Click()Text1.FontName = 隶书Text1.FontSize = 25End SubPrivate Sub Command2_Click()Text2 = Text1.SelTextText2.FontName = Text1.FontNameText2.FontSize = Text1.FontSizeEnd Sub【选作题】参考P35,建立一个允许剪切、复制和粘贴的简单便笺板程序。可增加内容:利用MouseMove事件决定命令按钮的有效性, 即当选中内容,“剪切”、“复制”按钮有效,否则无效。图2.5 窗体原始界面 按下运行按钮时的界面 选中文本框部分内容的界面 代码编写代码遇到的主要问题及分析:Private Sub Form_Load()Command1.Enabled = FalseCommand2.Enabled = FalseEnd SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If Text1.SelText Then Command1.Enabled =trueCommand2.Enabled =trueEnd IfEnd Sub其他代码见p36实验心得体会成绩:教师签名: 实验日期 年 月 日实验三 顺序结构程序设计实验目的:1熟练掌握VB的基本数据类型。2熟练掌握基本的输入输出函数和语句。3掌握顺序结构程序设计的方法。实验内容1、定义两个变量a和b,它们的值分别由键盘输入。编程计算并输出a与b的和、差、积、商、a除以b的余数、a b的值。(要求自己设计窗体及输入、输出,必须有明确的示意提示)。 代码编写:代码遇到的主要问题及分析:Private Sub Form_Click()Dim a as integer,b as integera = Val(InputBox(输入a的值)b = Val(InputBox(输入b的值)Print a=; a; b=; bPrint a+b=; a + bPrint a-b=; a - bPrint a*b=; a * bPrint a mod b=; a Mod bEnd Sub2、定义一个变量a,由键盘输入其值为任意四位整数,编程实现分别输出个、十、百、千位四个数字,并各个数字的平方和。【提示】利用mod和运算符将每一位分离。 代码编写:代码遇到的主要问题及分析:Private Sub Form_Click()Dim a As IntegerDim b%, c%, d%, e%a = Val(InputBox(输入a的值,要求4位整数)b = a Mod 10 个位c = a 1000 千位d = (a - c * 1000) 100 百位e = (a - c * 1000 - d * 100) 10Print 个位:; bPrint 十位:; ePrint 百位:; dPrint 千位:; cPrint 平方和:; b 2 + e 2 + d 2 + c 2End Sub3、P262 实验B 二、1。 代码编写:代码遇到的主要问题及分析:Private Sub Command2_Click()Text1 = Format(9 / 5 * Val(Text2) + 32, 0)End Sub4、设计窗体并实现:1)单击“连接”,将Text1和Text2的内容连接起来显示在Text3;2)单击“求和”,求出Text1和Text2之和显示在Text3 ;3)要求:在单击“连接”之前Text3不可见,点“连接”之后“连接”按钮不可用;(a) 设计状态 (b) 运行状态图3.1 实验3.4窗体 代码编写:代码遇到的主要问题及分析:Private Sub Command1_Click()Text3.Visible = TrueText3 = Text1 & Text2Command1.Enabled = FalseEnd SubPrivate Sub Command2_Click()Text3 = Val(Text1) + Val(Text2)End SubPrivate Sub Form_Load()Text3.Visible = FalseEnd Sub5、创建VB工程,界面如右所示,编程实现运行时可将标签中的文字字号随机放大(15整数倍)和(任意比例)缩小以及还原(原来字号)。界面如右图所示。【提示】 图3.2 实验3.5窗体1)将标签的AotuSize属性设置为False及True,看看有什么区别?2)用一个变量在程序开始运行时记住标签中原始字体的大小(想想放在什么事件过程中?);这个变量还会在“还原”按键中使用,其说明语句要放在通用-声明中;3)每次按放大或缩小按键都会在当前的基础上放大或缩小;4)字体放大到一定程度会出现“溢出”的错误提示,可以先不管。 代码编写:代码遇到的主要问题及分析:Dim tPrivate Sub Form_Load()t = Label1.FontSizeEnd SubPrivate Sub Command1_Click()Label1.FontSize = Label1.FontSize * Int(Rnd * 5 + 1)End SubPrivate Sub Command2_Click()Label1.FontSize = Label1.FontSize * RndEnd SubPrivate Sub Command3_Click()Label1.FontSize = tEnd Sub6、编程实现随机产生一个“F”“S”范围内的大写字母,并输出该字母及其对应的ASCII码值,同时输出其小写字母及其对应的ASCII码的值。 代码编写:代码遇到的主要问题及分析:Private Sub Form_Click()a = Int(Rnd * (83 - 70 + 1) + 70)Print Chr(a); 的ASCII值=; aPrint LCase(Chr(a); 的ASCII值=; Asc(LCase(Chr(a)End Sub【选作题1】编程解决古代数学问题“鸡兔同笼”。即已知在同一个笼子里有总数为m只鸡和兔,鸡和兔的总脚数为n只,求鸡和兔各有多少只?【提示】鸡和兔的总数m、鸡和兔的总脚数n需要预先输入(文本框或输入框输入)。再设鸡和兔子的个数分别为x和y,通过已知输入的m和n;列出方程求解,分别用m,n两个已知量来表示x和y。 代码编写:代码遇到的主要问题及分析:Private Sub Form_Click()m = Val(Text1)n = Val(Text2)y = 1 / 2 * n - mx = 2 * m - 1 / 2 * nPrint 鸡有; x; 兔子有; yEnd Sub【选作题2】编程实现电话号码自动升位。要求将原来任意一个带区号的7位电话号码升到8位,在电话号码最前面加8。程序运行结果如图所示。(要求必须适用于3位或4位区号的电话号码)【提示】无论区号或电话号码是多少位,只要找到“-”的位置,就可以将“-”之前(包括“-”)的左子串、“8”、以及“-”后面剩下的字符串 “串”起来。 代码编写:代码遇到的主要问题及分析:Private Sub Form_Click()a = InStr(Text1, -)Text2 = Left(Text1, a) + 8 + Mid(Text1, a + 1)End Sub【提高题】参考教材P33的例2.5及P65的例4.2,完成P263实验B 二、2。 代码编写:代码遇到的主要问题及分析:Const PI = 3.14Private Sub Command1_Click()r = Val(Text1)Text2 = Format(PI * r 2, 0.00)End SubPrivate Sub Command2_Click()r = Val(Text1)Text3 = Format(2 * PI * r, 0.00)End SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1) ThenMsgBox 输入有非数字字符,请重新输入 Text1 = Text1.SetFocusEnd IfEnd Sub实验心得体会教师签名: 成绩:实验日期 年 月 日实验四 选择结构程序设计实验目的:2掌握逻辑表达式的正确书写形式。3掌握单分支与双分支条件语句的使用。实验内容1编写程序,通过键盘输入变量x的值,求函数y的值。 代码遇到的主要问题及分析:Private Sub Command1_Click()x = Val(Text1)If x = 0 Theny = Sqr(x)Elsey = 1 / Abs(x)End IfText2 = yEnd Sub 2、输入一串字符串C,判断字符串C中的第三个字符是“C”时,利用msgbox显示“yes”,否则显示“No”.代码遇到的主要问题及分析:Private Sub Command1_Click()Dim C As StringC = Text1If Mid(C, 3, 1) = c ThenMsgBox (yes)Else: MsgBox (no)End IfEnd Sub 3、输入一个年份,判断它是否为闰年,并输出是否为闰年的相关信息。【提示】判断闰年的条件是:年份能被4整除但不能被100整除;或者是能被400整除。如:1900、2100、2010年不是闰年;2008、2000年是闰年。代码遇到的主要问题及分析:Private Sub Form_Click()Dim a As Integera = Text1If a Mod 400 = 0 Or a Mod 4 = 0 And a Mod 100 0 Then MsgBox (本年份为闰年)Else MsgBox (此年份为非闰年)End IfEnd Sub4. 如右图,窗体上有两个文本框一个标签和一个命令按钮。程序运行时分别在文本框中输入两个数字后单击命令按钮进行计算。要求:Text1中的数值大于或等于Text2时,计算两个数的和,否则计算两个数的差,最后将运算式和结果显示在标签中。代码遇到的主要问题及分析:Private Sub Command1_Click()x = Val(Text1)y = Val(Text2)If x = y Then Label1 = x & + & y & = & x + yElse Label1 = x & - & y & = & x - yEnd IfEnd Sub【进一步要求】对两个文本框中的数据进行有效性判断。利用文本框的LostFocus事件进行判断,若输入的不是数字,用MsgBox给出“是否重新输入”的提示,提示窗口上有两个命令按钮:“是”和“否”,显示问号的图标。若回答“是”则将文本框中原来的内容清空、光标重新定位于文本框,若回答“否”则程序终止。 代码编写:代码遇到的主要问题及分析:Private Sub Text1_LostFocus()If Not IsNumeric(Text1) Theni = MsgBox(是否重新输入, 4 + vbQuestion, 警告)If i = 6 ThenText1 = Text1.SetFocusElseEndEnd IfEnd IfEnd SubPrivate Sub Text2_LostFocus()If Not IsNumeric(Text2) Theni = MsgBox(是否重新输入, 4 + vbQuestion, 警告)If i = 6 ThenText2 = Text2.SetFocusElseEndEnd IfEnd IfEnd Sub5、猜数字游戏:事先设定的一个数字(如6),程序提示用户输入一个110之间的整数,如果输入的数字与事先设置的数字相同,则提示“输入正确”,否则显示“错了”。 代码编写:代码遇到的主要问题及分析:Private Sub Command1_Click()x = Val(InputBox(输入一个110之间的整数)If x = Text1 Then MsgBox 输入正确Else MsgBox 错了End IfEnd Sub 【提高题1】修改上面程序,当输入的值比设置的数字小,显示“错了,你猜得小了。”;输入的值比设置的大,则显示“错了,你输入的太大了。”(请直接在上题修改)【提示】本实验属于多分支结构。Private Sub Command1_Click()x = Val(InputBox(输入一个110之间的整数)If x = Text1 Then MsgBox 输入正确ElseIf x c And b + c a And a + c b Then Print 此三边可构成三角形Else Print 此三边不可构成三角形End IfEnd Sub【选作题】课堂示例“字符串替换”,使用多个函数完成时,如果源字符串中没有要查找的子串,程序就会出错。修改程序当没有要查找的子串时,弹出“没有找到的”提示框,并将源串放到结果文本框中。 【提示】InStr(C1,C2) 在C1中查找C2是否存在,若找不到,结果为0。 代码编写:代码遇到的主要问题及分析:Private Sub Command1_Click()i = InStr(Text1, Text2)If i = 0 Then MsgBox 没有找到 Label5 = Text1Else k = i + Len(Text2) Ls = Left(Text1, i - 1) Label5 = Ls + Text3 + Mid(Text1, k)End IfEnd Sub 实验心得体会教师签名: 成绩:实验日期 年 月 日实验五 选择结构程序设计(续)实验目的:1掌握情况语句的使用。2. 掌握情况语句与多分支条件语句的区别。3掌握分支嵌套语句的使用。实验内容1、输入一元二次方程ax2+bx+c=0系数a,b,c的值,计算并输出一元二次方程的两个根x1和x2。【提示】求根时要对三个数分别考虑重根和无实根情况的处理。 代码编写: 代码遇到的主要问题及分析:Private Sub Command1_Click()Dim a%, b%, c%, d%, x1!, x2!a = Val(InputBox(输入a)b = Val(InputBox(输入b)c = Val(InputBox(输入c)d = b * b - 4 * a * cIf d 0 Then x1 = (-b + Sqr(d) / (2 * a) x2 = (-b - Sqr(d) / (2 * a)ElseIf d = 0 Then x1 = -b / (2 * a) x2 = x1Else MsgBox 无实根End IfPrint x1=; x1, x2=; x2End Sub2、输入一个字符,判断该字符是字母、数字还是其他字符,并作相应的显示。【要求】分别使用两种语句If ElseIf和Select Case 来完成。代码遇到的主要问题及分析:If ElseIf语句实现Private Sub Command2_Click()a = InputBox(输入一个字符)If a = a And a = A And a = 0 And a = 9 Then MsgBox a + 是数字Else MsgBox a + 是其他字符End IfEnd SubSelect Case语句实现Private Sub Command1_Click()a = InputBox(输入一个字符)Select Case a Case a To z, A To Z MsgBox a + 是字母 Case 0 To 9 MsgBox a + 是数字 Case Else MsgBox a + 是其他字符End SelectEnd Sub思考:编写一个对文本框中输入的字符进行转换的程序。窗体如上右图所示。将小写字母转换成大写字母,大写字母转换成小写字母,空格不转换,其余字符转换成”*”。要求每输入一个字符马上 进行判断和转换,结果显示在Text2中。 代码编写: 代码遇到的主要问题及分析:Private Sub Text1_Change()a = Right(Text1, 1)Select Case a Case a To z Text2 = Text2 + UCase(a) Case A To Z Text2 = Text2 + LCase(a) Case Text2 = Text2 + Case Else Text2 = Text2 + *End SelectEnd Sub3、输入一个数字(1-7),用英文显示对应的星期一至星期日。【提示】用Select Case语句来实现 代码编写: 代码遇到的主要问题及分析:Private Sub Command1_Click()a = Val(InputBox(输入星期几)Select Case a Case 1 MsgBox Monday Case 2 MsgBox Tuesday Case 3 MsgBox Wednesday Case 4 MsgBox Thursday Case 5 MsgBox Friday Case 6 MsgBox Saturday Case 7 MsgBox Sunday Case Else MsgBox 输入错误End SelectEnd Sub4、编程实现简单计算器功能。要求程序运行后,分别输入两个操作数以及运算符(+、-、*、/)后,单击“计算”按钮,则自动计算出表达式的结果,并显示在运算结果对应的文本框中。【提示】除数为0时要做适当处理。 代码编写: 代码遇到的主要问题及分析:Private Sub Command1_Click()Select Case Text2 Case + Text4 = Text1 + Text3 Case - Text4 = Text1 - Text3 Case * Text4 = Text1 * Text3 Case / If Text3 = 0 Then MsgBox 除数不能为0 Else Text4 = Text1 / Text3 End If Case Else MsgBox 输入错误End SelectEnd Sub5、密码登录程序。要求:建立一个登录窗口,要求输入帐号和密码。设定密码为“Basic1234”;若密码正确,显示“祝贺你,成功登录!”;若密码不正确,显示“对不起,密码错误,无法登录!”,并统计出错次数,当输入超过3次时,则退出系统。【要求】帐号为6位数字,如果输入的不是数字或不足6位,则给出相应提示并要求重新输入(利用LostFocus事件及IsNumeri等函数);密码输入时应显示为“*”。【提示】该题用分支嵌套来完成。 代码编写: 代码遇到的主要问题及分析:Dim I As Integer 全局变量Private Sub Form_Load() Text1.Text = Text2.Text = Text2.PasswordChar = * I = 0 全局变量付初值End SubPrivate Sub Text1_LostFocus() If Not IsNumeric(Text1.Text) Then MsgBox 账号必须为数字, , 警告 连续两个逗号(,)缺省按钮数目,仅有确定按钮 Text1.Text = Text1.SetFocus End If If Len(Text1) 6 Then MsgBox 密码是6位数字, , 警告 Text1.Text = Text1.SetFocus End IfEnd SubPrivate Sub Command1_Click() If Text2.Text = Basic1234 Then MsgBox (祝贺你,成功登录!) Else MsgBox (对不起,密码错误,无法登录!) I = I + 1 If I = 3 Then End End If End Sub参考p65例4.26、在上周实验【提高题】的基础上完成,输入三角形的三条边,根据边长判断是否能构成三角形的程序,若能构成,则进一步判断三角形类型(等边、等腰、直角、一般)。【提示】该题用分支嵌套来完成。注:请在上周程序代码的适当位置用红笔来添加代码实现。Private Sub Command1_Click() Dim a!, b!, c!a = Val(InputBox(输入第1条边长)b = Val(InputBox(输入第2条边长)c = Val(InputBox(输入第3条边长)If a + b c And b + c a And a + c b Then If a = b And b = c Then MsgBox 等边 ElseIf a = b Or b = c Or a = c Then MsgBox 等腰 ElseIf a 2 = b 2 + c 2 Or b 2 = a 2 + c 2 Or c 2 = a 2 + b 2 Then MsgBox 直角三角形 Else MsgBox 一般三角形 End IfElse MsgBox 此三边不可构成三角形End IfEnd Sub【选做题】开始运行如左下图所示,单击“出题”按钮后计算机自动出题,窗口如右下图所示,此时由用户输入加法运算答案,然后单击“判定”按钮。如果用户运算正确则提示“答对了,你真聪明!”,否则显示“错了,努力啊!”。再次按下“出题”就会再出一道题。【提示】计算机自动出题,显示的题目应该是随机的,所以这里必须使用随机函数Rnd,其值为 0,1)间的随机数,如果要得到区间 L,U 中的随机整数,应使用表达式 Int(U-L+1)*Rnd+L) 。命令按钮Command1每次按下时其Caption属性会发生变化,从“出题”变成“判定”,又从“判定”变成“出题”。当它是“出题”时,按下就会随机出题;当它是“判定”时,按下就会对用户输入的答案判断对错。【思考】多次执行这个程序,是否发现每次出的题目是一样的?如何解决?【进一步修改程序】使得该工程只可执行10次,每执行一次,判断用户输入的答案是否正确,正确则得10分,错误则不给分。执行10次后,可给出总得分,然后关闭该窗体。 代码编写: 代码遇到的主要问题及分析:Dim i As BooleanPrivate Sub Command1_Click()If i = True Then Text1 = Int(100 * Rnd + 1) 产生1,100之间的随机整数 Text2 = Int(100 * Rnd + 1) 产生1,100之间的随机整数 Command1.Caption = 判定 i = FalseElse If Text3 = Val(Text1) + Val(Text2) Then MsgBox 答对了,你真聪明! Else MsgBox 错了,努力啊! End If i = True Command1.Caption = 出题End IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()i = TrueCommand1.Caption = 出题Randomize 多次执行这个程序,每次出的题目不一样End Sub【进一步修改程序】Dim i As BooleanDim a%, b%Private Sub Command1_Click()If a 10 ThenIf i = True Then Text1 = Int(100 * Rnd + 1) 产生1,100之间的随机整数 Text2 = Int(100 * Rnd + 1) 产生1,100之间的随机整数 Command1.Caption = 判定 i = FalseElse If Text3 = Val(Text1) + Val(Text2) Then MsgBox 答对了,你真聪明! b = b + 1 统计答对的题数 Else MsgBox 错了,努力啊! End If a = a + 1 i = True Command1.Caption = 出题End IfEnd IfIf a = 10 ThenMsgBox 答对了 & bEndEnd IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()i = TrueCommand1.Caption = 出题Randomize 多次执行这个程序,每次出的题目不一样a = 0b = 0End Sub实验心得体会教师签名:
展开阅读全文