DelPhi学习笔记6用户自定义类型_第1页
DelPhi学习笔记6用户自定义类型_第2页
DelPhi学习笔记6用户自定义类型_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用户自定义类型1枚举类型的定义 格式:Type类型标识符2格举类型的使用其中第一个元素对但枚举常量不能(标识符1,标识符2,标识符3,-,标识符m);枚举类型属于顺序类型, 枚举类型的每个元素对应一个有序的整数, 应序数0因此,枚举类型本质上是用一些枚举常量来表示一组连续的整数。 直接进行算术运算,可以进行关系运算或间接的算术运算。例:TypeColorl =( Red, Green, Blue, Yellow);【例6-1】编写一个设置文本格式的应用程序,程序的设计界面如图6-1所示。程序运行时,在编辑框中显示的文本是“轻松学习Delphi” 。程序运行时,单击【宋体】按钮,文本字体为宋体;

2、单击【隶书】按钮,文本字体为隶书; 单击【黑体】按钮,文本字体变为黑体。 图6-2是单击隶书时的运行界面。要求用枚举类型实现。轻松学习Delphi宋体:藁书.黑体部份代码:impleme ntati ontype/定义枚举类型MyFo nt = (st,ls,ht);var/定义枚举类型变量ft : MyFo nt;$R *.dfmFunction ffont(fft : MyFont): String; beginCase fft ofst : ffont :='宋体'ls : ffont := 'Comic Sa ns MS' ht : ffont :=&#

3、39;黑体';en d;end;procedure TForml.Butt on 1Click(Se nder: TObject); beginif Button1.Caption ='宋体'thenbeginft := st;Edit1.Font.Name := ffont(ft);en d;en d;procedure TForm1.Butt on 2Click(Se nder: TObject); beginif Button2.Caption ='隶书'thenbeginft := ls;Edit1.Font.Name := ffont(ft);

4、en d;en d;procedure TForm1.Butt on 3Click(Se nder: TObject); beginif Button3.Caption ='黑体'then beginft := ht;Edit1.Font.Name := ffont(ft);en d;en d;6.1.3集合类型的定义与使用1.集合类型的定义集合是具有相同性质但又可以区分开来的对象的全体。格式:Type类型标识符 =set of 其类型;例:TypeColors =( Red, Green. Blue,Yellow); /先定义一个枚举类型Color = set of Colo

5、rs; /定义一个基类型为枚举类型的集合类型Char = set of m.'q'直接定义一个基类型为子界类型的集合类型。F面的定义是错误的:typeNum_p = set of 200.400;/虽然只有 201 一个元素,但 256400这些数值超过了 2552集合类型的使用。【例6-2】编写一个判断字符串中是否有元音字母的程序,程序的设计界面如图6-3所示。程序运行时,在【输入单词】编辑框中输入一个任意单词,然后单击【判断】按钮,将 在【结果】编辑框中显示有无元音字母的文本。其中,元音字母为“a,e,i,o,u” ,程序运行界面如图6-4所示。要求用集合类型实现。6.1.

6、4记录类型的定义与使用1.记录类型的定义格式:type记录类型标识符=Record字段1:类型1 ;字段2:类型2; 字段n :类型n;en d;2.下面定义一个住院病人的记录类型,如下所示:说明这是记录类型字段1是病人的住院号,为整形数据字段2是病人的姓名,为字符串数据字段3是病人的付款情况,为布尔型数据typePatie nt = Recordp_num : In teger; p_n ame : String;p_pay : Boolean;en d;【例6-3】编写一个程序,用来输入和显示某单位员工基本信息。程序的设计界面如图6-5所示,程序运行时,单击【输入信息】按钮,用户可以输入员

7、工的基本信息,包括姓名、 职称和基本工资。单击【查看信息】按钮,可以显示刚刚输入的该单位员工的基本信息,如 图6-6所示。姓客眄称基本工資韩跑起修其9999999 张无忌教主12345G 屁华 IT 30QCOOO00输入信息查看信息impleme ntati ontypepeople In formati on = Record定义记录类型n ame : Strin g8;call : Stri ng 6;wage :ln teger;en d;varpeople :Array 1.3 ofpeople In formati on;$R *.dfmprocedure TForm1.Butt

8、on 1Click(Se nder: TObject);vark : In teger;beginfor k := 1 to 3 := InputBox('员工信息','请输入第'+IntToStr(k)+'个员工姓名',''); peoplek.call := InputBox('员工信息','请输入第'+IntToStr(k)+'个员工职称',''); peoplek.wage := StrToInt(lnputBox(&#

9、39;员工信息','请输入第'+IntToStr(k)+'个员工 基本工资','0');en d;en d;procedure TForml.Butt on 2Click(Se nder: TObject);varm : In teger;begin/在指定位置显示Canvas.TextOut(45,25,'姓名'+''+'职 称'+''+ '基本工资');for m := 1 to 3 doCan vas.TextOut(45,25 * (m+1), peo

10、plem .n ame+'' + peoplem.call +''+I ntToStr(peoplem.wage );en d;【练习题目】:寻找1100之间的全部素数编写一个寻找 1100之间的全部素数的程序,程序的设计界面如图6-11所示。程序运行时,单击【寻找素数】按钮将显示1100之间的全部素数,寻找一到一百的2 3 57111217 19222921374143475359S1 £771737983的97/这个函数专门用来判断数字是否为素数function SearchPrime (num : In teger) : Boolea n ; v

11、ari : In teger;flag : Boolea n;beginflag := true;/判断是否为素数。素数是只能由1和本身整除的。for i := 2 to num - 1 dobegin取模可以整除的话。就不是素数if(num) mod i = 0) the nbeginflag := false;break;en d;en d;if(flag = false) the nResult := false;if(flag = true) the nResult := flag;en d;procedure TForml.Butt on 1Click(Se nder: TObject);varflag : bool;i : In teger;k : In teger;begin2也是素

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论