实验报告二实验目的(1)掌握分支结构(if、if else、select case)语句(2)掌握基本循环控制结构(For-Next、While-Wend、Do-Loop)语句(3)掌握循环嵌套结构(4)掌握素数算法(5)能综合运用循环控制结构解决较复杂的问题实验内容一、选择结构程序设计【实验3-1】编写一个“系统登录”程序,对用户输入的账号和密码进行检验。
(10分)要求:①账号不超过6位数,密码为4位字符,本题的密码假设为“majq”。
②账号中不能有非数字字符,可以通过IsNumeric函数对文本框中的输入内容进行测试。
③密码输入时,屏幕上不能显示输入字符,以“*”代替。
④当输入不正确时,显示提示信息。
若单击“重试”按钮,则清除原输入内容,焦点定位在原输入的文本框中,重新输入;若单击“取消”按钮,则停止程序的运行。
⑤密码检验运行界面和输入密码错误显示的信息分别如图3-2和图3-3所示。
图3-2 密码检验运行界面图3-3 输入密码错误显示信息掌握简单if语句的使用实验结果:【请将你的代码粘贴到下面】【请将你的典型结果的截图粘贴到下面】【实验3-2】税务部门征收所得税,规定如下(用IF语句实现)(10分)①当收入为200 元以内(含200元)时,免征;②当收入为200 ~ 400 元(含400元)时,将超过200 元的部分纳税3% ;③当收入为400 ~ 5000元(不含5000元)时,将超过400 元的部分纳税4% ;④当收入为5000 元或5000元以上时,将超过400元的部分纳税5% 。
程序运行后,单击窗体,在输人对话框中输入收入数,程序将输出纳税金额,运行情况如下图所示,要求纳税程序界面掌握多分支if语句的使用,可自行用select语句改写。
实验结果:【请将你的代码粘贴到下面】【请将你的典型结果的截图粘贴到下面】【实验3-3】猜数游戏程序自动产生一个[1,100]内的正整数,要用户猜,用户猜的值与被猜值的差距用“*”号个数表示,“*”越少表示差得越远,“*”越多表示相差越近。
(用select case语句实现)(10分)界面设计参见下图:。
猜数游戏界面掌握select case语句的使用,可自行用if语句改写。
实验结果:【请将你的代码粘贴到下面】【请将你的典型结果的截图粘贴到下面】二、循环结构程序设计【实验3-4】求自然数N 的阶乘N!,运行结果如下图所示(10分)求阶乘界面掌握for语句的使用方法,可用其它循环语句编写、对比。
实验结果:【请将你的代码粘贴到下面】Private Sub Command1_Click()Dim n As IntegerDim i As IntegerDim s As Doublen = Val(Text1.Text)s = 1For i = 1 To ns = s * iNext iText2.Text = sEnd Sub【请将你的典型结果的截图粘贴到下面】【实验3-5】编程实现如图5-2所示的打印效果(10分)打印菱形界面掌握多重循环程序设计,可自行扩展称为等边三角形、直角三角形。
实验结果:【请将你的代码粘贴到下面】Private Sub Command1_Click()Dim n As IntegerDim i As Integer, j As Integern = InputBox("输入图案偶数行")For i = 1 To n / 2For j = 1 To 2 * i - 1Print Tab(10 - i + j); "*";Next jPrintNext iFor i = n / 2 To 1 Step -1For j = 1 To 2 * i - 1Print Tab(10 - i + j); "*";Next jPrintNext iEnd Sub方法2:Private Sub Command1_Click()Dim n As IntegerDim i As Integer, j As Integern = InputBox("输入图案偶数行")For i = 1 To n / 2Print Tab(10 - i); string(2*i-1,"*");Next iFor i = n / 2 To 1 Step -1Print Tab(10 - i); string(2*i-1,"*");Next iEnd Sub【请将你的典型结果的截图粘贴到下面】【实验3-6】素数问题:计算小于1000且最靠近1000的10个素数之和。
(10分)掌握素数算法,可用其它循环语句编写、对比。
实验结果:【请将你的代码粘贴到下面】Private Sub Form_Click()Dim i As Integer, j As Integer, Nums As Integer, Total As IntegerDim Flag As Booleani = 1000Print "这10个素数分别是:"While Nums < 10Flag = True '假设i是素数For j = 2 To Sqr(i) '验证以上假设是否正确If i Mod j = 0 Then '发现i能被因子j整除,即i不是素数Flag = False '修改标志,否定原来的假设Exit For '循环可以提前跳出End IfNext jIf Flag = True Then '根据标志判断是否为素数Nums = Nums + 1 '如果是,则计数器加1,Total = Total + i '将素数i累加到变量Print i;End Ifi = i - 1 'i变量递减1WendPrint '换行Print "这10个素数的总和" & TotalEnd Sub方法2:Private Sub Form_Click()Dim i As Integer, j As Integer, Nums As Integer, T otal As IntegerPrint "这10个素数分别是:"For i = 999 T o 1 Step -2For j = 2 T o Sqr(i) '验证以上假设是否正确If i Mod j = 0 Then '发现i能被因子j整除,即i不是素数Exit For '循环可以提前跳出End IfNext jIf j > Sqr(i) Then '根据标志判断是否为素数Nums = Nums + 1 '如果是,则计数器加1,T otal = T otal + i '将素数i累加到变量Print i;If Nums = 10 Then Exit ForEnd IfNextPrint '换行Print "这10个素数的总和" & T otalEnd Sub【请将你的典型结果的截图粘贴到下面】三、常见程序设计【实验3-7】编写程序计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+…当第i项的值<10-5时计算结束结束。
(10分)掌握Do…loop语句的使用实验结果:【请将你的代码粘贴到下面】方法1:Private Sub Command1_Click()fm = 1 '第1项的分母c = 1 '第1项分母与第2项分母的差Dot = 1 / fm '第n项s = s + t '累加求和fm = fm + c '下一项的分母c = c + 1 '下一个分母差Loop While t >= 0.00001MsgBox sEnd Sub方法2:Private Sub Command2_Click()s = 0n = 1 '第1项序号t = 1 '第1项Do While t >= 0.00001fm = n * (n - 1) / 2 + 1 '第n项的分母t = 1 / fm '第n项s = s + t '累加求和n = n + 1 '序号递增1LoopMsgBox sEnd Sub【请将你的典型结果的截图粘贴到下面】【实验3-8】将200~300之间的素数输出到列表框中。
(10分)掌握素数算法实验结果:【请将你的代码粘贴到下面】For i = 200 T o 300For j = 2 T o i - 1 Step 1If (i Mod j = 0) ThenExit ForEnd IfNext jIf (j > i - 1) ThenList1.AddItem iEnd IfNext i【请将你的典型结果的截图粘贴到下面】【实验3-9】编写程序,在窗体上输出上三角形式的九九乘法表。
(10分)掌握多重For循环程序设计实验结果:【请将你的代码粘贴到下面】Private Sub Command1_Click()For i = 1 T o 9For j = 1 T o iPrint T ab(13 * (j - 1)); i; "*"; j; "="; i * j;Next jPrintNext iEnd Sub【请将你的典型结果的截图粘贴到下面】【实验3-10】任意输入一个或者多个英文句子,统计这些句子中的单词数量。
(10分)根据实际问题,找出解决方案,结合循环和分支结构语句,解决问题。
提示:有很多种方法可以解决这个问题,注意特殊情况。
实验结果:【请将你的代码粘贴到下面】Private Sub Command1_Click()Dim content As StringDim count As Integercontent = Trim(T ext1.T ext)count = 0For i = 1 T o Len(content) Step 1a = Mid(content, i, 1)a = UCase(a)b = Mid(content, i + 1, 1)b = UCase(b)Rem 相邻两个位置上的字符不同时为字母,则找到一个单词If (a >= "A" And a <= "Z") And (b < "A" Or b > "Z") Thencount = count + 1End IfNext iT ext2.T ext = countEnd Sub【请将你的典型结果的截图粘贴到下面】实验小结1.遇到的问题:2.对课程的建议:。