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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验指导书.docx

1、实验指导书实验1 类与对象一、 实验目的1. 掌握类的定义和使用。2. 掌握类的定义和对象的声明。3. 复习具有不同访问属性的成员的访问方式。4. 观察构造函数和析构函数的执行过程。5. 学习类的聚集使用方法。6. 使用VC+的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。二、 实验任务1. 定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7,freque

2、ncy为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。2. 定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。3. (选做)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用

3、成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。三、 实验步骤1. 首先定义枚举类型CPU_Rank,例如enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7,再定义CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名:lab4_1.cpp。2. 使用debug调试功能观察程序ab4_1.

4、cpp的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。参考程序如下:/lab4_1.cpp#include enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class CPUprivate: CPU_Rank rank; int frequency; float voltage;public: CPU (CPU_Rank r, int f, float v) rank = r; frequency = f; voltage = v; cout 构造了一个CPU! endl; CPU () cout 析构了一个CPU! endl; CPU_Rank Ge

5、tRank() const return rank; int GetFrequency() const return frequency; float GetVoltage() const return voltage; void SetRank(CPU_Rank r) rank = r; void SetFrequency(int f) frequency = f; void SetVoltage(float v) voltage = v; void Run() cout CPU开始运行! endl; void Stop() cout CPU停止运行! (istream&, complex&

6、);ostream& operator(ostream&, complex&);2. 编写main函数,测试复数类型。实验4 继承与派生一、 实验目的1. 学习定义和使用类的继承关系,定义派生类;2. 熟悉不同继承方式下对基类成员的访问控制;3. 学习利用虚基类解决二义性问题。二、 实验任务1. 定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。2. 定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass

7、,观察构造函数和析构函数的执行情况。3. 定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。4. (选做)从实验6中的people(人员)类派生出student(学生)类,添加

8、属性:班号char classNO7;从people类派生出teacher(教师)类,添加属性:职务char principalship11、部门char department21。从student类中派生出graduate(研究生)类,添加属性:专业char subject21、导师teacher adviser;从graduate类和teacher类派生出TA(助教生)类,注意虚基类的使用。重载相应的成员函数,测试这些类。类之间的关系如下图所示:图7-1 类图三、 实验步骤1. 编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(int n

9、)中直接对age赋值时,会出现类似以下的错误提示:error C2248: age : cannot access private member declared in class Animalerror C2248: age : cannot access private member declared in class Animal把age改为公有成员变量后重新编译就可以了。程序名:lab7_1.cpp。2. 编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名:lab7_2.c

10、pp。3. 用debug功能跟踪程序lab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。4. 编写程序定义一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名:lab7_3.cpp。编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为若不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。实验5 多态性一、 实验目的1. 掌握运算符

11、重载的方法;2. 学习使用虚函数实现动态多态性。二、 实验任务1. 定义Point类,有坐标_x,_y两个成员变量;对Point类重载“+”(自增)、“-”(自减)运算符,实现对坐标值的改变。2. 定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。3. (选做)对实验六中的people类重载“=”运算符和“=”运算符,“=”运算符判断两个people类对象的id属性的大小;“=”运算符实现

12、people类对象的赋值操作。三、 实验步骤1. 编写程序定义Point类,在类中定义整型的私有成员变量_x、_y,定义成员函数Point& operator+();Point operator+(int); 以实现对Point类重载“+”(自增)运算符,定义成员函数Point& operator-();Point operator-(int);以实现对Point类重载“-”(自减)运算符,实现对坐标值的改变。程序名:lab8_1.cpp。2. 编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicyc

13、le和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2.cpp。实验6 流类库与输入/输出一、 实验目的1. 熟悉流类库中常用的类及其成员函数的用法。2. 学习标准输入输出及格式控制;3. 学习对文件的应用方法(二进制文件、文本文件)。二、 实验任务1. 观察以下程

14、序的输出,注意对输出格式的控制方法;/lab11_1.cpp#include using namespace std;#define D(a) T #a endl; aofstream T(output.out);void main() D(int i = 53;) D(float f = 4700113.141593;) char* s = Is there any more?; D(T.setf(ios:unitbuf);) D(T.setf(ios:showbase);) D(T.setf(ios:uppercase);) D(T.setf(ios:showpos);) D(T i endl;) D(T.setf(ios:hex, ios:basefield);) D(T i endl;) D(T.unsetf(ios:uppercase);) D(T.setf(ios:oct, ios:basefield);)

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

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