




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 类与对象一、 实验目的1、掌握类的声明和使用。2、掌握类的声明和对象的声明。3、复习具有不同访问属性的成员的访问方式。4、观察构造函数和析构函数的执行过程。5、学习类的组合使用方法。6、使用VC+的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员 函数的执行顺序。二、 实验任务1、声明一个 CPU 类,包含等级( rank )、频率( frequency )、电压( voltage )等属性,有两个公有成员函数 run 、 stop 。其中, rank 为枚举类型 CPU_Rank ,声明为 enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,
2、frequency 为单位是 MHz 的整型数, voltage 为浮点型的电压值。观察构造函数和析构函数的调用顺序。2、 声明一个简单的 Computer类,有数据成员芯片( cpu )、内存(ram )、光驱(cdrom )等 等,有两个公有成员函数 run 、 stop 。 cpu 为 CPU 类的一个对象, ram 为 RAM 类的一个对 象, cdrom 为 CDROM 类的一个对象,声明并实现这个类。3、(选作)设计一个用于人事管理的People (人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number (编号)、sex (性别)、birthday (出生日期)
3、、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数 实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联 成员函数、组合。1、#include using namespace std;enum CPU_Rank p1=1,p2,p3,p4,p5,p6,p7;class CPUprivate:CPU_Rank rank;int freauency;float voltage;public: rank=r;freauency=f;voltage=v;cout This is CPU construct programendl;CPU()cou
4、t This is CPU destroy functionendl;void run()cout The CPU is runningendl;void stop()cout The CPU is Stoppingendl;int main()enum CPU_Rank rank;rank=p5;CPU cpu1(rank,1024,;();();return 0;运行结果: This is CPU construct programThe CPU is runningThe CPU is StoppingThis is CPU destroy function2、#include usin
5、g namespace std;enum CPU_Rank p1=1,p2,p3,p4,p5,p6,p7;class CPUprivate:CPU_Rank rank;int freauency;float voltage;public:CPU(CPU_Rank r=p1,int f=0,float v=0) rank=r;freauency=f;voltage=v;cout This is CPU construct programendl;CPU()cout This is CPU destroy functionendl; void run()cout The CPU is runnin
6、gendl; void stop()cout The CPU is Stoppingendl; ;class RAMprivate:int rank;int size;public:RAM( int r=0, int s=0) rank=r;size=s;void run()cout The RAM is runningendl; void stop()cout The RAM is Stoppingendl; ;class CDROMprivate: intrank; intsize;public: rank=r;size=s;void run()cout The CDROM is runn
7、ingendl;void stop()cout The CDROM is Stoppingendl; ;class Computerprivate:CPU cpu;RAM ram;CDROM cdrom;public:Computer(CPU c,RAM r,CDROM cd) cout This is the Computer Constructendl;cpu=c;ram=r;cdrom=cd;void run() cout This is Computer is runningendl;();();void stop () cout This is Computer is stopend
8、l;(); ();int main() enum CPU_Rank rank;rank=p5;CPU cpu1(rank,1024,; RAMram(5,1024); CDROMcdrom(5,1024); Computer cp(cpu1,ram,cdrom);();();return 0;实验二 C+ 程序结构1、 实验目的1.观察程序运行中的变量的作用域、生存期和可见性。2.学习类的静态成员的使用。3.学习多文件结构在 C+ 程序中的使用。2、实验任务1.运行下面程序, 2. 观察变量 x、 y 的值。实现客户机( CLIENT )类。定义字符型静态数据成员ServerName , 4.
9、保存其服 5. 务器名 6. 称:整型静态数据成员 ClientNum , 7.记录已定义的客户数量;定义静态函数 ChangeServerName ()改变服 8. 务器名 9.称。在头文件中定义类,10. 在文件中实现, 11. 在文件中测试这个类, 12. 观察相应的成员变量取值的变化情况。实验二 C+ 程序结构1、实验目的1. 观察程序运行中的变量的作用域、生存期和可见性。学习类的静态成员的使用。学习多文件结构在 C+ 程序中的使用。2、 实验任务1. 运行下面程序, 2.观察变量 x、 y 的值。实现客户机( CLIENT )类。定义字符型静态数据成员 ServerName ,4.
10、保存其服务器名 称:整型静态数据成员 ClientNum ,记录已定义的客户数量;定义静态函数 ChangeServerName ()改变服务器名称。在头文件中定义类,在文件中实现,在文 件中测试这个类,观察相应的成员变量取值的变化情况。三、实验结果1.2. 服务器名称为: N客户机数量为: 2服务器名称为: A实验源代码:1.#include using namespace std;void fn1();int x = 1, y = 2;void main()cout Begin. endl;cout x = x endl;cout y = y endl;cout Evaluate x an
11、d y in main(). endl;int x = 10, y = 20;cout x = x endl;cout y = y endl;cout Step into fn1(). endl;fn1();cout Back in main endl;cout x = x endl;cout y = y endl; return 0;void fn1()int y = 200;cout x = x endl;cout y = y endl;2. /#include #include using namespace std;class CLIENTprivate:static char Ser
12、verName;static int ClientNum; public:CLIENT();CLIENT();static int GetClientNum();static void ChangServerName(char name); static char GetServerName();/#include CLIENT:CLIENT() ClientNum+ ; CLIENT:CLIENT()ClientNum- ;int CLIENT:GetClientNum()return ClientNum;void CLIENT:ChangServerName(char name) Serv
13、erName=name;char CLIENT:GetServerName()return ServerName;/#include #include int CLIENT:ClientNum = 0;char CLIENT:ServerName= N;int main()CLIENT a;CLIENT b;cout 服务器名称为: CLIENT:GetServerName() endl;CLIENT:ChangServerName(A);cout 客户机数量为: CLIENT:GetClientNum() endl; cout 服务器名称为: CLIENT:GetServerName() e
14、ndl;实验三 数组与指针一、实验目的1、学习使用数组。2、学习字符串数据的组织和处理。3、掌握指针的使用方法。4、练习通过 debug 观察指针的内容及其所指的对象的内容。5、练习通过动态内存分配实现动态数组,并体会指针在其中的作用二、实验任务1、测试 3X3 矩阵转置函数的程序,程序如下:#include using namespace std;void move (int matrix33)int i, j, k;for(i=0; i3; i+)for (j=0; ji; j+) k = matrixij; matrixij = matrixji; matrixji = k;int ma
15、in()int i, j;int data33;cout 输入矩阵的元素 endl;for(i=0; i3; i+)for (j=0; j3; j+) cout 第 i+1 行第 j+1 dataij;cout 输入的矩阵的为: endl;for(i=0; i3; i+)for (j=0; j3; j+) cout dataij ;cout endl;move(data);cout 转置后的矩阵的为: endl;for(i=0; i3; i+)for (j=0; j3; j+) cout dataij ;cout endl;2、使用动态内存分配生成动态数组来重新设计一个3X3 矩阵转置函数,使
16、用指针实现函数的功能。3、编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数 4、使用 String 类定义字符串对象,重新实现上一小题。(选作) 5 、定义一个 Employee 类,其中包括姓名、街道地址、城市 和邮编等属性,以及 change_name ( )和 display ()等函数。 display( ) 显示姓名、街道地址、城市和邮编等属性, change_name ()改变对 象的姓名属性。实现并测试这个类。 (提示:对字符数组的赋值可以 使用字符串拷贝函数 strcpy ( char * , char* ,name )。(选作) 6、定义包含个 5 元素的
17、对象数组,每个元素都是Employee类型的对象。实验四 继承与派生一、实验目的1、学习定义和使用类的继承关系,定义派生类。2、熟悉不同继承方式下对基类成员的访问控制。3、学习利用虚基类解决二义性问题。二、实验任务1、定义一个基类 Animal ,有私有整型成员变量 age ,构造其派生类 dog, 在其成员函数 SetAge(int n) 中直接给 age 赋值,看看会有什么问题, 把 age 改为公有成员变量,还会有问题吗编程试试看。2、定义一个基类 BaseClass ,有整型成员变量 Number ,构造其派生类 DerivedClass, 观察构造函数和析构函数的执行情况。3、定义一
18、个车( vehicle )基类,具有 MaxSpeed 、 Weight 等成员变 量, Run ,Stop 等成员函数,由此派生出自行车(bicycle )类、汽车( motorcar )类,自行车类具有高度( Height )等属性,汽车类有 座位数( SeatNum )等属性。从 bicycle 和 motorcar 类派生出摩托车 ( motorcycle )类,在继承过程中,注意把 vehicle 设置为虚基类。如 果不把设置为虚基类,会有什么问题编程试试看。实验结果:1、error C2248: age : cannot access private member declared
19、in class Animal改正方案:将 Animal 类中私有成员 age 换成公共成员。2、 构造基类对象 !构造派生类对象 !析构派生类对象 !析构基类对象 !3、 Now it is running!Now it has stopped!/ 如果 vehicle 不是虚基类,有错误:error C2385: motorcycle:Run is ambiguous? 源程序:1 、 #include using namespace std;class Animalprivate: intage;public:Animal();Animal();class Dog : private Animalpublic:Dog();Dog();void SetAge(int n) age = n; ;int main()Dog a;(10);return 0;2、#include using namespace std;class BaseClasspublic:BaseClass() cout 构造基类对象 ! endl;BaseClass() cout 析构基类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特级幼师考试试题及答案
- 初一政治考试试题及答案
- 口碑分考试试题及答案
- 农技师考试试题及答案
- 公务员政审考试题及答案
- 2025-2030中国化工燃料油行业发展趋势及发展前景研究报告
- 2025-2030中国冶金用防火液压油行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国公路信息化行业发展分析及投资风险预警与发展策略研究报告
- 2025年地理高考复习 专题05“演变过程类”选择题答题技巧(解析版)
- 2025年高级管理人员奖励合同模板
- SL631水利水电工程单元工程施工质量验收标准第2部分:混凝土工程
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- 一例巨大儿分娩的个案护理-课件
- 苏教版三年级科学下册单元测试卷及答案(全册)
- 室内质控-检验科课件
- (完整)人力资源六大模块ppt
- 小学四年级下学期英语阅读理解
- 彩色手绘卡通儿科小儿护理高热惊厥健康宣教教案PPT课件讲义
- DB43∕T 498-2009 博落回叶-行业标准
- 心力衰竭病人的护理查房pptppt(ppt)课件
- T∕CADERM 2002-2018 胸痛中心(基层版)建设与评估标准
评论
0/150
提交评论