第4章 数据输入输出 郭清溥
第4章数据输入输出 【本章要点】 数据输入输出的控件、函数、过程。 课时安排 2学时(理论),2学时(上机)
4.1 数据输入输出控件 4.1.1 用标签输出数据 标签主要用于显示静态的文本信息。该功能主要是通过标签的Caption属性实现的。
4.1 数据输入输出控件 4.1.2 用文本框输入输出数据 文本框是一个文本编辑区域,在这里可以输入、编辑、显示文本。
4.2 数据输出方法 4.2.1 Print方法 格式 [<窗体.>]Print [<输出项表>] 功能 在指定的窗体中显示“输出项表”的值(缺省窗体时指当前窗体)
4.2 数据输出方法 4.2.1 Print方法 说明 数值型数据在输出时都是第一位是符号位, 数值最后要带一个字符位的尾空 ; 行完输出后,自动换行 ;最后若有格式 字符,则执行完输出内容后按格式字符的 规定移动输出指针。
4.2 数据输出方法 4.2.1 Print方法 格式字符 “,” 格式字符“,”所规定的输出叫标准输出。标准输出是按每一部分占14个字符位计算。 格式字符“,”就是将输出指针移到下一个标准区域。
4.2 数据输出方法 4.2.1 Print方法 格式字符 “,”举例 Print "123456789012345", "B", "C", "D", "E" Print -1, 2, Print "Microsoft Visual BASIC" Print "河南财经政法大学", "现代教育技术中心"
4.2 数据输出方法 4.2.1 Print方法 格式字符 “;” 格式字符“;”所规定的输出叫紧凑输出。紧凑输出就是紧挨着输出。 格式字符“;”就是保持输出指针不动。
4.2 数据输出方法 4.2.1 Print方法 格式字符 “;”举例 Print "123456789012345"; "B"; "C"; "D"; "E" Print -1; 2; Print "Microsoft Visual BASIC" Print "河南财经政法大学"; "现代教育技术中心"
4.2 数据输出方法 为了使函数真正起到作用, 函数后必须紧跟“;” 4.2.2 与Print方法有关的函数 Tab(n) 输出移到下一行执行。 Spc(n) 输出n个空格。 为了使函数真正起到作用, 函数后必须紧跟“;”
4.2 数据输出方法 4.2.2 与Print方法有关的函数 Print "1234567890"; Print Tab(12); "ABCDE" Print Spc(10); "ABCDE";
4.2 数据输出方法 4.2.2 与Print方法有关的函数 Format $(数值表达式,格式字符串) 该函数的功能是:按“格式字符串”指定的格式输出“数值表达式”的值。如果省略“格式字符串”,则Format$函数的功能与Str$函数基本相同,唯一的差别是,当把正数转换成字符串时,Str$函数在字符串前面留有一个空格,而Format $函数则不留空格。
4.2 数据输出方法 4.2.2 与Print方法有关的函数 字符 作用 # 数字;不在前面或后面补0 数字;在前面或后面补0 . 小数点 数字;在前面或后面补0 . 小数点 , 千位分隔逗点 % 百分比符号 $ 美元符号 - + 负、正号 E+ E- 指数符号
4.3 数据输入输出函数和过程 4.3.1 InputBox函数 该函数的作用是在一个对话框中显示提示,等待用户输入正文或按下按钮,并返回文本框中的结果。 函数返回值的类型为字符型。 格式 InputBox(<提示>[,<标题>][,<默认>])
4.3 数据输入输出函数和过程 4.3.1 InputBox函数 Dim strIDCard$ strIDCard = InputBox("输入完成后单击“确定”按钮","输入卡号")
4.3 数据输入输出函数和过程 4.3.1 InputBox函数 产生一个回车换行 提示 标题 默认 Dim strName$ strName = InputBox("输入你的姓名" & Chr(13) & Chr(10) & _ "完成后单击“确定”按钮", "输入", "郭清溥" ) 提示 标题 默认
4.3 数据输入输出函数和过程 4.3.2 MsgBox函数 MsgBox函数在对话框中显示信息,等待用户单击按钮,并返回一个整数以说明用户单击了哪个按钮。 格式 MsgBox ( <提示>,<按钮值>,<标题> )
4.3 数据输入输出函数和过程 4.3.2 MsgBox函数 (按钮值)的意义1—显示的按钮
4.3 数据输入输出函数和过程 4.3.2 MsgBox函数 (按钮值)的意义2—对话框中的图标
4.3 数据输入输出函数和过程 4.3.2 MsgBox函数 (按钮值)的意义3—默认按钮的设置
vbOKCancel + vbInformation + vbDefaultButton1 4.3 数据输入输出函数和过程 “0”表示第一个按钮是默认值 4.3.2 MsgBox函数 “1”表示显示“确定”、“取消”按钮 “64”表示显示图标 YN = MsgBox("请确认你的输入!", 1 + 64 + 0 , "确认") 65 65 vbOKCancel + vbInformation + vbDefaultButton1 YN = MsgBox("你的输入有误!", 5 + 16 + 256, "确认")
4.3 数据输入输出函数和过程 4.3.2 MsgBox函数 MsgBox函数的返回值
4.3 数据输入输出函数和过程 4.3.3 MsgBox语句 语句要求的参数不使用括号! MsgBox还可以写成语句的格式。 格式
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。 分析: 假设程序中我们分别用KS,ZY,CS表示考试成绩、作业成绩和平时测试成绩,则总评成绩ZP为: ZP = KS×70%+ ZY×10%+ CS×20%
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。 分析: 怎么给 KS,ZY,CS 输入数据呢? 1.可以用文本框; 2.可以使用InputBox语句输入。
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。 分析: 假定我们 用InputBox输入数据。 那么输入的数据怎么显示在窗体上呢? 1.可以用文本框; 2.可以使用标签。
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。 分析: 假定我们 用InputBox输入数据,用文本框显示它们; 运算结果用标签显示。 执行程序的代码写在命令按钮下。
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。 用InputBox输入,显示在文本框中。 按钮名称 :cmdJS 按钮名称 :cmdGB 计算结果用标签显示。
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。
4.3 数据输入输出函数和过程 例4.4 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。 “计算”命令按钮(cmdJS)的程序源代码如下: Private Sub cmdJS_Click() Dim KS%, ZY%, CS%, ZP! KS = Val(InputBox("", "输入“考试成绩”")): txtKS.Text = KS ZY = Val(InputBox("", "输入“作业成绩”")): txtZY.Text = ZY CS = Val(InputBox("", "输入“测试成绩”")): txtCS.Text = CS ZP = KS * 0.7 + ZY * 0.1 + CS * 0.2 lblZP.Caption = "总评成绩:" & Str(ZP) End Sub ? KS * 70% + ZY * 10% + CS * 20%
将文本框的Enabled属性修改为True后可以用文本框输入三个成绩。 4.3 数据输入输出函数和过程 例4.4 将文本框的Enabled属性修改为True后可以用文本框输入三个成绩。 “计算”命令按钮(cmdJS)的程序源代码如下: Private Sub cmdJS_Click() Dim KS%, ZY%, CS%, ZP! KS = Val(InputBox("", "输入“考试成绩”")): txtKS.Text = KS ZY = Val(InputBox("", "输入“作业成绩”")): txtZY.Text = ZY CS = Val(InputBox("", "输入“测试成绩”")): txtCS.Text = CS ZP = KS * 0.7 + ZY * 0.1 + CS * 0.2 lblZP.Caption = "总评成绩:" & Str(ZP) End Sub KS = Val(txtKS.Text) ZY = Val(txtZY.Text) CS = Val(txtCS.Text)
如果将输入的信息放在标签中显示,应该如何修改程序? 4.3 数据输入输出函数和过程 例4.4 如果将输入的信息放在标签中显示,应该如何修改程序?
4.3 数据输入输出函数和过程 例4.5 鸡兔同笼问题:鸡和兔子被放在同一个笼中,现在已知鸡兔的总头数和总脚数。编写程序,求笼中鸡和兔子各多少只? 分析: 假如用 Head 表示总头数,Foot 表示总脚数 用 Cock 表示鸡的个数,Rabbit表示兔子的个数 则有: Cock + Rabbit = Head ① 2Cock + 4Rabbit =Foot ② Rabbit =(Foot - 2Head)/2 ③ Cock = Head –Rabbit ④
用InputBox输入Foot 和Head。用标签显示。 4.3 数据输入输出函数和过程 例4.5 鸡兔同笼问题:鸡和兔子被放在同一个笼中,现在已知鸡兔的总头数和总脚数。编写程序,求笼中鸡和兔子各多少只? 用InputBox输入Foot 和Head。用标签显示。 文本框名称 :txtC 文本框名称 :txtR 按钮名称 :cmdStart
4.3 数据输入输出函数和过程 例4.5 鸡兔同笼问题:鸡和兔子被放在同一个笼中,现在已知鸡兔的总头数和总脚数。编写程序,求笼中鸡和兔子各多少只?
4.3 数据输入输出函数和过程 例4.5 鸡兔同笼问题:鸡和兔子被放在同一个笼中,现在已知鸡兔的总头数和总脚数。编写程序,求笼中鸡和兔子各多少只? “计算”命令按钮(cmdStart)的程序源代码如下: Private Sub cmdStart_Click() Dim Head%, Foot%, Rabbit%, Cock% Head = Val(InputBox("", "输入总头数")) Foot = Val(InputBox("", "输入总脚数")) lblResult.Caption = "总头数:" & Head & " 总脚数:" & Foot Rabbit = (Foot - 2 * Head) / 2 : Cock = Head - Rabbit txtC.Text = Cock : txtR.Text = Rabbit End Sub
4.3 数据输入输出函数和过程 例4.6 编写程序,在实数范围内求解一元二次方程:aX2+bX+c=0 分析: 因为要求在实数范围内求解一元二次方程,所以我们应该假设该方程的根的判别式 b2-4ac≥0,因此我们可以利用一元二次方程的求根公式来求解方程。
4.3 数据输入输出函数和过程 例4.6 编写程序,在实数范围内求解一元二次方程:aX2+bX+c=0 由InputBox输入方程的系数 计算结果用标签显示。
4.3 数据输入输出函数和过程 例4.6 编写程序,在实数范围内求解一元二次方程:aX2+bX+c=0
4.3 数据输入输出函数和过程 例4.6 编写程序,在实数范围内求解一元二次方程:aX2+bX+c=0 Private Sub cmdStart_Click() Dim A%, B%, C%, X1!, X2! A = Val(InputBox("", "输入方程的系数A")) B = Val(InputBox("", "输入方程的系数B")) C = Val(InputBox("", "输入方程的系数C")) lblShow.Caption = "一元二次方程的系数是:" & A & "," & B & "," & C X1 = (-B + Sqr(B * B - 4 * A * C)) / (2 * A) X2 = (-B - Sqr(B * B - 4 * A * C)) / (2 * A) lblX1.Caption = "X1=" & X1 lblX2.Caption = "X2=" & X2 End Sub
4.3 数据输入输出函数和过程 例4.7 A、B、C三人上街买糖果。三人买好后,A对B、C说:“我可以按你们现有的数量再送你们每人一份。”之后,B对A、C ;C对A、B也说了同样的话。互相赠送后,每人各有64块糖果。编写程序,计算A、B、C原来各买了多少块糖果? 分析: 我们用A、B、C表示三人原来各买的糖果数。 C 送给A、B前 A←A/2 B←B/2 C←A+B+C B 送给A、C前 A←A/2 C←C/2 B←A+B+C A 送给B、C前 B←B/2 C←C/2 A←A+B+C
4.3 数据输入输出函数和过程 例4.7 A、B、C三人上街买糖果。三人买好后,A对B、C说:“我可以按你们现有的数量再送你们每人一份。”之后,B对A、C ;C对A、B也说了同样的话。互相赠送后,每人各有64块糖果。编写程序,计算A、B、C原来各买了多少块糖果?
4.3 数据输入输出函数和过程 例4.7 A、B、C三人上街买糖果。三人买好后,A对B、C说:“我可以按你们现有的数量再送你们每人一份。”之后,B对A、C ;C对A、B也说了同样的话。互相赠送后,每人各有64块糖果。编写程序,计算A、B、C原来各买了多少块糖果?
4.3 数据输入输出函数和过程 例4.7 A、B、C三人上街买糖果。三人买好后,A对B、C说:“我可以按你们现有的数量再送你们每人一份。”之后,B对A、C ;C对A、B也说了同样的话。互相赠送后,每人各有64块糖果。编写程序,计算A、B、C原来各买了多少块糖果? Private Sub cmdStart_Click() Dim A%, B%, C% A = 64: B = 64: C = 64 A = A / 2: B = B / 2: C = A + B + C C = C / 2: A = A / 2: B = A + B + C B = B / 2: C = C / 2: A = A + B + C lblResult.Caption = "A、B、C三人的糖果数为: " & " " & A & " " & B & " " & C End Sub
4.3 数据输入输出函数和过程 4.1.4 With语句 格式: With <对象> .<属性>=<表达式> End With 功能: With语句可以对某个对象执行一系列的操作,而不用重复指出对象的名称。
4.3 数据输入输出函数和过程 补充例题1 编写程序,分别显示角度和弧度的正弦值。 程序运行后显示“例B1 计算正弦” 计算角度的正弦值 计算弧度的正弦值 输入原始数据X 输出计算结果Y
4.3 数据输入输出函数和过程 补充例题1 编写程序,分别显示角度和弧度的正弦值。
4.3 数据输入输出函数和过程 补充例题1 编写程序,分别显示角度和弧度的正弦值。 程序运行后,窗体中各个控件的标题要明确显示: Private Sub Form_Load() Form1.Caption = "例B1 计算正弦" cmdJD.Caption = "按角度计算" cmdHD.Caption = "按弧度计算" txtSR.Text = "" lblSC.Caption = "" End Sub
4.3 数据输入输出函数和过程 补充例题1 编写程序,分别显示角度和弧度的正弦值。 Private Sub cmdJD_Click() Dim X!, Y! X = Val(txtSR.Text) Y = Sin(X * 3.14 / 180) lblSC.Caption = "Sin(" & X & "度)=" & Y End Sub
4.3 数据输入输出函数和过程 补充例题1 编写程序,分别显示角度和弧度的正弦值。 Private Sub cmdHD_Click() Dim X!, Y! X = Val(txtSR.Text) Y = Sin(X) lblSC.Caption ="Sin(" & X & "弧度)=" & Y End Sub
第4章 作业 P86 习题:一、二 P86 习题:三 修改例4.4:如果将输入的信息放在标签中显示,应该如何修改程序? 第4章 作业 P86 习题:一、二 P86 习题:三 修改例4.4:如果将输入的信息放在标签中显示,应该如何修改程序? 修改例4.4:如果将计算结果用MsgBox输出,又应该如何修改程序?