1、实验1-2模仿教学篇例1.1,将事件过程中的自上而下移动改为自右向左移动,同时考虑文字超出窗体边界的情况。各个控件及属性窗口的设置见表2.1.2,背景图形文件可以选择自己喜欢的,按钮上的图标可通过Windows搜索功能查找。以“学号-1-2”为项目名保存。表2.1.2 属 性 设 置Form1实验1.2Picture:选择自己喜欢的图片我开始学习程序设计FontSize=36;BackStyle=0Style=1;Picture=clock02.icoToolTipText自动Command2key04.ico手动Timer1Interval=0注:因为印刷错误,例题1.1中两个命令按钮的图形
2、与事件过程代码不一致,需要调整。 自定义事件过程MyMove代码应调整为,可实现文字移动方向的改变Sub MyMove()Label1.Move Label1.Left - 50, Label1.TopIf Label1.Left (1) Command1:使得Text1的字体和字号根据命令按钮显示的要求改变(2) Command2:要求将Text1选中的内容及其格式复制到Text2。选中的内容通过Text1的SelText属性获得为使Text2文本框保持Text1中的字符格式,通过Text2.FontSize=Text1.FontSize和Text2.FontName=Text1.FontN
3、ame实现Text1.FontName = 隶书Text1.FontSize = 25Text2 = Text1.SelTextText2.FontName = Text1.FontNameText2.FontSize = Text1.FontSize实验1-6图片缩小、还原的设置。“学号-1-6”为项目名保存。图2.1.4 实验1.6运行界面(1)单击“缩小一半”按钮,图片纵、横均缩小一半。(2)单击“还原”按钮,图片与初始装入时同大。为了实现还原效果,要做以下3件事。(1)必须在事件过程外,即程序代码最上方声明窗体级变量:Dim h%,w% 用户输入的变量声明语句(2)在Form1_Loa
4、d事件中保存图像控件的初始值:w=Image1.Widthh=Image1.Height(3)在Command2_Click事件中还原为初始值:Image1.Width=wImage1.Height=h缩小一半Command1_Click事件请读者自行完成。思考:若要设置图片放大效果,如何修改代码?Dim h%, w%Image1.Width = Image1.Width * 0.5Image1.Height = Image1.Height * 0.5Image1.Width = wImage1.Height = hw = Image1.Widthh = Image1.Height实验2-1图
5、2.2.1 实验2.1运行界面(1)随机数生成某范围内的正整数公式为Int(Rnd*范围+基数)其中范围=数的上限-下限+1,基数=数的下限。例如,要生成2位数,语句为Int(Rnd*(99-10+1)+10)=Int(Rnd*90+10)(2)保留两位小数,利用Format函数,形式为Format(要显示的数值, 0.00 )。Text1.Text = Int(Rnd * 9 + 1)Text2.Text = Int(Rnd * 90 + 10)Text3.Text = Int(Rnd * 900 + 100)Text4.Text = Format(Val(Text1.Text) + Val
6、(Text2.Text) + Val(Text3.Text) / 3, 0.00Private Sub Command3_Click()Text2.Text = Text3.Text = Text4.Text = 实验2-2我国有13亿人口,假定按人口年增长0.8%计算,多少年后我国人口超过26亿。(1)已知年增长率r=0.8%,求人数超过26亿的年数n公式为:其中:Log(x)为对数函数,Log(2)缘由Log(13/26),0.8%需写成0.008(2)该题目的界面设计 由读者自行设计。n = Int(Log(2) / Log(1 + 0.008) + 1)Text1 = n & 年后人口
7、超过26亿实验2-3输入一个合法的3位正整数,测试其数值合法性后,逆序输出并显示。例如,输入“734”,输出是“437”(2)利用“MOD”和“”运算符将一个3位数分离出3个1位数,然后利用乘法和加法运算将3个1位数连接成一个逆序的3位数。图2.2.2 实验2.3运行界面 图2.2.3 出错信息Dim x%, x1%, x2%, x3%x = Val(Text1)x1 = x Mod 10x2 = (x Mod 100) 10x3 = x 100Label2 = x1 * 100 + x2 * 10 + x3Private Sub Text1_KeyPress(KeyAscii As Inte
8、ger)If KeyAscii = 13 ThenIf Not IsNumeric(Text1.Text) ThenEnd IfPrivate Sub Text1_LostFocus()MsgBox 输入非数值数据,请重新输入, , 数据检验Text1.SetFocus实验2-4图2.2.4 实验2.4运行界面事件过程可以在Form_Click中编码,输出控件可以使用标签控件。Label1 = UCase(Text1.Text)Label2 = Len(Text1.Text)Label3 = Left(Text1, 11)Label4 = Mid(Text1, 12, 6)Label5 = R
9、ight(Text1, 5)实验2-5图2.2.5 实验2.5运行界面Label2 = Val函数的结果Text2 = Val(Text1.Text)Str函数的结果Text2 = Str(Text1.Text)Chr函数的结果Text2 = Chr(Text1.Text)Private Sub Command4_Click()Asc函数的结果Text2 = Asc(Text1.Text)实验2-6“清屏”按钮后,清除窗体所显示的图形。利用循环语句和String函数。读者也可以发挥自己的想像力,设计更美观的图形。图2.2.6 实验2.6运行界面 图2.2.7 进一步要求运行界面PrintFor
10、 i = 1 To 5Print Tab(15 - i * 2); String(2 * i - 1, ); String(10 - (2 * i - 1), Next i实验2-7用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留三位小数,其间有间隔。Private Sub command1_Click()x = Val(InputBox(输入一个正实数, 计算, 0)pf = Format(x * x, 0.000pfg = Format(Sqr(x), lf = Format(x * x * x, lfg = Format(x (1
11、 / 3), 平方为:; pf; Space(3);平方根为: pfg;立方为: lf;立方根为: lfg实验3-1在购买某物品时,若所标明的价钱x在下述范围内,所付钱y按对应折扣支付:提示:此例用多分支结构实现,注意计算公式和条件表达式的正确书写。Dim x!, y!输入x的值)If x 1000 Theny = xElseIf x 150 Theny = 150实验3-3输入x,y,z图2.3.1 实验3.3运行界面利用InputBox函数输入3个数,存放到数值型变量中,然后对其进行比较;若放在字符串变量中,有时会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现“34”“234
12、5”“126789”的情况)。对三个数进行排序,只能通过两两比较,一般可用三条单分支if语句来实现。方法如下:先将x与y比较,使得xy;然后将x与z比较,使得xz,此时x最大;最后将y与z比较,使得yz。要显示多个数据,可以用“;”逐一显示,也可利用“&”字符串连接符将多个变量连接显示。例如要输出x、y、z:Print ”排序后”;x;” ”;y;z 用分号将多个变量显示也可Print ”排序后”& x &” ” & y &z 用”&”字符串连接符若要按从小到大的次序显示,程序将如何修改?, z!x = InputBox(input xy = InputBox(input yz = Input
13、Box(input z x y z 排序前 x; y; z y Then t = x: x = y: y = t z Then t = x: x = z: z = tIf y z Then t = y: y = z: 排序后实验3-4图2.3.2 实验3.4运行界面对于存放操作符的文本框Text3,利用Select Case语句实现相应的运算。Private Sub Text3_LostFocus()Select Case Trim(Text3)Case +Text4 = Val(Text1) + Val(Text2)-Text4 = Val(Text1) - Val(Text2)*Text4
14、 = Val(Text1) * Val(Text2)/If Val(Text2) = 0 Then分母为零,重新输入Text2 = Text2.SetFocusText4 = Val(Text1) / Val(Text2)End Select实验3-5利用计算机解决古代数学问题”鸡兔同笼问题”。即已知在同一个笼子里有总数为M只鸡和兔,鸡和兔的总脚数为N只,求鸡和兔各有多少只?鸡、兔的只数通过已知输入的M,N列出方程可解, 设鸡为x只,兔为y只,则计算公式为:但不要求出荒唐的解(如3.5只鸡、4.5只兔,或者求得的只数为负数)。因此,在Text2_LostFocus事件中要考虑下面两个条件:输入
15、的总脚数N必须是偶数,否则提示数据错误的原因,要求重新输入数据。(使用求余方法判断,即N Mod 20)图2.3.3 实验3.5运行界面 Private Sub Text2_LostFocus()Dim M%, N%, y%M = Val(Text1)N = Val(Text2)If N Mod 2 4 * M Or N =0。Dim a!, b!, c!, x1!, x2!, de!a = Text1b = Text2c = Text3de = b * b - 4 * a * ct = 2 * aIf de = 0 ThenText4 = Format(-b / t, Text5 = Format(-b / t, ElseIf de Text4 = Format(-b + Sqr(de) / t, Text5 = Format(-b - Sqr(de) / t, ) & & Format(Sqr(Abs(de) / t, iPrivate Sub Com
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1