收藏 分销(赏)

VB第一部分试验参考指导书.doc

上传人:精**** 文档编号:2517493 上传时间:2024-05-31 格式:DOC 页数:38 大小:1.50MB 下载积分:12 金币
下载 相关 举报
VB第一部分试验参考指导书.doc_第1页
第1页 / 共38页
VB第一部分试验参考指导书.doc_第2页
第2页 / 共38页


点击查看更多>>
资源描述
试验一 Visual Basic集成开发环境和程序设计初步 试验目标: 1、 了解Visual Basic系统对计算机软、硬件要求。 2、 掌握开启和退出Visual Basic方法。 3、 了解Visual Basic集成环境组成,各部分作用。 4、 掌握建立、编辑和运行一个简单Visual Basic应用程序全过程。 5、 掌握常见控件(文本框、标签、命令按钮)应用。 6、 感性认识控件(对象)、过程、事件、属性等概念,初步认识窗体、控件、属性、过程在程序设计中作用和关系。 试验内容: 建立一个“标准exe”类型应用程序,要求单击“确定”按钮,在屏幕上显示“您好,世界!”,单击“退出”按钮,退出应用程序。界面图1-1所表示,以sy1.frm、sy1.vbp和sy1.exe文件保留到自己软盘上。 图1-1 试验准备: 1. 复习相关知识:1) VB集成化开发环境  2) 建立VB应用程序 2.正确写出两事件代码,列出各控件所需属性(属性项目和属性值)。 试验步骤: 1.Visual Basic 6.0汉字版开启和退出。 开启: 1)单击“开始”按钮,然后选择“程序”中“Microsoft Visual Basic 6.0汉字版”,单击即可。 或:单击桌面上“Microsoft Visual Basic 6.0汉字版”图标, 2)新建工程对话框,单击打开“标准exe”按钮,进入环境。 退出: 1) 单击集成环境窗口右上角关闭按钮。 2) 单击“文件”下拉菜单中“退出”选项。 2.界面设计: (1)添加标签Label1。    (2)添加命令按钮Command1。 (3)添加命令按钮Command2。 (4)使用格式菜单,使用两命令按钮尺寸完全一样,并恰好处于窗体中间位置。 3.设置界面对象属性: 能够经过用鼠标右键单击某一窗体或控件,在弹出菜单中为其设置属性,也能够隶属性窗口对象列表框中选择要设置属性对象。 1)设置Form窗体Caption属性为“Hello,World!” 2)设置Command1按钮Caption属性为“确定”,名称属性为“OK”. 3)设置Command2按钮Caption属性为“退出”,名称属性为“Cancel”。 4)设置Label1标签Caption属性为空,Font属性对话框中字体为隶书,字体式样为粗体,大小为二号。 4.编写代码: 在Form(窗体)窗口中双击鼠标左键或单击视图菜单中代码窗口菜单项,进入代码窗口。用鼠标单击第一个列表框右边下拉箭头,从弹出下拉列表框中选择OK,然后在第二个列表框中选择Click事件,这时代码窗口出现了程序代码过程头和过程尾。 1)在OK_Click事件中输入下面代码: Label1.Caption=“您好,世界” 2)在Cancel_Click事件中输入下面代码: Unload Me 5.保留文件: 1)选择文件菜单中工程另存为保留工程文件SY1.vbp 2)选择文件菜单中Form另存为保留窗体文件SY1.frm 6.程序运行: 1)在运行菜单中选择开启菜单项。或:单击工具栏中开启按钮。 2)单击确定按钮。 3)单击退出按钮。 若程序不能正常运行,应用运行菜单中结束菜单项,终止程序运行,然后检验属性设置和程序代码是否有误,直到正常运行为止。程序正常运行后,应再一次存盘保留工程文件。 7、 编译应用程序: 选择文件菜单中生成firstapp.exe菜单项,出现生成工程对话框输入文件名SY.exe,单击确定按钮,生成应用程序。 试验二 次序程序设计 试验目标: 1、 掌握表示式,赋值语句正确书写规则。 2、 掌握常见函数使用。 3、 掌握InputBox和MsgBox使用。 试验内容: 1.编一个华氏温度和摄氏温度之间转换程序,运行界面图2-1所表示。要使用转换公式是: F=9C/5+32 ‘摄氏温度转化为华氏温度,F为华氏 C=(F-32)5/9 ‘华氏温度转化为摄氏温度,C为摄氏 要求用按钮实现转换。即单击“华氏转”按钮,则将摄氏温度转化为华氏温度。一样,单击“摄氏转”按钮,则将华氏温度转化为摄氏温度。 图 2-1 [试验目标] 掌握简单程序编写、输入数据方法、不一样数据类型转换。 [提醒和分析] 1)上述公式中右边变量F、C应该是有值,该值可经过Text1、Text2分别赋 值取得,然后经过公式计算得到转换结果。也能够不使用变量F、C,直接使用Text1、Text2进行计算。 2)Text文本框存放String类型,为了程序正常运行,应经过Val()函数将字符串转换为数值类型。 3)本题关键是将文本框内容怎样代到转换公式中。 2.使用Move方法移动标签,参见图2-2所表示。 3.使用Print方法,输出图2-3所表示图形。 图2-2 4. 输入半径,计算圆周长和圆面积。 深入要求,为了确保程序运行正确,对输入半径要进行正当性检验,若发觉输入数中有非法数字,利用MsgBox显示犯错信息,利用SetFocus方法定在犯错文本框处,重新输入。 图2-3 5. 利用计算机处理古代数学问题“鸡兔同笼问题”。即已知在同一笼子里有总数为m只鸡和兔,鸡和兔总脚数为n只,求鸡和兔各有多少只? [试验目标] 掌握InputBox函数、MsgBox过程使用;利用计算机解初等数学题;为了确保有正确解,提前使用If语句。 [提醒和分析] 1)m,n经过InputBox()函数取得;鸡、兔只数经过已知m,n列出方程可解,但不要求出荒唐解(比如3.5只鸡、4.5只兔,或求得只数为负数),若出现荒唐解,要求显示相关信息,并重新输入。 2)设x为鸡只数,y为兔子只数;已知总头数m和脚数n,则 x + y = m 2x + 4y = n 得 y = n / 2 –m x = m – y 从公式推得:当总脚数是偶数而且脚数在二至四倍头数之间(2m<n<4m)时,才可有正确解。判定一个数是否是偶数,只要经过判定Mod 2是否为0即可。二条件在程序中表示为:n mod 2 = 0 和 n > 2*m and n < 4*m . 3) 算例:头数取1、1、2、20时脚数对应取4、2、6、100 试验三 选择结构程序设计 试验目标: 1、 掌握逻辑表示式正确书写形式。 2、 掌握单分支和双分支条件语句使用。 3、 掌握多分支条件语句使用。 4、 掌握情况语句使用及和多分支语句区分。 试验内容: 1.在购置某物品时,若所花钱x在下述范围内,所付钱y按对应折扣支付: x x < 1000 0.9x 1000 ≤ x < y = 0.8x ≤ x < 3000 0.7x x ≥ 3000 [提醒和分析] 1)此例用多分支if语句实现,注意计算公式和条件表示式正确书写。 2)多个条件,可有两种表示, 方法一:从小到大或从大到小依次一一表示; 方法二:不管次序,将条件区间列出。 2.某市公用电话收费标准以下:通话时间在3分钟以下,收费0.50元;3分钟以上,则每超出1分钟加收0.15元;在7:00—19:00之间通话者,按上述收费标准全价收费;在其它时间通话者,一律按收费标准半价收费。试计算某人在T时间通话S分钟,应缴多少电话费。运行界面图3-1所表示。 图3-1 [试验目标] 1)利用前面学过选择结构,学会用计算机处理时间问题能力。 2)时间函数、子字符串函数、格式函数综合使用。 [提醒] 1)时间能够经过文本框输入;也能够经过Time时间函数求适当初通话时间。但要经过Cdate函数将字符串类型转换成日期类型,为(2)中计算通话时间做准备。比如:date1 = CDate(Text1.Text):date2 = CDate(Text2.Text) 2)通话时间能够经过DateDiff()函数将两个时间以秒为间隔形式相减。也能够利用Hour、Minute和Second分别取小时、分和秒,然后化成以秒为单位再相减。 比如:st = DateDiff("s", date1, date2) / 60 3)为了简化程序,以开始通话时间为是否享受半价收费记费方法。 试验四 循环结构程序设计 试验目标: 1、 掌握For语句使用。 2、 掌握Do语句多种形式使用。 3、 掌握怎样控制循环条件,预防死循环或不循环。 试验内容: 1、 编一个程序,显示出全部水仙花数。所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。比如,153是水仙花数,因为153=13+53+33。 [提醒和分析] 解该题方法有两种: 1)利用三重循环,将三个数连接成一个3位数进行判定。 比如,将1—9连接成一个位数,程序段以下: s=0 For i=1 To 9 s=s * 10 + i Next I 2)利用单循环将一个3位数逐位分离后进行判定。 比如,将一个9位数,从右边开始逐位分离,程序段以下: s= Do While s > 0 s1=s Mod 10 s=s \ 10 Print s1; ‘从右边开始显示分离出每一位 Loop 2、 递推法:猴子吃桃子。猴子在一天摘了若干个桃子,当日吃掉二分之一多一个;第二天接着吃剩下桃子二分之一多一个;以后天天全部吃尚存桃子二分之一另一个,到第七天早上要吃时只剩下一个了,问猴子那天共摘了多少个桃子? [分析] 这是一个“递推”问题,先从最终一天推出倒数第二天桃子,再从倒数第二天桃子推出倒数第三天桃子…… 设第n天桃子为Xn ,那么它是前一天桃子数Xn-1 二分之一减一。 即:Xn = 0.5 Xn-1 –1 也就是:Xn-1 = (Xn + 1 )×2 已知:当n=7第7天桃子数为1,则第6天桃子数由公式得4个,依次类推,可求得第一天桃子数。 3、 有一根长度为321m钢材料,要将它截取成两种规格短料,规格a、b 长度分别为17m和27m,每种最少1段,分割成a、b各多少段后,剩下残料r最少? [分析] 该题利用二重循环求残料r最小值正数,因为残料不可能是负数,不然和实 际情况不符。 试验五 数据结构---数组 试验目标 1. 掌握数组申明、数组元素引用。 2. 掌握静态数组和动态数组使用差异。 3. 应用数组处理和数组相关常见算法。 试验内容 1.输入一串字符,统计各字母出现次数(大小写字母不区分),并对出现字母显示其出现个数,效果图5-1所表示。 图5-1 [分析] 1)统计26个字母出现个数,必需申明一个含有26个元素数组,每个元素下标表示对应字母,元素值表示对应字母出现次数。 2)从输入字符串中逐一取出字符,转换成大写字符(使得大小写不区分),进行判定。比如:c = UCase(Mid(Text1, I, 1)) 2.要求输入若干同学成绩,计算平均分和高于平均分人数,并将这两项放在该数组最终。参见图5-2所表示。 图5-2 试验六 常见控件 试验目标: 1、 掌握常见控件关键属性、事件和方法。 2、 掌握常见ActiveX控件特征,熟练应用这些高级控件进行编程。 3、 初步掌握创建基于图形用户界面应用程序过程。 4、 熟练掌握键盘事件、鼠标事件及其事件过程编写技艺。 5、 掌握一般拖放和OLE拖放原理,掌握实现拖放方法。 试验内容: 1.编写一个运行界面图6-1所表示程序。用户能从“饭店菜单”把选定“菜”添加到下面列表框中。 要求:“饭店菜单”列表框支持多项选择 [提醒]                   图6-1 假定“饭店菜单”和“我点菜”列表框名称分别为List1和List2。因为需要在List1中能够进行多项选择,所以MultiSelect属性应设为1或2,而且在“添加”事件过程中不能简单地用List2.AddItem List1.Text语句添加项目。应编写以下程序: Sub Command1_Click() For i=0 To List1.ListCount-1 If List1.Selected(i) Then List2.Addltem List1.List(i) End If Next End Sub 2.设计一个运行界面图6-2所表示字幕滚动程序。要求用时钟控件和滚动条调整和控制字幕滚动速度,文字大小及距离窗体顶端距离是随机,从右向左连续滚动。             [试验目标]                    图6-2 掌握滚动条、时钟使用原理。 [提醒和分析] 1)FontSize属性不能为0,所以用Int (1+Rnd * 30) 产生一个1—30数作为字体 2)字幕“Windows XP汉字世界……”是标签(Label1)标题,用Move方法实现滚动,经过改变移动步长控制移动速度。每次移动高度是随机,用Int(Rnd * ScaleHeight)表示式决定;字体大小也是随机,由Int(1 + Rnd * 30)决定。 3.编写一个运行界面图6-3所表示点菜程序。用户能从“饮料”和“主食”列表框中选择食品,然后拖动到“我中饭”列表框中。 要求;用拖动方法实现。 图6-3 [提醒和分析] 1)当源对象被拖动时,源对象作为Source参数传入事件过程中,Source代表源对象,经过Source.Name属性能够确定被拖动是哪个列表框。在目标列表框DragDrop事件过程中,将源列表框中选定项目添加到目标列表框中,然后删除。 2)“饮料”和“主食”列表框只能用Drag方法手工开启拖操作,不能使用自动拖放模式。因为假如设置自动拖放模式,拖动对象是整个列表框,无法选定其中项目。在“我中饭”列表框DragDrop过程中经过Source参数可能知道源控件是哪一个列表框,Source.Name属性指示源控件名称。 试验七 界面设计 试验目标: 1、 学会使用对话框进行编程。 2、 掌握窗口菜单、弹出式菜单和实时菜单设计方法。 3、 掌握工具栏、图象列表框控件使用。 4、 掌握状态栏控件使用。 5、 掌握RichTextBox控件使用。 6、 综合应用所学知识,编制含有可视化界面应用程序。 试验内容: 1.设计一个运行界面图7-1所表示应用程序。当选择“改变标签标题颜色”按纽后,弹出颜色对话框,为标签标题选择一个颜色;当选择“编辑文本文件”按钮后,弹出打开文件对话框,选择一个文本文件后调用记事本程序编辑该文件。 图7-1 [试验目标] 掌握通用对话框使用方法和使用Shell函数运行程序方法 [提醒和分析] 1)尽管程序中用到了颜色和打开文件两个对话框,不过实际上只需一个通用对话框控件CommonDialog。 2)能够使用Shell函数运行记事本程序。注意在记事本程序名和所选一个文件名之间要有一个空格符。 3)需要经过“工程1部件”命令选择Microsoft Common Dialog Control 6.0选项,将CommonDialog控件添加到工具箱。 4)要使通用对话框能弹出颜色对话框,使用ShowColor方法,比如:CommonDialog1.ShowColor. 颜色对话框经过Color属性返回所选择颜色,将其值给予标签ForeColor属性即可改变标签前景颜色。比如:Label1.ForeColor=CommonDialog1.ShowColor 5)对于同一通用对话框,要使其能显示成文件打开对话框形式,可在另一事件中使用ShowOpen方法。通用对话框FileName属性提供所选择文件名,将记事本程序名(包含目录路径名)和所选择文件名组成一个字符串,作为Shell函数参数即可经过记事本程序打开所选择文件。在结构字符串时记事本程序名notepad.exe和所选择一个文本文件名之间必需要有一个空格符。 比如:i=Shell(“C:\Winnt\notepad.exe ”& CommonDialog1.FileName,1) 2. 在窗体上放置一个文本框,设置它Multiline属性为True.设计一个含有2个主菜单项菜单系统,分别为“菜单1”和“菜单2”。其中,“菜单1”包含“清除”、“结束”两个菜单命令。“菜单2”包含“12号字体”、“16号字体”、“粗体”、“斜体”4个菜单命令,图7-2和图7-3所表示。为菜单项编写相关程序代码: 图7-2 图7-3 “清除”命令:清除文本框中所显示内容。 “12号字体”或“16号字体”命令:把文本框汉字本字体大小设置为12或6磅。 “粗体”或“斜体”命令:在菜单项左边加上或取消标识“√”,控制文本框中文本字型改变。 窗体上“菜单2”显示是否和文本框中有元内容相关,当清除文本框中内容时,隐藏“菜单2”,当文本框中输入信息后,显示“菜单2”。另外可经过鼠标右键弹出“菜单2”。 [试验目标] 掌握窗体菜单制作;掌握在程序中改变窗体菜单属性方法;掌握动态改变菜单项方法和掌握弹出菜单制作和显示方法。 [提醒和分析] 1)在菜单项左边加上或取消标识“√”可使用代码: 菜单项名.Checked=Not菜单项名.Checked 2) 文本框内文本粗体字控制可使用代码: Text1.FontBold= 菜单项名.Checked或Text1.FontBold=Not Text1.FontBold 斜体字控制可类似地使用FontItalic属性。 3) 利用菜单2Visible属性控制菜单显示和隐藏。在文本框Chang事件进行设置。 4)建立一个有菜单功效文本编辑器大致可分成以下三个步骤. 步骤一: 建立控件 本例中只要在窗体上放置一个文本框(设置滚动、多行属性)和一个通用对话框. 步骤二: 设计菜单 打开菜单编辑器,按要求对每一个菜单项输入标题、名称和选择对应快捷键. 步骤三: 对菜单建立好以后,对对应Click事件编程. 5)在程序中改变菜单项Checked、Enabled属性常见方法; 菜单项名.Checked=Not菜单项名.Checked 菜单项名.Enabled=Not菜单项名.Enabled 6)动态改变菜单项最简便方法是改变菜单项Visible属性.当Text1 内容发生改变时触发Text1_Change事件。 7) 弹出菜单制作和一般菜单相同,程序运行时使用Popupmenu方法显示弹出菜单。 3.在试验2“菜单1”子菜单“清除”前添加一个“查找”菜单命令。并和“清除”菜单命令之间有一条分隔线,单击“查找”菜单命令,显示图7-4所表示查找对话框,当在文本框内输入内容时,可在主窗体文本框内查找指定内容。 图7-4 [试验目标] 掌握窗体菜单编辑修改;掌握创建自定义对话框方法;掌握多冲窗体使用,窗体间数据传输方法。 [提醒和分析] 1)创建自定义对话框能够从新窗体着手,通常来说,用户通常不需要对它进行移动、改变尺寸、最大化或最小化等操作。经过设置BorderStyle、ControlBox、MaxButton和MinButton属性,可使对话框大小固定,删除窗体“控件”菜单框、“最大化”按钮和“最小化”按钮这些项目。 2)窗体之间数据传输可经过在类模块文件中申明全局变量完成,也能够直接使用控件。若使用控件前加窗体名前缀。本例经过控件传输数据。 3)使用InStr函数能够判定字符串1是否包含字符串2内容,及所在位置。经过文本框SelLength属性可用负像显示查到字符。为了能查找出多个相同字符,在InStr函数中使用参数指示查找起始位置。因为该参数受到上次搜索影响,需要将其申明为静态类型变量。 4.在试验3基础上按菜单功效添加工具栏,在窗体下方加入有2个窗格状态栏,第1个窗格在按下Shift、Ctrl和Alt键时显示对应键名,第2个窗格显示时钟。 [试验目标] 掌握窗体菜单工具拦制作;掌握响应ToolBar控件事件方法;掌握状态栏制作和程序运行时控件方法。 [提醒和分析] 1) 建立窗体工具栏和状态栏,必需要经过Microsoft Windows Common Controls 6.0选项将控件添加到工具箱。在 建立窗体工具栏和状态栏,必需要经过Microsoft Windows Common Control 6.0选项将控件添加到工具栏。在ImageList控键图象,建立ToolBar控件和IMageList控件连接,在ToolBar控件中添加按钮。 2)“菜单1”所提供功效各自独立,按钮样式采取一般按钮。“菜单2”中字号大小设置只许可选择其中一项,故按钮样式需采取编组按钮或菜单按钮。本例采取菜单按钮设置字号。字体形式在选择后能保持按钮按下状态,可采取开关按钮样式。为便于编程,对每个按钮设置标识名。 3)对菜单按钮在Toolbar_ButtonMenuClick事件使用“Select Case ButtonMenu.Key”调用对应菜单事件过程,响应所做选择。其它类型按钮在Toolbar1_ButtonClick事件中使用“Select Case Button.Key”语句响应所做选择。 4)使用KeyDown或KeyUp事件判定对键盘操作。KeyDown事件提供keycode和shift两个参数,keycode参数为所按键键代码,shift参数是响应Shift键、Ctrl键和Alt键状态一个整数,分别对应于值1、2和4。当这些键组合在一起时,shift返回它们组合值。比如,同时按下Ctrl和Alt这两个键,则shift值为6。 5)StatusBar控件是由Panels集合组成。能够把Panels集合看做数组,每个窗格Panels对象是Panels一个元素。能够经过Text、Picture和Width属性改变任何Panels对象文本、图象或宽度。要在窗格内显示所按键名,使用StatusBar1.Panels(1).Text属性。 试验八 文件 试验目标: 1、 文件系统控件使用。 2、 文件和目录操作语句和函数使用。 3、 掌握次序文件、随机文件及二进制文件特点和使用。 4、 掌握文件打开、关闭和读写操作。 5、 学会文件在应用程序使用。 试验内容: 1.建立一个文本浏览器。窗体上放置驱动器列表框、目录框、文件列表框和两个文本框,图8-1所表示。 要求: (1)文件列表框能过滤文本文件。 (2)当单击某文本文件名后,在Text1显示文件名(包含路径),在Text2显示该文件内容; (3)当双击某文件名后,调用记事本程序对文本文件进行编辑。 图8-1 [试验目标] 掌握文件系统控件使用、文本文件内容读取和显示、应用程序调用和对应文档读取。 [提醒和分析] 1)第(2)小题利用次序文件读写语句,将磁盘上文件读入,并在文本框显示。 2)第(3)小题调用Shell函数,实施记事本可实施程序,并带有文本文件为参数。 3)文件系统控件关联只要两个事件;文本文件通常经过Line Input语句读取较安全、方便,但显示时要加入回车、换行符;应用程序调用利用Shell函数,同时要将对应文档打开,二者之间必需加空格。 2.建立一个含有3个学生三项内容文本文件,内容中分别为姓名、专业、年纪,前二项字符串,后一项整形。单击“建立”按钮,分别利用:    Print # 文件号,[输出列表]    Write #文件号,[输出列表] 两种格式同时建立两个文件,文件名分别为c:\t1。txt和c:\t2.。txt(打开两个文件,以不一样文件号区分)。单击“显示”按钮,从磁盘以行读方法分别读人刚建立两个文件,并分别在两个文本框显示,比较之间区分。运行结果图8-2所表示。 [试验目标] 图8-2 掌握次序文件建立,读取,Print、Write语句使用和区分。 3.Print方法和Print语句比较。在窗体上显示图8-3所表示图形,并将该图形同时以文本文件A:\Tu. Txt写到磁盘上,经过文本编辑器显示建立文件。 [试验目标] 掌握Print方法和Print语句使用 和区分,掌握有规律字母生成。 [分析] 图8-3 该题较简单,Print方法在循环控制结构中已介绍,作用结果显示在窗体或图形框上;Print语句处理相同,仅输出到磁盘上。 试验九  图形技术 试验目标: 1、了解Visusl Basic图形功效。 2、掌握建立图形坐标系方法。 3、掌握Visusl Basic图形控件和图形方法。 4、掌握常见几何图形绘制。 5、掌握简单动画设计方法。 6、掌握实现图形漫游方法。 试验内容: 1.绘制图9-1所表示图形(不包含尺寸)。 图9-1 2.在Form1建立一个坐标系。X轴正向向右,Y轴正向向上,原点在窗体中央。在坐标系上用Line方法绘制-2π—2π之间正弦曲线,图9-2所表示。 图9-2 [试验目标] 掌握坐标系定义方法;掌握使用Line方法绘制图形;了解CurrentX 、CurrentY属性功效。 [提醒和分析] (1) 坐标系定义可Scale方法。因为要求坐标系原点在窗体中央,而要绘制 正弦曲线在(-2π,2π)之间,考虑到四面空隙,故X轴范围可定义在(-8,8),Y轴范围可定义在(-2,2)之间。可采取Scale(-8,2)-(8,-2)定义坐标系。 (2) 坐标轴用Line方法画出。 (3) X轴上坐标刻度线两端点坐标满足(i,0)-(i, y0)。其中y0为一定值。 可用循环语句,改变i值来标识X轴上坐标刻度。类似地可处理Y轴上标识坐标刻度。 (4) 坐标轴上刻度线数字标识,可经过CurrentX、CurrentY属性设定目前位置,然后用Print输出对应数字。标识数字可结合在分析(3)循环上一起完成。 (5) 正弦曲线可用Line方法或Pest方法画出,为使曲线光滑,相邻两点间距应合适小。本题用Line方法绘制正弦曲线,相邻两个x点间距取0.01。 3.设计一个图9-3所表示指针式时钟。 [试验目标] 掌握简单动画设计方法。 图9-3 [提醒] Visusl Basic坐标系中,采取逆时针绘圆,而时钟指针移动按顺时针方向,故指针和坐标轴夹角α必需乘以-1。另外,时钟指针和参考点夹角需调整π/2。 (1) 钟指针经过圆心,故指针另一端点和原点连线和坐标轴夹角还需调整π。 (2) ss=Second(Time)为目前秒数,秒针要指在对应刻度线上,则 α=-(ss×2π/ 60)+π/ 2, 设mm=Minute(Time)为目前分数,分针和坐标轴夹角 α=-(mm×2π/ 60)+π/ 2, hh=Hour(Time)为目前时数,时针和坐标轴夹角 α=-(hh×2π/ 12+mm×π/ 360)+π/ 2. (3) 钟指针两端点坐标: x1=R1 cos α , y1=R1 sin α ; x2=R2 cos (α + π) , y2=R2 sin (α + π) (4) 针移动由时钟控件Timer事件触发。 试验十 程序调试和错误处理 试验目标: 1、掌握VB中常见程序调试方法和工具。 2、熟悉VB中程序调试环境。 3、掌握VB中常见程序错误捕捉和处理。 试验步骤: 按下面步骤建立这个程序: (1) 运行Visual Basic 6.0并建立标准工程。 (2) 单击工具栏中Label控件,在Form1窗体上绘制一个标签,并将其 Caption属性设为“请输入(0—20)之间整数”。 (3) 单击工具栏中Text控件,并在Form1窗体上绘制一个文本框,然后 将其Text属性设置为空。 (4) 单击工具栏中CommandButton控件,并放置在窗体中,将其Caption属性设为“计算阶乘”。 (5) 最终再放置两个标签到窗体Form1中,属性采取缺省值。 图11-1显示了设计好界面。在这个程序中需要处理事件过程只有Command1_Click。在该过程中,需要进行参数检验和阶乘计算。这里编写了两个程序段来完成这两个功效。 1)检验参数程序段用来检验用户输入参数。返回值是检验过正当参数。 2)利用循环计算一个数阶乘值。它返回计算结果。 图11-1 程序代码以下: ‘将用户输入转化为数值参数 Dim n As Integer, JieCheng As Integer n = Val (Text1.Text) ‘检验用户输入是否有效 ‘假如输入错误,则提醒用户重新输入 ‘输入正确,就把检验过参数作为结果返回 If n> 20 And n < 0 Then Label2 . Caption = “输入错误!请重新输入!” ‘清除标签上以前显示结果 Label3.Caption=“ ” Else Label2.Caption=“结果是: ” Label3.Caption = "" ‘清除标签上以前显示结果 If n=0 or n=1 Then JieCheng =1 Else ‘不然,循环求解 JieCheng=1 ‘变量付初值 For i = 1 To n Jieheng = JieCheng * i Next i End If Label3.Caption=JieCheng End If 到此,完成了这个程序编写.下面测试程序运行. (1) 按F5键运行程序,并在文本框中输入0,单击[计算阶乘]按钮,得到图11-2所表示结果.这个结果示正确. 图11-2 图11-3 (2) 测试计算-1阶乘,正常情况下程序应显示输入错误等提醒.在文本框中输入”-1”,单击[计算阶乘]按钮,这时看到图11-3所表示结果.显然这个结果和预期不符,是错误.下面就来查找该错误.因为输入无效参数-1时程序并没有显示犯错提醒,所以推测在检验参数代码中出现了问题. (3) 打开代码窗口,在检验参数处设置断点,方便程序在检验参数之前中止运行,这么能够查看程序状态和中间结果.加入断点操作可按下面步骤进行: 1).在代码窗口中,把光标移动到要加断点一行.(If n> 20 And n < 0 Then) 2) 打开调试菜单,单击[切换断点]菜单项或按F9键,这时所选语句出现一条红色亮条,标志所设断点处.图11-4显示了加入断点处情况. 图11-4 图11-5 3)假如要去除断点,能够打开[调试]菜单,单击[切换断点]菜单或按F9键,也能够打开[调试]菜单,单击[清除全部断点]菜单项以清除全部断点 (4) 按F5键运行程序.在文本框中输入“-1”,单击[计算阶乘]按钮,这时程序在断点处中止,图11-5 所表示. (5) 在实施到if语句处时,打开[视图]菜单,单击[立即窗口]菜单项,这时桌面上出现了[立即]窗口.在[立即]窗口中输入“?n”,观察程序接收到参数植.图11-6显示了[立即]窗口使用效果.[立即]窗口中显示n值为-1,说明程序接收到参数是正确,错误可能在后面. 下面单步实施,以跟踪检验参数这部分代码运行. 图11-6 图11-7 (6) 打开[调试]菜单,单击[逐语句]菜单项或按F8键单步实施.这时,程序转入Else语句运行,图11-7所表示. (7) 现在发觉问题就出在这里,因输入-1不在0-20之间,程序应实施Label2.Caption=“输入错误!请重新输入”语句,以显示输入错误提醒,而现在没有实施这条语句,所以在If判定语句中条件设置可能有问题.仔细查看If 语句,发觉果然有问题,这条语句写是: If x>20 and x<0 Then “x>20 and x<0”是一对矛盾条件,所以不管输入什么数字,程序全部不会实施显示犯错信息语句.应该把条件改成“x>20 or x<0”,再按F5键运行.程序运行结果图11-8 所表示. 现在程序已经显示犯错信息,说明参数检验部分已正常工作. 图11-8 (8) 关闭正在运行程序,打开[调试]菜单,单击[清除全部断点]菜单项,然后按F5键运行程序.在输入文本框中输入5,再单击[
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服