活动二 求三个数的最大值
活动简介
在键盘上输入三个数,然后由程序判断出三个数中的最大值以及最小值。程序界面如图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 程序界面