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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C面向对象程序设计实验指导.docx

1、C 面向对象程序设计实验指导C+面向对象程序设计实验指导 C+语言面向对象程序设计是一门实践性很强的课程,学好这门课程离不开实验这一重要环节。学生不仅应具有扎实的理论知识,还要通过坚持不懈地阅读程序、编程练习、程序调试、程序改错等环节的训练,才能真正掌握所学知识,提高编程水平。对于初学者,可能会看程序但不会编写,程序调试时出现了问题不会纠错,这些都是正常现象,实际还是编程训练不够,只要勤学多练,最后一定可以取得令人满意的效果。包括5个实验,每个实验都包括实验目的、实验内容、实验提示与实验步骤。实验内容一般都包含有阅读程序与调试程序,程序改错,程序填空与编写程序方面的题目,这些题目也是C+面向对

2、象程序设计考试要涉及的题型,因此做好实验对考试有极大的帮助;实验提示信息中有编程提示、重要内容提示或者出错信息提示;实验步骤以一个实际题目为例给出具体而实用的指导,让便让初学者不至于面对实验题目而束手无策,希望读者在实验中的能够学有所思,有所启迪。实验1 类和对象1.1 实验目的1掌握类的定义和使用方法,掌握类对象的声明和使用方法。2掌握对象的初始化和赋值的方法。3了解成员函数的特性、友元。4静态成员的使用方法。5理解和掌握this指针的用法。6理解和掌握const类型数据的使用。1.2 实验工具与准备工作在开始实验前,应回顾或复习相关内容。需要一台主算机,其中安装有Visual C+ 6.0

3、、Visual C+ 2005、Visual C+ 2005 Express、Dev-C+或MinGW Developer Studio等集成开发环境软件。1.3 实验内容1先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。/ 文件名: main.cpp#include / 预处理命令using namespace std; / 使用标准命名空间std/ 直角坐标类class Pointprivate:/ 数据成员: int x, y; / 横坐标与纵坐标public:/ 公有函数: Point(int a, int b): x(a), y(b) / 构造函数 void

4、Set(int a, int b); / 设置坐标值 int GetX() const return x; / 返回横坐标 int GetY()const return y; / 返回纵坐标;/ 直角坐标类及相关函数的实现部分void Point:Set(int a, int b) / 设置坐标值 x = a; / 横坐标 y = b; / 纵坐标void Show(const Point &pt) / 显示坐标值 cout pt.GetX() pt.GetY() Set(5, 9); / 设置坐标值 a3.Set(6, 8); / 设置坐标值 for (int i = 0; i 5; i+)

5、 / 依次显示各对象的坐标值 Show(*p+); system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值0,返回操作系统2先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。/ 文件名: main.cpp#include / 预处理命令using namespace std; / 使用标准命名空间std/ 日期类class Dateprivate:/ 数据成员: int month, day, year; / 年月日public:/ 公有函数: Date(int m = 1, int d = 1, int y =

6、2008); / 构造函数 / 友元 friend void Show(const Date &dt); / 显示日期;/ 日期类及相关函数的实现部分Date:Date(int m, int d, int y) / 由m(月),d(日)和y(年)构造对象 this-month = m; / 月 this-day = d; / 日 this-year = y; / 年void Show(const Date &dt) / 显示日期 cout dt.month / dt.day / dt.year endl;int main(void) / 主函数main(void) Date d1(6, 8,

7、2008), d2(6, 18), d3(5), d4; / 定义日期对象 Show(d1); / 显示d1 Show(d2); / 显示d2 Show(d3); / 显示d3 Show(d4); / 显示d4 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值0,返回操作系统3程序填空。下面程序主要测试静态成员的使用方法,请完成程序。/ 文件名: main.cpp#include / 预处理命令using namespace std; / 使用标准命名空间std/ 测试静态成员类class Testprivate:/ 数据成员:

8、static int count; / 对象数public:/ 公有函数: Test() count+; / 构造函数, 实现对对象进行计数 static void Show() cout 共有 count 个对象! endl; / 显示对象数; 1 count = 0; / 为静态数据成员赋初值int main(void) / 主函数main(void) Test obj1, obj2, obj3; / 定义对象 Test:Show(); / 显示对象数 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值0,返回操作系统4改正下面

9、程序中的错误,使其能正常运行。/ 文件名: main.cpp /1#include / 预处理命令 /2using namespace std; / 使用标准命名空间std /3 /4/ 测试构造函数与析构函数类 /5class Test /6 /7public: /8/ 公有函数: /9 void Test() cout 构造函数 endl; /10 void Test() cout 析造函数 Set(5, 9); / 设置坐标值用于修改对象数组的a0的值,而语句a3.Set(6, 8); / 设置坐标值用于修改对象数组的a3的值。2注意缺省参数值的使用;对于私有数据成员,可使用友元进行访问

10、。3中静态数据成员赋初值的一般形式如下:数据类型类名:静态数据成员名=初值;参考答案为:1int Test:4构造函数与析构函数不能有返回值类型,因此应去掉第10行和第11行的void。5只要按题目要求编程实现即可,建议将比较短的函数在类体中实现,比较长的函数在类体外实现。6可仿照第5题编程实现,当然学生现实后还可灵活处理,比如定义学生数组存储学生信息,由count的值作为学号(此时构造函数的参数中不需要学号的信息)。1.5 实验步骤以实验内容第5题为例说明实验步骤。具体实现步骤如下:1建立工程exp2_5。2建立源程序文件main.cpp,具体内容如下:/ 文件名: main.cpp#inc

11、lude / 预处理命令using namespace std; / 使用标准命名空间std/ 人(people)类class Peopleprotected:/ 数据成员: int age; / 年龄 int height; / 身高 int weight; / 体重 static int num; / 人数public:/ 公有函数: People(int a, int h, int w); / 构造函数 void Eatting() weight+; / 进食使体重加1 void Sporting() height+; / 运动使身高加1 void Sleeping(); / 睡眠 vo

12、id Show() const; / 显示人的信息 static void ShowNum() / 显示人数 cout 人数: num endl; ;int People:num = 0; / 初始化静态数据成员num/ 人(people)类的实现部分People:People(int a, int h, int w): age(a), height(h), weight(w) num+; / 由已知信息构造对象, 人数num将自加1void People:Sleeping() / 睡眠 age+; / 睡眠使年龄加1 height+; / 睡眠使身高加1 weight+; / 睡眠使体重加1

13、void People:Show() const/ 显示人的信息 cout 第 num 个人: endl; / 显示人的序号 cout 年龄: age 岁 endl; / 显示年龄 cout 身高: height 厘米 endl; / 显示身高 cout 体重: weight 市斤 endl;/ 显示体重 cout endl; / 换行int main(void) / 主函数main(void) People obj1(8, 120, 60); / 定义对象 obj1.Eatting(); / 进食 obj1.Sporting(); / 运动 obj1.Sleeping(); / 睡眠 obj

14、1.Show(); / 显示信息 People obj2(18, 170, 108); / 定义对象 obj2.Eatting(); / 进食 obj2.Sporting(); / 运动 obj2.Sleeping(); / 睡眠 obj2.Show(); / 显示信息 People:ShowNum(); / 显示人数 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值0,返回操作系统3编译及运行程序。1.6 测试与结论以实验内容第5题为例进行测试,测试时,屏幕显示如下:第1个人:年龄:9岁身高:122厘米体重:62市斤第2个人:年

15、龄:19岁身高:172厘米体重:110市斤人数:2请按任意键继续. . .从上面的屏幕显示,可知本程序满足实验内容第5题的要求。实验2 继承与派生2.1 实验目的1熟练掌握类的继承,能够定义和使用类的继承关系。2掌握派生类的声明与实现方法。3掌握类构造函数的初始化列表与作用域分辨符的使用方法。4理解虚基类在解决二义性问题中的作用。2.2 实验工具与准备工作在开始实验前,应回顾或复习相关内容。需要一台主算机,其中安装有Visual C+ 6.0、Visual C+ 2005、Visual C+ 2005 Express、Dev-C+或MinGW Developer Studio等集成开发环境软件

16、。2.3 实验内容1先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。/ 文件名: main.cpp#include / 预处理命令using namespace std; / 使用标准命名空间stdclass Apublic:/ 公有函数: A() cout 构造A endl; / 构造函数 A() cout 析构A endl; / 析构函数;class B: public Apublic:/ 公有函数: B() cout 构造B endl; / 构造函数 B() cout 析构B endl; / 析构函数;class C: public Bpublic:/ 公有函数:

17、 C() cout 构造C endl; / 构造函数 C() cout 析构C endl; / 析构函数;int main(void) / 主函数main(void) C obj; / 定义对象 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值0, 返回操作系统2先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。/ 文件名: main.cpp#include / 预处理命令using namespace std; / 使用标准命名空间stdclass Aprotected:/ 数据成员: int a; / 数

18、据成员public:/ 公有函数: A(int x): a(x) / 构造函数 void Show() const cout a endl; / 显示a之值;class B protected:/ 数据成员: int b; / 数据成员public:/ 公有函数: B(int x): b(x) / 构造函数 void Show() const cout b endl; / 显示a与b之值;class C: public A, public B public:/ 公有函数: C(int x, int y): A(x), B(y) / 构造函数 void Show() const / 显示b之值

19、cout a , b endl; ;int main(void) / 主函数main(void) C obj(5, 18); / 定义对象 obj.Show(); / 显示相关信息 obj.A:Show(); / 显示相关信息 obj.B:Show(); / 显示相关信息 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值0, 返回操作系统3程序填空。下面程序主要测试类构造函数的初始化列表与作用域分辨符,请完成程序。/ 文件名: main.cpp#include / 预处理命令using namespace std; / 使用标准命

20、名空间stdclass Aprivate:/ 数据成员: int a; / 数据成员public:/ 公有函数: A(int x): 1 / 构造函数 void Show() const / 显示a之值 cout a: a endl; ;class B: public A protected:/ 数据成员: int b; / 数据成员public:/ 公有函数: B(int x, int y): 2 , b(y) / 构造函数 void Show() const / 显示相关信息 3 Show(); / 调用基类A的成员函数Show() cout b: b endl; / 显示b之值 ;int

21、 main(void) / 主函数main(void) B obj(5, 18); / 定义对象 obj.Show(); / 显示相关信息 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值0, 返回操作系统4改正下面程序中的错误,使其能正常运行。/ 文件名: main.cpp /1#include / 预处理命令 /2using namespace std; / 使用标准命名空间std /3 /4/ 基类Base /5class Base /6 /7private: /8/ 数据成员: /9 int m; / 数据成员 /10 /11public: /12/ 公有函数: /13 Base(int a): m(a) / 构造函数 /14 Base(const Base ©) : m(copy) /

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

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