【VB开源代码栏目提醒】:网学会员--在 VB开源代码编辑为广大网友搜集整理了:[精品]实验5 简单程序设计(一) - 毕业设计绩等信息,祝愿广大网友取得需要的信息,参考学习。
实验4 分支程序设计 实验目的: 1掌握Visual Basic的常量、变量的定义和使用。
2掌握各种表达式的使用。
3掌握各种标准函数的使用。
4掌握分支结构程序设计方法。
实验4.1计算面积 实验任务 1设计程序界面如图4-1所示在窗体上先放置框架一个然后将三个单选按钮放置在框架中放置两个标签框、两个文本框和两个命令按钮。
2选择某种形状的同时Label1动态显示相应的“半径”或“边长”。
3在Text1中输入数值后按确定按钮在Text2中显示计算的面积。
4形状转换时要清除前次结果两个文本框清空光标聚焦Text1。
5按“退出”按钮结束运行。
提示可以根据单选按钮的Value属性进行判断当某个按钮值为真时则进行与之相应的计算。
因此可以使用分支结构If…Then来实现条件判断功能。
实验步骤 图4-1 程序界面 1属性设置如下 控件名称 属性名称 属性值 Label1 Caption 空 Label2 Caption 面积 Text1 Text 空 Text2 Text 空 Frame Caption 选择形状 Option1 Caption 圆形 Option2 Caption 正三角形 Option3 Caption 正方形 Command1 Caption 计算 Command2 Caption 退出 2添加
代码 Option Explicit Const Pi As Single 3.141593 ’Pi为“符号常量”类型不可再次赋值 Private Sub Option1_Click Label1 quot半径quot Text1 quotquot Text2 quotquot Text1.SetFocus End Sub Private Sub Option2_Click Label1 quot边长quot Text1 quotquot Text2 quotquot Text1.SetFocus End Sub Private Sub Option3_Click ’填写一段程序可以模仿Option2_Click中的
代码 End Sub Private Sub Command1_Click Dim r As Single s As Single r ValText1 If Option1.Value True Then s Pi r 2 If Option2.Value True Then s r 2 Sqr3 / 4 39 If Then s r 2 Text2 s End Sub Private Sub Command3_Click End End Sub 3保存文件调试运行并记录结果。
提示请妥善保存该程序待到学会使用控件数组后将三个Option按钮用控件数组生成可以简化程序
代码。
实验4.2登录检测 实验任务 建立一个登录窗口要求输入口令假定口令为“Basic1234”。
要求 1输入的口令在文本框中不可见以“”替代单击“退出”按钮时结束运行。
2单击“确定”按钮时若输入口令正确显示信息“祝贺你成功登录”否则显示“对不起口令错误无法登录”。
图4-2 登录界面及各种提示信息 3若三次登录均不正确显示“对不起你无权登录该系统”后结束整个应用程序。
注意将文本框的PasswordChar属性值设为“”只要一个星号就可以星号替代键入的字符。
实现上述功能不仅要使用分支判断语句对文本框的内容进行判断还需要定义一个整型变量N用作计数其初值为0登录一次不正确N就加1如果N3则结束整个应用程序。
操作步骤 1窗体设计在窗体上放置一个Label控件、一个TextBox控件和两个CommandButton按钮按照图4-2排列控件设置控件大小。
2属性设置 缺省名称 属性名称 属性值 窗体1 Caption 登录 name Login BorderStyle 1-Fixed Single 标签1 Name lblPassword AutoSize True Caption 输入口令 文本框1 Name txtPassword Text 空 Pass
wordChar 命令按钮1 Name cmdOk Caption 确定 Default True 命令按钮2 Name cmdExit Caption 退出 3添加
代码 Option Explicit Dim N As Integer ’N用来统计登录次数注意不能在过程中定义 Private Sub cmdOk_Click If txtpassword.Text quotBasic1234quot Then MsgBox quot祝贺你成功登录quot ’弹出消息框 Else N N 1 If N 3 Then MsgBox quot对不起你无权登录该系统quot vbExclamation ’弹出消息框 End End If MsgBox quot对不起口令错误无法登录quot vbExclamation ’弹出消息框 txtpassword.Text quotquot txtpassword.SetFocus 41 End If End Sub Private Sub cmdExit_Click 退出 End End Sub 4保存文件调试运行观察结果。
思考如果假定的口令“Basic1234”事先已经存在一个PassWord.txt文件中如何修改上述程序试一试。
实验4.3日期显示 实验任务 编程获得当天的
系统日期并以X年X月X日星期X的形式显示出来实验结果如图4-3所示。
提示系统日期可以通过Date函数得到年号、月份、日期和星期号也可分别通过Year、Month、Day、WeekDay等函数获得。
要注意的是通过WeekDay获得的星期号是数值表示的1-7而非大写的“星期一”-“星期日”因此必须借助一个多分支语句加以转换。
实验步骤 1在窗体上放置一个Label控件。
2属性设置 控件名称 属性名称 属性值 标签1 Name LblDate Font 宋体三号粗斜体 Caption 空 图4-3 显示当天日期界面 BoderStyle 1 Aligement 2 AutoSize True WordWrap True 3添加
代码请补充缺少的语句 Rq为当前系统日期Y为年号m为月份d为日期w1为数值型的星期号w2为转换后的大写的星期号 Dim Y As Integer m As Integer d As Integer w1 As Integer Dim Rq As Date Dim w2 As String Private Sub Form_Load Rq ________ Y __________ m __________ d ________ w1 WeekdayRq vbMonday 设星期一为第一天缺省值星期日是第一天 Select Case w1 Case 1 w2 quot一quot Case 2 w2 quot二quot Case 3 w2 quot三quot Case 4 w2 quot四quot Case 5 w2 quot五quot Case 6 w2 quot六quot Case 7 w2 quot日quot End Select LblDate.Caption ______________________________ End Sub 4保存文件调试运行。
43 实验4.4计算器 实验任务 编程模拟一个袖珍计算器它可以根据输入的操作符进行不同的计算要求最少要做加、减、乘、除四种运算。
实验结果如图4-4所示。
图4-4 实验4.4运行界面 注意判断一下除数为零的情况。
若除数为零要用Msgbox消息框提示“除数不能为零”、清空输入数2的文本框、让该文本框获得焦点等待重新输入合法的数据。
提示 设计界面如图4-4所示属性设置如下 控件名称 属性名称 属性值 Label1 Caption 输入数1 Label2 Caption 输入数2 Label3 Caption 输入操作符 Label4 Caption 计算结果 Text1 Text 空 Text2 Text 空 Text3 Text 空 Text4 Text 空 Command1 Caption 计算 Command2 Caption 结束 实验4.5方程求解 实验任务 编程实现一元二次方程求解。
要求任意输入方程的系数abc计算并输出方程的两个根xlx2并把方程系数和求得的根存入数据文件“gen.dat”中界面如图4-5所示。
图4-5 实验4.5运行界面 实验要求 1输入abc三个数为了程序
设计的方便可由三个文本框来实现 2通过求根公式求得方程的根。
计算的结果通过文本框显示。
要分为a0时 按照一次方程求解 a≠0时 b2-4acgt0 按照二次方程求实根解 b2-4aclt0 按照二次方程求虚根解 dalt b b - 4 a c dalt Sqr-dalt 复根 两个须根分别为 文本框 Format-b / 2 / a quot0.00quot amp quotquot amp Formatdalt / 2 / a quot0.00quot amp quotiquot 文本框 Format-b / 2 / a quot0.00quot amp quot-quot amp Formatdalt / 2 / a quot0.00quot amp quotiquot 3为简化程序假设abc均为数值 45 习 题4 习题4.1选择题 1.
VB也提供了结构化程序设计的三种基本结构三种基本结构是 。
A递归结构、选择结构、循环结构 B选择结构、过程结构、顺序结构 C过程结构、输入、输出结构、转向结构 D选择结构、循环结构、顺序结构 2. 结构化程序由三种基本结构组成下面属于三种基本结构之一的是 。
A递归结构 B选择结构 C过程结构 D输入、输出结构 3. 下面程序段运行后显示的结果是 。
Dim x If x Then Print x Else Print x1 A1 B0 C-1 D显示出错信息 4. 语句If x1 Then y1下列说法正确的是 。
Ax1和y1均为赋值语句 Bx1和yl均为关系表达式 Cx1为关系表达式yl为赋值语句 Dx1为赋值语句yl为关系表达式 5. 用If语句表示分段函数13112xxxxxf下列不正确的程序段是 。
Afxx3 BIf xgt1 Then fsqrx1 If xgt1 Then fsqrx1 If xlt1 Then fxx3 CIf xgt1 Then fsqrx1 DIf xlt1 Then fxx3 _ Else fxx3 Else fsqrx1 6. 计算分段函数值。
2 x32x1 21x0 10 x0y 下面程序段中正确的是 。
AIf xlt0 Then y0 BIf xgt2 Then y3 If xltl Then y1 If xgt1 Then y2 If xlt2 Then y2 If xgt0 Then y1 If xgt2 Then y3 If xlt0 Then y0 CIf xlt0 Then DIf xgt2 Then y0 y3 ElseIf xgt0 Then ElseIf xgt1 Then y1 y2 ElseIf xgt1 Then ElseIf xgt0 Then y2 y1 Else Else y3 y0 End If End If 7. 下面程序段显示的结果是 。
Dim x xIntRnd十5 Select Case x Case 5 Print”优秀” Case 4 Print“良好” Case 3 Print“通过” Case Else Print“不通过” End Select A优秀 B良好 C通过 D不通过 8. 下面
程序段求两个数中的大数 不正确。
AMaxIIfxgtyxy BIf xgty Then Maxx Else Maxy CMaxx DIf ygtx Then Maxy If ygtx Then Maxy Maxx 9. 在窗体上画一个名称为Command1的命令按钮然后编写如下事件过程 Private Sub Command1_Click xInputBoxquotInputquot Select Case x Case 13 Print quot分支 1quot Case Is gt4 Print quot分支 2quot Case Else Print quotElse 分支 quot End Select 47 End Sub 程序运行后如果在输入对话框中输入2则窗体上显示的是 A分支1 B分支2 CElse分支 D程序出错 10. 以下Case语句中错误的是 ACase 0 To 10 BCase Isgt10 CCase Isgt10 And Islt50 DCase 35Isgt10 11. 在窗体上画一个名称为Command1的命令按钮然后编写如下事件过程 Private Sub Command1_Click x -5 If Sgnx Then y Sgnx 2 Else y Sgnx End If Print y End Sub 程序运行后单击命令按钮窗体上显示的是 A-5 B25 C1 D-1 12. 在窗体上画一个名称为Text1的文本框要求文本框只能接收大写字母的输入。
以下能实现该操作的事件过程是 APrivate Sub Text1_KeyPressKeyAscii As Integer If KeyAscii lt 65 Or KeyAscii gt 90 Then MsgBox quot请输入大写字母quot KeyAscii 0 End If End Sub BPrivate Sub Text1_KeyDownKeyCode As Integer Shift As Integer If KeyCode lt 65 Or KeyCode gt 90 Then MsgBox quot请输入大写字母quot KeyCode 0 End If End Sub CPrivate Sub Text1_MouseDownButton As Integer Shift As Integer X As Single Y As Single If AscText1.Text lt 65 Or AscText1.Text gt 90 Then MsgBox quot请输入大写字母quot End If End Sub DPrivate Sub Text1_Change If AscText1.Text gt 64 And AscText1.Text lt 91 Then MsgBox quot请输入大写字母quot End If End Sub 13. 设a6则执行xIIFagt5-10后x的值为 A5 B6 C0 D-1 14. 下列语句正确的是 AIf A ≠ B Then Print quotA 不等于 Bquot BIf A ltgt B Then Printf quotA 不等于 Bquot CIf A ltgt B Then Print quotA 不等于 Bquot DIf A ≠ B Then Printf quotA 不等于 Bquot 15. 下面程序段执行结果为 x IntRnd 4 Select Case x Case 5 Print quotexcellentquot Case 4 Print quotgoodquot Case 3 Print quotpassquot Case Else Print quotfailquot End Select Aexcellent Bgood Cpass Dfail 16. 设a quotaquotb quotbquotc quotcquotd quotdquot执行语句x IIfa lt b Or c gt d quotAquot quotBquot后x的值为 Aa Bb CA DB 17. 下列程序执行后变量a的值为 Dim a b c d As Single a 100: b 20: c 1000 If b gt a Then d a: a b: b d End If If c gt a Then d b: b c: c d 49 End If A0 B1000 C20 D100 18. 执行下面的程序段后变量c的值为 a 14 b 30 Select Case b 10 Case 0 c a 10 b Case 1 To 9 c a 100 b Case 10 To 99 c a 1000 b End Select Print c A363 B2548 C1430 D9875 参考答案 1.D 2.B 3.A x没有赋值默认为0。
而在
VB中0作为逻辑常量False非0作为True。
4.C 5.C 6.D 7.A 8.D 9.C 10.C 11.C 12.A 13.D 14.C 15.B 16.C 17.D 18.C 习题4.2填空题 1下面程序运行后输出的结果是 空1 。
xIntRnd3 If x2gt8 Then yx21 If x29 Then yx2-2 If x2lt8 Then yx3 Print y 2下面程序的功能是 空2 。
Dim nm Private Sub Text1_KeyPressKeyAscii As Integer If KeyAscii13 Then If IsNumericText1.Text Then Select Case Text1.Text Mod 2 Case 0 nnText1.Text Case 1 mmText1.Text End Select End If Text1.Textquotquot Text1.SetFocus End If End Sub 3下面的程序段是检查输入的算术表达式中圆括号是否配对并显示相应的结果。
本程序在文本框输入表达式边输入边统计以输入回车符作为表达式输入结束然后显示结果。
Dim count1 Private Sub Text1_KeyPressKeyAscii As Integer If 空3 quotquotThen count1count11 ElseIf 空4 quotquotThen 空5 End If If KeyAscii13 Then If 空6 Then Print quot左右括号配对quot Else If 空7 Then Printquot左括号多于右括号quotcount1quot个quot Else Printquot右括号多于左括号quot-count1quot个quot End If End If End Sub 4 输入文本框中若干字符统计有多少个元音字母、有多少个其他字母直到按Enter键结束并显示结果大小写不区分。
其中CountY中放元音字母个数CountC中放其他字符数。
Dim CountYCountC Private Sub Textl_KeyPressKeyAscii As Integer Dim C C 空8 If quotAquotltC And CltquotZquotThen Select Case 空9 Case 空10 CountYCountY1 Case 空11 CountCCountC1 End Select End If 51 If 空12 Then Print quot元音字母有quotCountYquot个quot Printquot其他字母有quotCountCquot个quot End If End Sub 参考答案 1.7 2.分别统计输入若干数的奇数和、偶数和存放在m、n中 3.ChrKeyAscii 4.ChrKeyAscii 5.countlcountl-1 若遇右括号括号数减l。
6.countl0 括号配对。
7.countlgt0 左括号多于右括号多于的个数是countl的值。
8.UCaseChrKeyAscii 大小写不区分。
9.C 10.”A””E””I””O””U” 11.Else 其他字符。
12.KeyAscii13 习题4.3简答题 1设x与y是同一类型的变量试设计一个算法把x与y中的数据相互交换。
2设a、b、c是同一类型变量并分别被赋予不同大小的数据设计一个算法使得执行的结果为agtbgtc。
3设计一个可以判断某数是否是素数的算法所谓素数是指只能被1和自身整除的数。
4设计一个判断某正整数是一个回文数的算法。
所谓回文数是指左右数字完全对称的自然数。
例如121、12321、484、555等都是回文数。
5设计一个算法求出给定的自然数a的所有因子。
6在文本框Textl与Text2中分别输入35与48变量S与X分别为字符型与整型试问以下赋值语句的执行结果是什么 STextl.TextText2.Text X Textl.TextText2.Text STextl.Text amp Text2.Text X Textl.Text amp Text2.Text SValTextl.TextText2Text XValTextl.TextText2.Text SValTextl.Text amp Text2. Text XValTextl.Text amp Text2.Text 习题4.4操作题 1将键盘输入的一位数字翻译为英文单词如图4-6所示。
若输入长度大于1且不是0-9之间的数字显示“输入错误请重新输入”的信息。
图4-6 数字转单词界面 2从键盘输入一个大写字母要求改用小写字母输出。
提示Visual Basic提供了一个标准函数Lcasex方便地将大写字母转换成小写字母 3. 输入三角形的三条边abc的值根据其数值判断能否构成三角形。
若能还要显示三角形的性质等边三角形、等腰三角形、直角三角形、任意三角形。
并计算周长与面积。
并把结果存入数据文件“area.dat”中。
程序界面如图4-7所示。
53 图4-7判断三角形程序界面 4货币兑换。
将输入的人民币金额按指定的要求兑换为美元或港币。
美元和人民币兑换比为1:6.65人民币和港币兑换比为1.15:1。
要求 1应用程序窗体如图4-8所示。
2程序运行时和单击“清除”按钮后光标自动停在人民币金额文本框中。
3程序运行时默认币种为美圆。
提示计算时根据OptionButton选中的币别即OptionButton的Value属性进行判图4-8 币种兑换界面 断来决定用哪个计算公式进行币种之间的换算。
5计税款。
国家规定收税标准如下 收入 超出部分税率 1000 以下 0 1000slt1500 5 1500slt2000 10 2000slt2500 15 2500slt5000 20 5000以上 25 提示本题是一个典型的多分支情况如果使用嵌套的If结构层次复杂容易产生 If和End If不匹配的语法错误。
因此建议使用If –Then-Else If结构或Select Case结构程序比较清晰可读性好。
6计算分段函数y的值。
7从键盘输入三个数将它们从大到小依次排列输出。
图4-9 三数排序 注意a、b、c三个数之间的各种可能性都要考虑到才能得到正确结果。
请输入各种不同情况的数据验证程序。
参考答案 1.程序界面与参考程序 Private Sub Form_Click 5350012xxexxxyx 55 Dim x y z x InputBoxquotxquot y LenTrimx 求数字x的长度 If y gt 1 Or x lt 0 And x gt 9 Then MsgBox quot输入错误请重新输入quot Else Select Case x Case 0 z quotzeroquot Case 1 z quotonequot Case 2 z quottwoquot Case 3 z quotthreequot Case 4 z quotfourquot Case 5 z quotfivequot Case 6 z quotsixquot Case 7 z quotsevenquot Case 8 z quoteightquot Case 9 .