ImageVerifierCode 换一换
格式:DOC , 页数:52 ,大小:431KB ,
资源ID:8795425      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8795425.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(第五章循环结构.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第五章循环结构.doc

1、5.1   While语句 While语句属于前测型循环结构。首先判断条件,根据条件决定是否执行循环,执行循环的最少次数为0。    其流程图如图所示。 While条件                     {条件判断}       循环体     {条件成立时所执行的语句}   5.1.1   While语句的语法 WHILE语句常用在不能预先确定重复次数的情况。   WHILE语句的语法格式: While <条件> Do [<循环体>];    说明: (1) <条件>是一个具有Boolean值的条件表达式,为循环的条件。 (2) <循环体>可以是

2、简单语句、复合语句和其他结构语句。 (3) While循环的执行过程:首先计算<条件>的值,如果<条件>为真(True),则执行Do后面的循环体,执行完后,再开始一个新的循环;如果<条件>为假(False),则终止循环,执行<循环体>后面的语句。 (4) 可以在<循环体>中的任何位置放置Break语句来强制终止While循环——随时跳出While循环。Break语句通常用于If语句之后。 (5) 可以在<循环体>中的位置放置Continue语句,在整个循环体执行完就重新判断<条件>,以决定是否开始新的循环。Continue语句通常用于If语句之后。 语义:     WHILE语句是在

3、循环体执行之前判断重复终止条件:当布尔表达式为false,跳过循环体执行WHILE语句的下一条语句;当布尔表达式值为true时,重复执行循环体,直到布尔表达式的值为false时才终止。一般来说,在循环体内应有修改布尔表达式中的变量的语句。如果布尔表达式的值在开始时就为false,则此循环体中的语句一次也不执行。循环语句中有多个语句时,必须构成复合语句。     WHILE语句逻辑功能如下图:                             5.1.2     While语句的应用 【例5-1】求累加和1+2+3+…+100  【例5-2】输入一个正整数,判断是否是素数。

4、       【例5-1】求累加和1+2+3+…+100  分析:采用累加的方法,用变量s来存放累加的和(开始为0),用变量n来存放“加数”(加到s中的数)。这里n又称为计数器,从1开始到100为止。 根据以上分析画出流程图,如图所示。 s ← 0 {累加器赋初值} n ← 1          {计数器赋初值} While n <= 100 {当计数器的值不超过100时}   s←s +n {累加} n← n+1

5、 {计数器增1} 输入 s {输出累加和} 设计步骤如下: (1)窗体界面的设计 (2)编写按钮OnClick事件代码: procedure TForm1.Button1Click(Sender: TObject); var    s,n: Integer; begin   s:= 0;   n:= 1;   While n<=100 Do   Begin     s:= s+n;     n:= n+1;   End;   Panel2.Caption := '

6、1+2+3+ ... +100 = ' + IntToStr(s); end; 程序下载 【例5-2】输入一个正整数,判断是否是素数。 分析:所谓“素数”是指除了1和该数本身,不能被任何整数整除的数。判断一个自然数(n≥3)是否素数,只要依次用2--SQRT(2)作除数去除n,若n不能被其中任何一个数整除,则n即为素数,如图所示。 根据以上分析画出流程图,如图所示 输入n I ← 2,   s ← 0 当I <=   and  s = 0       如果 n 被 l 整除     真 s ← 1 假 I ← I+1 如果s = 0  

7、   真 输出: n 是素数 假 输出:n 不是素数 设计步骤如下: (1)窗体界面的设计 (2)编写代码 按钮Button1的OnClick事件代码: procedure TForm1.Button1Click(Sender: TObject); var   N,M,I,s: integer;   F: single; Begin   for N:=1 to 50 do   begin     M:= 2*N+1;     S:= 0;     I:= 2;     F:= StrToFloat(IntToStr(M));     whi

8、le (I <= Sqrt(F)) and (S=0) do     begin       If M mod I=0 Then s:= 1                    else I:= I+1;     end;     If S=0 then Memo1.Lines.Add(inttostr(M));   end; end; 为了防止编辑框Edit1输入非法字符,编写Edit1的OnKeyPress事件代码: procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var     B:

9、Boolean; begin     B:=(Key<#8)OR(Key>#8)and(Key<#45)or(Key>#46)and(Key<#48)or(Key> #57);    if B then Key:= #0; end; 另外,编写按钮Button2的OnClick事件代码: procedure TForm1.Button2Click(Sender: TObject); begin   Close; end; 编写窗体的OnActivate事件代码: procedure TForm1.FormActivate(Sender: TObject); begin

10、   Edit1.SetFocus; end; 5.2    Repeat语句 Repeat 语句属于后测型循环结构。首先执行循环体,然后判断条件,根据条件决定是否继续执行循环,因此执行循环的最少次数为1. 其流程图如图所示。     循环体 {条件成立时所重复执行的语句} Unit1 条件 {条件不成立或成立时} 5.2.1    Repeat语句的语法 Repeat 语句的语法格式为: Repeat     [<循环体>] Unit1 <条件>; 说明: (1) <条件>是一个具有Boolean值的条

11、件表达式,为循环的条件。 (2) <循环体>可以是一条语句,也可以是多条语句。多条语句无须用Begin…End括起来,而由保留字Repeat与Unitl将其括起。 (3) Repeat循环的执行过程:首先执行<循环体>,然后计算<条件>的值,如果<条件>为假(False),则开始一个新的循环;如果<条件>为真(True),则终止循环,执行Unit1 <条件>后面的语句。 (4)可以在〈循环体〉中的任何位置放置Break语句来强制终止循环——随时跳出Repeat循环。Break语句通常用于If语句之后。 (5)可以在循环体中的任何位置放置Continue语句,在整个循环体没有执行完就重新

12、判断〈条件〉,以决定是否开始新的循环。Continue语句通常用于If语句之后。          REPEAT语句的逻辑功能图如下:                  5.2.2    Repeat语句的应用 【例5-3】输入有效数字的位数,利用下述公式计算圆周率∏的近似 值:   【例5-4】输入两个正整数,求他们的最大公约数,   【例5-3】输入有效数字的位数,利用下述公式计算圆周率∏的近似 值:     分析:首先找到公式中无穷乘积各项的规律:设第n项的分母为Pn ,则地第n+1项的分母为Pn+1 =Sqrt(2+Pn )。若设前 n项的乘积为

13、Sn,则前n项乘积为Sn+1=2 Sn/ Pn+1 。 据此,画出流程图所示。 输入小数点后有效数字位数k S ← 2,  p ← 0      直到∣t-S∣<0.1 t ← S p ← Sqrt(2+p) S←2*S/p   输出圆周率 Pi = S             设计步骤: (1)应用程序用户界面的建立与属性设置如下图。 (2)、编写程序代码: 根据流程图,可以写出编辑框Edit1的OnKeyPress事件代码为: procedure TForm1.Edit1KeyPress(Sender: TObject; var

14、Key: Char); var   k : integer;   p,t,s,e : Double;   m: string; begin   if key = #13 then   begin     k:= StrToInt(Edit1.Text);     p:= 0; s:= 2;     e:= Exp(k*Ln(0.1));     repeat       t:= s;       p:= Sqrt(2+p);       s:= s*2/p;     Until Abs(t-s) < e;     m:= Format('%20.18f', [s

15、]);     Edit2.Text:= Copy(m,0,k+2);     Edit1.SelStart:= 0;     Edit1.SelLength:= Length(Edit1.Text);     Edit1.SetFocus;   end; end; 程序下载 【例5-4】输入两个正整数,求他们的最大公约数, 如图所示。 分析:求最大公约数可以用“辗转相除法”,方法如下:  (1) 以大数m做被除数,小数n做除数,相初后余数为r。  (2) 若r≠0,则m←n,n←r,继续相除得到新的r。若仍有r≠0,则重复此过程,直到r=0为止。  (3

16、) 最后的n就是最大公约数。 根据这个分析画出流程图如下: 输入m, n 大数放入m,小数放入n     直到r = 0 求 m/n 的余数r m ← n n ← r    输出 m {输出最大公约数}           (1)应用程序用户界面的建立与属性设置如下图。   (2)、编写程序代码: 按钮Button1的OnClick事件代码: procedure TForm1.Button1Click(Sender: TObject); var   M,N,T,R: LongWord;   S1,

17、 S2: string; begin   S1:= InputBox('请输入', '第1个正整数:', '1');   if S1 = '' then S1:= '1';   M:= StrToInt(S1);   S2:= InputBox('请输入', '第2个正整数:', '1');   If S2 = '' then S2:= '1';   N:= StrToInt(S2);   If M <= N then   begin     T:= M; M:= N; N:= T;   end;   Repeat     R:=M mod N;     M:= N

18、     N:= R;   Until R = 0;   Label1.Caption:= format('%s与%s的最大公约数是:'+#13+#13 +    '%d',[S1,S2,M]); end; 5.3    For语句 在不知道需要执行多少次循环时,应该用While 或Repeat循环。但是,若知道要执行多少次循环时,则最好使用For循环结构。 For循环要使用一个循环变量,每重复一次循环之后,循环变量的值就会自动增加或者减少。  其流程图如图所示。 循环变量 从 初值 到终值                  {循环控制器}        循环体 

19、                 {循环体 }   5.3.1    For语句的语法 For循环语句有两种形式:      For <循环变量>:= <初值> TO <终值> DO <循环体>;      For <循环变量>:= <初值> DOWNTO <终值> DO <循环体>; 说明: (1) 〈循环变量〉为必要参数,用做循环计数器,只能是顺序类型。 (2) 〈初值〉和<终值>表示〈循环变量〉的初值和终值,可以是表达式,但应与〈循环变量〉的类型相同,若为表达式,则在进入循环之前已被计算确定,在循环体中改变初值或终值表达式中变量的值,并不影响循环的次数。 (3) T

20、o表示计数器递增,DownTo表示计数器递减。 (4) 〈循环体〉可以是简单语句,复合语句和其他结构语句。 (5) For循环的执行过程:首先判断循环变量的值是否“超过”终值,若已超过则跳出循环执行〈循环体〉后的语句;若未超过则执行Do后的〈循环体〉,然后循环变量自动增量并开始一个新的循环。 (6) 可以在〈循环体〉中的任何位置放置Break语句来强制终止循环——随时跳出For循环。Break语句通常用于If语句之后。 (7) 可以在循环体中的任何位置放置Continue语句,在整个循环体没有执行完就重新判断〈条件〉,以决定是否开始新的循环。Continue语句通常放于If语句之后。 

21、       我们用FOR语句的逻辑功能图来说明TO,DOWNTO的执行步骤。如下图: 5.3.2   For语句的应用 【例5-5】:利用循环显示4000以内所有能被97整除的自然数。 【例5-6】: 斐波那契(Fibonacci)数列问题。   【例5-5】:利用循环显示4000以内所有能被97整除的自然数。 其流程图为: n从 1 开始  到 4000     如果 n 被 97 整除   真 输出  n 设计步骤: (1)应用程序用户界面的建立与属性设置如下图。 (2) 程序设计 编写按钮Button1的OnClic

22、k事件代码: procedure TForm1.Button1Click(Sender: TObject); var   N: integer; begin   for N:= 1 To 4000 do   If N mod 97 =0 then      Memo1.Lines.Add( IntToStr(N)); end; 另外,编写按钮Button2的OnClick事件代码: procedure TForm1.Button2Click(Sender: TObject); begin      Close; end; 程序下载 【例5-6】: 斐波那

23、契(Fibonacci)数列问题。 Fibonacci数列问题来源于一个古老的有关兔子繁殖的问题:假设在第1个月时有一对小兔子,第2个月时成为大兔子,第3个月时成为老兔子,并生出一对小兔子(一对老,一对小)。 第4个月时成为老兔子又生出一对小兔子,上个月的小兔子变成大兔子(一对老,一对大,一对小)。第5个月时上个月的大兔子变成老兔子,上个月的小兔子变成大兔子,两对老兔子生出两对小兔子(两对老,一对中,两对小)…… 这样,各月的兔子对数为:1,1,2,3,5,8,…… 这就是Fibonacci数列,其中第n项的计算公式为: 为了避免定义许多的变量,采用“迭代”的算法:

24、即只定义少量的变量,如f1,f2,f3,在每一次的循环计算中它们代表不同的数,不断以新的值来取代原有的值。 其流程图为: n  ← 15 f1 ←  1;  f2 ←  1 k 从 3 到 n   f3 ←  f1+ f2 输出 f3 f1 ← f2 f2 ←  f3 设计步骤: (1) 应用程序用户界面的建立与属性设置如下图。 (2)、编写程序代码: 按钮Button1的OnClick事件代码: procedure TForm1.Button1Click(Sender: TObject); var   K,F1,F2,F3:inte

25、ger; begin   Memo1.Lines.Clear;   Memo1.Lines.Add('1 1');   Memo1.Lines.Add('2 1');   F1:= 1;   F2:= 1;   for K:= 3 To 15 do   begin     F3:= F1+F2;     Memo1.Lines.Add(Format('%2d %3d', [K,F3]));     F1:= F2;     F2:= F3;   end; end;  5.4 循环的嵌套  5.5   列表框和组合框 列表框(ListBox)、组合框(Comb

26、oBox)和备注框(Memo)都可用来处理多行文本的输入与输出。与备注框(Memo)不同的是,列表框和组合框为用户提供了更为方便的多项选择和信息输入。      列表框和组合框二者的不同在于:组合框不仅提供选项供用户选择,而且还允许用户通过键盘输入数据,相当于编辑框EditBox和列表框ListBox的结合。 5.5.1   列表框ListBox控件 1、列表框ListBox的常用属性 2、列表框ListBox的使用 3、选择和移动数据 【例5-9】:将【例5-7】中的备注框改为列表框: 【例5-11】:小学生做加减法的算术练习程序。计算机连续到随机到给出两位数的加减法算术题

27、要求学生回答,答对的打“√”,答错的打“╳”。将作过的题目存放在列表框中备查,并随机地给出答题的正确率 【例5-12】:利用循环结构和列表框控件,设计的“选项移动”窗体   1、列表框ListBox的常用属性      当列表框不能同时显示所有数据时,将自动加上一个垂直的滚动条,是用户可以上下滚动列表框,以查阅所有的选项。列表框的主要属性见表: 属性名  属性类型 意义 Items TStrings 以行为单位,列表框中选项的集合,组合框也有 ItemsIndex Integer 选项的索引值,组合框夜也有 Sorted Boolean  决定选项是否排序

28、组合框也有 Columns Integer 决定列表框的列数,列表框独有 MultiSelect Boolean  是否可以选择多项,列表框独有 SelCount Integer 表示被选中项的数目,只读,列表框独有 Selected  Boolean  用来设置或返回某选项是否被选中 说明 在代码中可以调用TStrings类的相应方法来处理Items 中的数据: ListBox1.Lines.Add(‘增加一个新行。’); //在最后增加一个新行 ListBox1.Lines.Delete(5);                      //删除第六行

29、  ListBox1.Lines.Insert(3,’插入一行’)  //在第四行处插入一个新行 ListBox1.Lines.Move(2,4);                //将第三行移至第五行  2、列表框ListBox的使用 【例5-9】:将【例5-7】中的备注框改为列表框: 设计步骤: (1) 建立应用程序用户界面。 选择“新建”工程,进入窗体设计器,在窗体中增加1个列表框。 (2) 程序设计 编写按钮Button1的OnClick事件代码: procedure TForm1.Button1Click(Sender: TObject);

30、 var   N,M,I,s: integer;   F: single; Begin   for N:=1 to 50 do   begin     M:= 2*N+1;     S:= 0;     I:= 2;     F:= StrToFloat(IntToStr(M));     while (I <= Sqrt(F)) and (S=0) do     begin       If M mod I=0 Then s:= 1                    else I:= I+1;     end;     If S=0 then ListBo

31、x1.Items.Add(inttostr(M));   end; end; 程序下载 【例5-11】:小学生做加减法的算术练习程序。计算机连续到随机到给出两位数的加减法算术题,要求学生回答,答对的打“√”,答错的打“╳”。将作过的题目存放在列表框中备查,并随机地给出答题的正确率 分析:随机函数Random(n)返回一个0--n之间的随机实数为了生成某个范围内的随机整数,可以使用以下公式: Trunc(Random(最大值 - 最小值 + 1)+最小值) (1) 建立应用程序用户界面。 选择“新建”工程,进入窗体设计器,在窗体中做如下设计。 (2) 程序设计

32、 出题部分由窗体的激活(OnActive)事件代码: procedure TForm1.FormActivate(Sender: TObject); var   A,B,P,T: integer; begin   Randomize;   A:= Trunc(10+Random(90));   B:= Trunc(10+Random(90));   P:= Trunc(Random(2));   if P = 0 then   begin     Edit1.Text:= Format('%3d + %3d = ', [A,B]);     Edit1.Tag:= A

33、B;   end   else Begin     if A < B then     begin       T:=A; A:=B; B:=T;     end;     Edit1.Text:= format('%3d - %3d = ', [A,B]);     Edit1.Tag:= A-B;   end;   Edit2.Selstart:= 0;   Edit2.Text:= '';   Edit2.SetFocus; end; 答题部分由编辑框Edit2的按键(OnKeyPress)事件代码: procedure TForm1.Edit2KeyP

34、ress(Sender: TObject; var Key: Char); var   X: single;   S: string; begin   if Key=#13 then   begin     Form1.Tag:= Form1.Tag+1;     if StrToInt(Edit2.Text) = Edit1.Tag then     begin       ListBox1.Items.Insert(0, format(Edit1.Text+'%3s √',[Edit2.TExt]));       Listbox1.Tag:=ListBox1.Tag

35、1;     end     else       ListBox1.Items.Insert(0,format(Edit1.Text+'%3s ╳', [Edit2.TExt]));     Form1.FormActivate(Sender);     X:= ListBox1.Tag*100/(Form1.Tag);     S:= '共做%d题'+#13+#13+#13+'正确率为:'+#13+#13+'%f%%';     Label1.Caption:= Format(S,[Form1.Tag,X]);    end; end; 编写“清除”按钮Butto

36、n1的OnClick事件代码: procedure TForm1.Button1Click(Sender: TObject); begin   Form1.Tag:= 0;   ListBox1.Tag:= 0;   ListBox1.clear;   Label1.Caption:= Format(#13+'start again!'#13+#13+#13+'正确率为:'+                    #13+#13+'%f%%', [0.00]);   Edit2.SetFocus; end; 程序下载 3、选择和移动数据 【例5-12】:利用循环

37、结构和列表框控件,设计的“选项移动”窗体。     所谓“选项移动”窗体是指由两个列表框和四个按钮构成的界面,在程序中常见到此类窗口 设计步骤: (1) 建立应用程序用户界面。 选择“新建”工程,进入窗体设计器,设计如下窗体。 (2) 程序设计 编写“>”按钮Button1的OnClick事件代码: procedure TForm1.Button1Click(Sender: TObject); var   i: integer; begin   i:= 0;   while i < ListBox1.Items.Count do   begin

38、    if listbox1.selected[i] then     begin       Listbox2.Items.Add(ListBox1.Items[i]);       Listbox1.Items.Delete(i);     end     else       i:= i+1;   end; end; 编写“>>”按钮Button2的OnClick事件代码: procedure TForm1.Button2Click(Sender: TObject); var   i: integer; begin   for i:= 0 to Listb

39、ox1.Items.Count-1 do     Listbox2.Items.Add(Listbox1.Items[i]);   Listbox1.Items.clear; end; 编写“<”按钮Button3的OnClick事件代码: procedure TForm1.Button3Click(Sender: TObject); var   i: integer; begin   i:= 0;   while i < ListBox2.Items.Count do   begin     if listbox2.selected[i] then     beg

40、in       Listbox1.Items.Add(ListBox2.Items[i]);       Listbox2.Items.Delete(i);     end     else       i:= i+1;   end; end; 编写“<<”按钮Button4的OnClick事件代码: procedure TForm1.Button4Click(Sender: TObject); var   i: integer; begin   for i:= 0 to Listbox2.Items.Count-1 do     Listbox1.Items.

41、Add(Listbox2.Items[i]);   Listbox2.Items.clear; end; 5.5.2  组合框ComboBox控件 组合框(ComboBox)同时具有编辑框Edit和列表框ListBox两者的功能,用户可以通过键盘输入文本数据,或者选择列表中的项目  1、组合框ComboBox控件特有的属性   2 、下拉列表框  3、 简单组合框  4、 下拉组合框 【例5-13】:修改【例5-11】,将例5-11算术练习中的列表框改为组合框(下拉列表框)。 【例5-14】:“简易抽奖机”,在组合框中输入号码,按“开始”按钮可以得到中奖号码。 【例5-1

42、5】:在【例5-14】中使用下拉组合框,可以更加节省空间。     1、组合框ComboBox控件特有的属性 其主要特有的属性见表: 属性名  属性类型 意义 DropDownCount  Integer 组合框的下拉列表所能显示选项的最大个数  Seltext String 用来存储显示于编辑区中被选中的内容 Style   决定组合框的风格  其中:Style属性的取值 (1) csDropDownList: 下拉列表框, (2) cSDropDown:下拉组合框, 将文本框和下拉列表框组合在一起,用户可以通过单击向下按钮来显示可滚动的选项列表,还可以

43、输入列表中所没有的新项目 (3)csSimple:简单组合框, 将文本框和下拉列表框简单地组合在一起   2 、下拉列表框    下拉列表框与其说是组合框,还不如说是一种列表框。 和列表框一样,为用户提供了一些选项和信息的列表。在列表框中,任何时候都能看到多个选项,而在下拉列表框中,一般只能看到一个选项,用户可以通过按钮来显示可滚动的下拉列表框。它的好处是能比通常的列表框少占地方。 【例5-13】:修改【例5-11】,将例5-11算术练习中的列表框改为组合框(下拉列表框)。 设计要求: 设计步骤: (1) 修改应用程序用户界面与属性设置。修改例5-11,在窗体

44、中增加一个ComboBox1,如下图。 其中对象属性的设置见下表: 对象 属性 属性值 说明 ComboBox1 Style csDropDownList 下拉列表框 DropDownCount   7 下拉列表框的项数   (2) 修改程序代码: 修改答题部分编辑框Edit2的按键(OnKeyPress)事件代码: procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); var      X: single;     S: string; begin   if Key=#1

45、3 then   begin     Form1.Tag:= Form1.Tag+1;     if StrToInt(Edit2.Text) = Edit1.Tag then     begin       ComboBox1.Items.Insert(0,format(Edit1.Text+'%3s √',[Edit2.TExt]));       ComboBox1.Tag:= ComboBox1.Tag+1;     end     else       ComboBox1.Items.Insert(0,format(Edit1.Text+'%3s ╳',[Edit2

46、TExt]));     ComboBox1.ItemIndex:= 0;     Form1.FormActivate(Sender);     X:= ComboBox1.Tag*100/(Form1.Tag);     S:= '共做%d题'+#13+#13+#13+'正确率为:'+#13+#13+'%f%%';     Label1.Caption:= Format(S,[Form1.Tag,X]);   end; end; 修改“清除”按钮Button1的OnClick事件代码: procedure TForm1.Button1Click(Sender: T

47、Object); begin   Form1.Tag:= 0;   ComboBox1.Tag:= 0;   ComboBox1.clear;   Label1.Caption:= Format(#13+'start again!'#13+#13+#13+'正确率为:'+                    #13+#13+'%f%%', [0.00]);   Edit2.SetFocus; end; 程序下载 3、 简单组合框     简单组合框中的列表框总是被显示出来,上面为一个可供输入的文本框,下面为一个普通的列表框,这与列表框相差不多,只多了一个文本框可供

48、输入。 【例5-14】:“简易抽奖机”,在组合框中输入号码,按“开始”按钮可以得到中奖号码。 (1) 建立应用程序用户界面。 选择“新建”工程,进入窗体设计器,在窗体中做如下设计。将ComboBox1的Style属性改为:csSimple。 (2) 程序设计 编写组合框ComboBox1的按键(OnKeyPress)事件代码: procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin   if (Key = #13) and (Combobox1.Text <> '')

49、 then   begin     Combobox1.Items.Insert(0, Combobox1.Text);     Combobox1.SelStart:= 0;     Combobox1.Text:= '';   end;   if Key=#27 then     If Combobox1.ItemIndex <> -1 then        Combobox1.Items.Delete(Combobox1.ItemIndex); end; 按钮Button1的OnClick事件代码,使之可以随机到抽取奖号: procedure TForm1.But

50、ton1Click(Sender: TObject); var   N,A: word; begin   Randomize;   N:= Combobox1.Items.Count;   A:= Trunc(Random(n));   Combobox1.ItemIndex:= A;   Showmessage('中奖的号码是:'+#13+Combobox1.Text); end;  程序下载 4、 下拉组合框       下拉组合框看起来像是在标准的文本框右边加了个下拉箭头,用鼠标单击该箭头就在文本框下打开一个列表。用户从中选择一个选项,该选项就会进入文本框

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服