程序设计与实践(VB.NET)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

活动二 求三个数的最大值

活动简介

在键盘上输入三个数,然后由程序判断出三个数中的最大值以及最小值。程序界面如图3-22所示。

图3-22 最大值最小值判断程序界面

活动实施

本程序实现思想如下。

设输入三个数为a、b、c,变量max的初值为a,然后将max的值与b、c分别比较。如果max的值小于b,则将b的值赋给max。c的情况做同样处理。最终的max值就是三个数的最大值。相似的处理可以得到最小值。程序界面中各对象的属性设置见表3-6。

表3-6 求三个数最大值程序界面对象的主要属性

代码设计

最大最小值判断程序的全部代码如下。

    Public Class Form1
    Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As
      System.EventArgs)Handles Button2.Click
      End
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As
      System.EventArgs)Handles Button1.Click
      Dim max As Integer
      max = Val(TextBox1.Text)
      If max < Val(TextBox2.Text)Then
            max = Val(TextBox2.Text)
      End If
      If max < Val(TextBox3.Text)Then
            max = Val(TextBox3.Text)
      End If
      Label4.Text = "最大值为:" & max
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object,ByVal e As
      System.EventArgs)Handles Button3.Click
      Dim min As Single
      min = Val(TextBox1.Text)
      If min > Val(TextBox2.Text)Then
            min = Val(TextBox2.Text)
      End If
      If min > Val(TextBox3.Text)Then
            min = Val(TextBox3.Text)
      End If
      Label4.Text = "最小值为:" & min
    End Sub
    End Class

试一试

1.编写程序,对三个数进行从大到小顺序排列。界面如图3-23所示。

图3-23 排列程序界面

提示:先找出最大值和最小值:max和min;然后假设中间数mid = a,判断mid是否与max或min相等。若相等则假设mid = b,重复上面步骤。

关键性代码如下。

    Dim a,b,c,m1,m2,m3 As Integer
    a = Val(TextBox1.Text)
    b = Val(TextBox2.Text)
    c = Val(TextBox3.Text)
    m1 = a
    If m1 < b Then
      m1 = b
    End If
    If m1 < c Then
      m1 = c
    End If
    m3 = a
    If m3 > b Then
      m3 = b
    End If
    If m3 > c Then
      m3 = c
    End If
    m2 = a
    If m2 = m1 Or m2 = m3 Then
      m2 = b
    If m2 = m1 Or m2 = m3 Then m2 = C
      m2 = c
    End If
    Label4.Text = "三个数从大到小排列为:"&vbCrLf& m1 &" "& m2 &" "& m3 &" "

2.编写一个选课系统登录时检验学号和密码的程序,要求如下。

(1)学号合法性检验:不超过11位数字,当输入的学号为非数字字符时,显示有关信息,清除所输入的学号,并将插入点定位于“学号”文本框中。

(2)密码检验:输入密码时在文本框中以“*”代替输入的字符,单击“确认”按钮检验密码是否正确(密码由编程者定义)。若密码错,提示用户是否重新输入。选择“重试”按钮,清除输入的密码,并将插入点定位于“密码”文本框中;选择“取消”按钮,停止运行,程序运行界面分别如图3-24、图3-25和图3-26所示。

图3-24 程序界面1

图3-25 程序界面2

图3-26 程序界面3

提示

① 学号最多11位,设置MaxLength属性为11。

② 判断数字用IsNumeric函数。

③ 密码显示:设置PassWordChar属性为“*”。

④ 用MsgBox函数显示密码错误的对话框。

程序代码如下所示。

    Private Sub Form1_Load(ByVal sender As Object,
    ByVal e As System.EventArgs)Handles Me.Load
    TextBox1.Text = ""
    TextBox2.PasswordChar = "*"
    TextBox2.Text = ""
    End Sub
    Private Sub TextBox1_LostFocus(ByVal sender As Object,ByVal e As
    System.EventArgs)Handles TextBox1.LostFocus
    If Not IsNumeric(TextBox1.Text)Then
      MsgBox("学号有非数字字符,错误!")
      TextBox1.Text = ""
      TextBox1.Focus()
    End If
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As
    System.EventArgs)Handles Button1.Click
    Dim iAs Integer
    If TextBox2.Text = "Wang" Then
      TextBox3.Text = "正确!"
    Else
      i = MsgBox("密码错误",MsgBoxStyle.RetryCancel + MsgBoxStyle.
              Exclamation,"输入密码")
      If i=MsgBoxResult.Retry Then
          TextBox2.Text = ""
          TextBox2.Focus()
      Else
          End
      End If
    End If
    End Sub

3.企业发放奖金根据利润提成。利润x低于或等于10万元时,奖金按5%提成;x高于10万元,低于或等于20万元时,低于10万元部分按5%提成,超过10万元的部分按7.5%提成;当x高于20万元,低于或等于40万元时,低于20万元的部分还是按上述部分提成(下同),高于20万元的部分按10%提成;当x高于40万元,低于或等于60万元时,高于40万的部分按12.5%提成;当x高于60万元,低于或等于100万元时,高于60万的部分按15%提成;当x大于100万元时,超过100万元的部分按20%提成。设计程序,在界面的文本框内输入利润x,由程序给出提成。程序界面如图3-27所示。

图3-27 程序界面