ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:564.77KB ,
资源ID:9780988      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通过C++Builder学习C++面向对象程序设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

通过C++Builder学习C++面向对象程序设计.docx

1、通过C+Builder学习C+面向对象程序设计通过C+Builder学习C+面向对象程序设计简单算术自测程序一. 程序设计的目标用户界面设计目标 具有两个以上的窗体(见图 1与图 2) 具有下拉菜单、弹出式菜单、工具栏、状态栏等典型Windows界面(见图 3)图 1 窗体1(主窗体)界面图 2 窗体2(参数设置窗体)界面 a) 两个下拉菜单 b) 弹出式菜单 c)工具栏 d) 状态栏图 3 主菜单、弹出式菜单、工具栏与状态栏1. 程序功能设计目标 可进行加、减、乘、除等运算 可设定运算类型 可设定运算数的大小 可显示统计信息及得分情况 可以记录所做过的全部题目及显示每道题的评判结果 可播放/

2、停止背景音乐二. C+与C+Builder简介C+是一种面向对象的程序设计语言,它使得程序的各个模块的独立性更强,程序的可读性、可移植性、可扩充性也更强,程序代码的结构更加合理。与C相比,C+提出了一些更为深入的概念,尤其是它所支持的面向对象的概念为程序员提供了一种与传统结构程序设计完全不同的思维方式和编程方法。可视化(visual)程序设计是一种全新的程序设计方法,它全面采用面向对象的程序设计技术,使用“事件驱动”机制进行程序设计。利用可视化开发工具可以快速、高效地开发应用程序。可视化的开发工具有很多,如Microsoft公司推出的Visual Studio软件系列,Inprise(Borl

3、and)公司的Delphi、C+Builder系列等。其中,C+Builder是这些工具中的佼佼者,是基于C+语言的快速应用程序开发(Rapid Application Development,RAD)工具。C+Builder充分利用已经发展成熟的可视化组件库(Visual Component Library,VCL),吸收Borland C+优秀编译器的诸多优点,结合先进的基于组件的程序设计技术,已成为一个非常成熟的可视化应用程序开发工具,可以快速、高效地开发出基于Windows环境的各类程序,尤其在数据库应用和网络应用方面,C+Builder更是一个十分理想的软件开发平台。三. 使用C+

4、Builder开发基于Windows的面向对象的可视化用户界面1. 启动C+ Builder6启动C+ Builder6后的初始开发界面如图 4所示:图 4 C+ Builder6初始开发界面它由五部分组成:上方的包含下拉菜单、工具栏及组件选项卡在内的主窗口;左侧上部的对象列表树(Object TreeView)窗口;左侧下部的对象检查器(Object Inspector,包含属性面板和事件面板)窗口;右侧的用户窗体界面;后面的含有类游览器的代码编辑器窗口(这个窗口中同时打开了多个文件,比如以“.h”为扩展名的头文件和以“.cpp”为扩展名的程序源文件等)。2. 关于C+中的类与对象为了解释C

5、+的OOP编程中关于“类”、“对象”、“属性”、“方法”、“事件”等相关概念,先来看一下代码编辑窗口中头文件Unit1.h的内容,它现在如图 5所示:图 5 C+ Builder6代码编辑器(头文件Unit1.h内容)由图 5可以看出,C+Builder在Unit1.h中创建了一个窗体类(class),其类名为TForm1,它由TForm类继承而来(TForm类是TForm1类的基类,两者之间有一个冒号), “继承”是C+语言的特性之一,许多类都可能由其基类继承而来。类把数据(成员变量)和操作数据的函数(成员函数)封装在一起。就现在而言,TForm1类还没有成员变量,仅有一个与类名相同的构造成

6、员函数。随着程序设计的进行,稍后可以看到TForm1类的变化。知道了类及其定义之后,再来看一下什么是对象。其实对象(Object)就是类的一个实例(Instance)。现在需要观察代码编辑窗口中程序源文件Unit1.cpp的内容,此时如图 6所示:图 6 C+生成类的实例在图 6所示的源文件中,用“TForm1 *Form1;”语句生成了TForm1类的一个实例(即对象),这个对象就是可视化的窗体,它是C+Builder为一个新的工程自动生成的一个对象(主窗体)。类与对象的关系相当于图纸和实物的关系,也可以说是抽象与具体的关系。例如,要制造一台汽车,首先要进行设计,以生成图纸,然后才能根据图纸

7、生产出汽车。这里说的图纸就是类,而汽车就是对象。对象是现实世界中的一个实体,其特性是:(1) 每一个对象都必须有一个名字,以区别于其它对象;(2) 用属性(数据)来描述对象的特征;(3) 有一组操作(对数据的操作处理),每一个操作决定对象的一种行为。综上所述,对象的两个要素是属性和行为。属性是对象的特征,通过定义成员变量来描述;行为是对象的动作,通过定义成员函数完成。C+面向对象编程的思想就是将对象的属性和行为“封装”在一起。所以说,类是面向对象编程的程序基本单位。在可视化语言编程环境中,用户界面上出现的元素(例如命令按钮、文本编辑框和列表框等组件,组件也称控件),都是对象。组件是C+Buil

8、der程序设计的核心,C+Builder已经设计好了各种对象,程序员可以直接使用这些组件对象,也可以使用第三方开发人员提供的组件对象。3. 建立编辑框、标签和按钮控件对象现在用C+Builder的VCL(即可视化的组件库)在窗体对象(窗体对象是个容器对象)内生成几个新的对象。从组件选项卡的“Standard”页中,分别选择“Edit”控件、“Label”控件和“Button”控件,在窗体上分别放置三个编辑框、两个标签和一个按钮控件,用户界面如图 7所示(控件的位置和大小可直接用鼠标拖动操作进行设置):图 7 放置编辑框、标签和按钮控件后的用户界面如此一来,就建立了六个对象(一个控件就是一个对象

9、)。4. 修改对象的属性每个对象都有属性。属性是对象的性质或是描述对象的数据,用于定义对象的特征。改变对象的属性,便可控制其在程序中的作用。对象有哪些属性,每个属性是什么含义,可以参考C+Builder的帮助系统,那里有非常详细的说明。对象的属性可以进行设置和修改。几乎所有的属性(例如,影响一个组件在运行时是否可见Visible、对象的名称Name、文本编辑框的内容Text、标题Caption、字体Font等属性)可以在程序设计时通过属性面板来定义和修改,但也可在程序运行时通过编写代码来设置和修改(Name属性除外)。按表 1所给内容,通过属性面板修改上述六个控件的属性(仅修改表格中第47列所

10、给出的属性):表 1 编辑框、标签和按钮的属性控件所属的选项卡默认控件名控件Name属性Text属性Caption属性TabOrder属性备注StandardEdit1编辑框n1(空)“默认控件名”后的数字可能不完全相同StandardEdit2编辑框n2(空)StandardEdit3编辑框n(空)0StandardLabel1标签op+StandardLabel2标签(不变)=StandardButton1按钮done查看成绩修改后的用户界面如图 8所示(可以通过修改Font属性获得满意的字体、字号、颜色等):图 8 修改各控件属性后的用户界面此时,代码编辑器窗口的内容自动变成图 9所示的

11、内容:图 9 修改各控件属性后的代码编辑器窗口内容由图 9可以看出,类浏览器和代码窗口里的头文件同时显示了TForm1类的六个数据成员(每个数据成员名即为相应控件的Name属性的值)。5. 建立组框、带标签的编辑框控件对象按照表 2在窗体上添加一个组框控件并设置属性:表 2 组框控件的属性控件所属的选项卡默认控件名控件Name属性Enabled属性Caption属性StandardGroupBox1组框false统计信息按照表 3在组框控件内添加三个带标签的编辑框控件并设置属性:表 3 带标签的编辑框属性控件所属的选项卡默认控件名控件Name属性EditLabel/Caption属性Label

12、Position属性AdditionalLabeledEdit1带标签的编辑框nRight正确lpLeftAdditionalLabeledEdit2带标签的编辑框nWrong错误lpLeftAdditionalLabeledEdit3带标签的编辑框Scores得分lpLeft此时的用户界面如图 10所示:图 10 放置组框、带标签的编辑框控件并修改各控件属性后的用户界面6. 建立标签与多行文本框控件对象按照表 4在窗体上添加一个标签控件并设置属性:表 4 标签属性控件所属的选项卡默认控件名控件Name属性Enabled属性Caption属性StandardLabel1标签评判结果按照表 5在

13、窗体上添加一个多行文本框控件并设置属性:表 5 多行文本框属性控件所属的选项卡默认控件名控件Name属性Lines属性ScrollBars属性StandardMemo1多行文本框(空)ssVertical此时的用户界面如图 11所示:图 11 放置标签、多行文本框控件并修改各控件属性后的用户界面7. 建立带图片的按钮、状态栏控件对象按照表 6在窗体上添加两个带图片的按钮控件并设置属性:表 6 带图片的按钮控件属性控件所属的选项卡默认控件名控件Name属性Kind属性Caption属性AdditionalBitBtn1带图片的按钮ReTrybkRetry从头再来AdditionalBitBtn2

14、带图片的按钮ExitbkIgnore不玩了按照表 7在窗体上添加一个状态栏控件并设置属性:表 7 状态栏控件属性控件所属的选项卡默认控件名控件NameSimplePanelSimpleText备注Win32StatusBar1状态栏(不变)true加减乘除随机出题状态栏会自动布置在窗体下方此时的用户界面如图 12所示:图 12 放置图片按钮、状态栏控件并修改各控件属性后的用户界面8. 保存工程中的的所有文件并运行程序点击C+Builder主工具栏上的“Save All”按钮,保存工程文件和窗体文件到指定的文件夹下。(这里应注意:所有的文件都应保存在同一个文件夹下)可以试着运行一下现在所设计的程

15、序。点击C+Builder主工具栏上的Run按钮,程序经过编译后自动生成EXE文件,并且立即运行,所看到的程序界面应和所设计的界面一致,此即“所见即所得”。如果打开工程所在文件夹,可以看到里边有许多文件,其中.bpr是工程项目文件,.h是头文件,.cpp是程序源文件,.dfm是窗体定义文件,.ddp是Diagram图文件,.res是资源文件,.tds是外部调试符号表文件,.obj是目标文件,.exe是可执行文件,. *是前面所述多种文件的备份文件。9. 建立媒体播放器、主菜单、弹出式菜单、工具栏、加速按钮控件对象终止程序的运行,回到设计环境。按照表 8在窗体上添加一个媒体播放器控件并设置属性:

16、表 8 媒体播放器控件属性控件所属的选项卡默认控件名控件Visible属性FileName属性SystemMediaPlayer1媒体播放器false献给爱丽丝.mid备注事先应将“献给爱丽丝.mid”音乐文件拷贝到程序所在的文件夹下下面制作主菜单(下拉菜单)。按照表 9在窗体上添加一个主菜单控件并设置属性:表 9 主菜单控件属性控件所属的选项卡默认控件名控件Name属性Items属性备注StandardMainMenu1主菜单(不变)(点击该属性后面的相应按钮,会出现专门的菜单设计界面,根据要求进行菜单的设计)主菜单会自动显示在窗体界面上小技巧:菜单项之间的横线也算一个菜单项,制作方法是将其

17、Caption属性设置为“-”即可。图 3a所示下拉菜单中的各菜单项的Name与Caption属性如表 10所示:表 10 主菜单各菜单项属性菜单菜单项Name属性菜单项Caption属性菜单项RadioItem属性运算类型m1加法truem2减法truem3乘法truem4除法truem5随机true系统Option运算参数设置falseExit3结束程序false把运算类型菜单中的五个菜单项的RadioItem属性值都设为true,会使它们有互斥效果,就像一组单选按钮一样。下面制作弹出式菜单。按照表 11在窗体上添加一个弹出式菜单控件并设置属性:表 11 弹出式菜单属性控件所属的选项卡默认

18、控件名控件Name属性Items属性StandardPopupMenu1弹出式菜单(不变)(与主菜单的制作方法相同)图3b所示弹出式菜单中的菜单项的Name与Caption属性如表 12所示:表 12 弹出式菜单中的菜单项属性菜单项Name属性菜单项Caption属性Exit2退出程序下面制作工具栏。按照表 13在窗体上添加一个工具栏控件并设置属性:表 13 工具栏控件属性控件所属的选项卡默认控件名控件Name属性备注Win32ToolBar1工具栏(不变)工具栏会自动布置在窗体上方按照表 14在工具栏上添加六个加速按钮控件并设置属性:表 14 加速按钮控件属性控件所属的选项卡默认控件名控件N

19、ame属性Glyph属性AdditionalSpeedButton1加速按钮(不变)Mp3.bmpAdditionalSpeedButton2-6加速按钮备注事先应将“mp3.bmp”位图文件拷贝到程序所在的文件夹下最后,将窗体对象的Caption属性设置为“简单算术自测程序”。再次保存所有文件。完成后的窗体用户界面如图 13所示:图 13 放置媒体播放器、主菜单、弹出式菜单、工具栏和加速按钮控件并修改各控件属性后的用户界面此时,代码编辑器窗口的内容如图 14所示:图 14 完成所有控件布局及属性设置后的代码编辑器窗口10. 生成窗体2以上完成了窗体1(主窗体)用户界面部分的设计,下面制作窗体

20、2(参数设置窗体)。点击C+Builder6主工具栏上的“New Form”按钮,这时会自动出现一个新的窗体Form2(同时产生Unit2.h和Unit2.cpp两个文件)。小技巧:以后如果想要查看并修改某个窗体,可点击C+Builder6主工具栏上的“View Form”按钮进行选择。修改窗体2的“Caption”属性值为“运算参数设置”。11. 建立标签、带图片的按钮、旋转编辑器控件对象在窗体2上放置四个标签和一个带图片的按钮控件,并按图 2设置其相关属性(OK按钮的Name属性设置为SetDone)。按照表 15在窗体2上放置四个旋转编辑器控件并设置属性:表 15 旋转编辑器控件属性控件

21、所属的选项卡默认控件名控件MinValue属性MaxValue属性Value属性SamplesCSpinEdit1旋转编辑器250(用默认值)SamplesCSpinEdit2旋转编辑器250SamplesCSpinEdit3旋转编辑器220SamplesCSpinEdit4旋转编辑器10400完成设置后的窗体2如图 15所示:图 15 完成所有控件布局及属性设置后的窗体2点击C+Builder主工具栏上的“Save All”按钮,保存工程文件和两个窗体文件。以上完成了程序的用户界面部分的设计。四. 编写程序代码前面曾经说过,对象的两个要素是属性和行为,而到此为止所做的全部工作也仅仅是在用属性

22、来描述对象的外部特征,只有通过编写代码才能规定对象的行为。下面编写程序代码。1. 声明TForm1类的私有成员变量在代码编辑器窗口中的Unit1.h头文件(窗体1的头文件)中,找到“private:”这行代码,在其下方添加TForm1类的私有成员变量,这些私有成员变量将只可以被该类的成员函数访问: /声明TForm1类的私有成员变量 int opType; /运算类型,1-加法,2-减法,.,5-随机 int op1,op2,answer,right; /两个运算数、答案和正确答案 int correct,total; /答对的题目数量与答题总数 int AddMax,SubMax,Multi

23、Max,DivMax; /四种运算数的最大值(出多少以内的运算题)小技巧:为类添加成员变量,也可以这样操作:在类浏览器窗口中单击鼠标右键,在弹出的快捷菜单中选择“New Field”,随后可根据对话框进行操作。但用这种方法进行操作,一次只能添加一个成员变量。在类浏览器窗口中,展开TForm1前面的“+”号,可以看到多行与灰色图标,图标上若有一把锁,则表明这个成员变量或成员函数是“私有”的,否则就是“公有”的。由于刚才所添加的成员变量全部是私有的,所以可以看到它们前面的图标上都带有一把锁。(如果看不到,则不用管它。)2. 包含必需的头文件在代码编辑器窗口中的Unit1.cpp文件(窗体1的程序源

24、文件)中,找到#include Unit1.h这行代码,在其下方添加包含三个头文件的宏命令:#include Unit2.h /需要调用第2个窗体#include stdlib.h /产生随机数头文件#include math.h /数学运算头文件3. 为TForm1类添加成员函数(方法)对象的方法(Method)是让对象实施一个动作或产生一个行为的途径,即方法告诉对象应处理的事情。每一个对象都包含对数据进行操作的代码段,这段代码就是对象能够执行的一个操作,即方法。例如,列表框有AddItem、Removeltem和Clear等方法来维护其列表中的内容。下面为TForm1类添加几个成员函数(成

25、员函数即类的方法Method)。在类浏览器窗口的TForm1上面单击鼠标右键,在弹出的快捷菜单中选择“New Method”菜单项,会弹出下面的“Add Method”对话框,如图 16所示:图 16 Add Method对话框在Method Name后的文本框中,输入“Add”,在Function Result后的下拉列表框中挑选“void”(这表明函数不返回值),然后点击“OK”按钮,代码窗口中将自动出现以下几行代码:void TForm1:Add() /TODO: Add your source code here在注释处添加下面加粗显示的四行程序代码,结果如下所示:void TForm

26、1:Add() /产生两个加数并求和的成员函数 this-op1=2+rand()%(this-AddMax-2) ; /产生第一个随机数并保存在相应的成员变量中 this-op2=2+rand()%(this-AddMax-2) ; /产生第二个随机数并保存在相应的成员变量中 this-right = this-op1 + this-op2; /运算并保存正确答案 op-Caption=+; /在窗体上显示相应的运算符号以上程序代码的作用在每行后都有详细说明,不再赘述。简单说一下代码中访问成员变量和对象的属性的书写格式。类的成员函数可以访问类的私有成员变量,代码书写格式是:类实例名-成员变量

27、名,例如上面代码中this-right。在C+中,this是一个指针,this指针存在于类的成员函数中,它指向被调用函数所在的类实例的地址,也就是TForm1类的实例Form1的地址。因此,this-right也可以写成Form1-right,当然,如果只写right也是可以的。由于在C+Builder中,所有的对象都被声明成指针类型的,所以访问对象的属性的代码格式是:对象名-属性,例如op-Caption。打开Unit1.h头文件,可以看到如下的声明语句:public: / User declarations _fastcall TForm1(TComponent* Owner); void

28、 Add();这说明,所添加的Add成员函数是“公有”的。另外,在类浏览器窗口中,也可看到相应的项。蓝色图标表示这是成员函数,而非成员变量。显然,成员函数一旦被执行,对象也就有了“行为”。以上完成了为TForm1类添加Add成员函数。用同样的方法为TForm1类添加下面几个成员函数:void TForm1:Sub() /产生出减法题所需的被减数和减数 this-op1=2+rand()%(this-SubMax-2) ; this-op2=2+rand()%(this-SubMax-2) ; if(this-op1 op2) short int t=this-op1; this-op1=thi

29、s-op2; this-op2=t; /保证被减数大于减数 this-right = this-op1 - this-op2; op-Caption=-;void TForm1:Multi() /产生出乘法题需要的乘数与被乘数 this-op1=2+rand()%(this-MultiMax-2) ; this-op2=2+rand()%(this-MultiMax-2) ; this-right = this-op1 * this-op2; op-Caption=;void TForm1:Div() /产生出除法题所需要的被除数与除数 this-op1=2+rand()%int(sqrt(this-DivMax)-2) ;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1