收藏 分享(赏)

《面向对象程序设计》实验指导书22086.doc

上传人:dzzj200808 文档编号:2702771 上传时间:2018-09-25 格式:DOC 页数:37 大小:255KB
下载 相关 举报
《面向对象程序设计》实验指导书22086.doc_第1页
第1页 / 共37页
《面向对象程序设计》实验指导书22086.doc_第2页
第2页 / 共37页
《面向对象程序设计》实验指导书22086.doc_第3页
第3页 / 共37页
《面向对象程序设计》实验指导书22086.doc_第4页
第4页 / 共37页
《面向对象程序设计》实验指导书22086.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、面向对象程序设计(C+)实验指导书邵阳学院信息工程系2010 年 3 月一、课程简介面向对象程序设计是计算机科学与技术及网络工程专业本科生的一门必修课程。面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序。本课程主要介绍面向对象程序设计的方法和 C+语言的基本概念。以 C+语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握 C+的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本

2、知识和基本技能。二、实验教学目的及要求目的:通过实验,加深对程序实例和相关练习的理解,使学生逐步掌握 C+的面向过程和面向对象的功能,并熟练使用 Visual C+ 6.0 集成开发环境,编写、调试、运行 C+程序。要求:1自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯。2独立完成所布置习题。为保证尽量在统一安排的上机时间内编译运行通过程序,建议事先设计好程序。三、实验项目设置表序号 实验名称实验学时仪器套数每套人数实验要求实验类型 面向专业1 C+对C的扩充 2 32 1 选做 验证性 计算机科学与技 术、网络工程2 类和对象(一) 2 32 1 必做 验证性 计算机科学与技 术

3、、网络工程3 类和对象(二) 2 32 1 选做 设计性 计算机科学与技 术、网络工程4 派生类 2 32 1 选做 设计性 计算机科学与技 术、网络工程5 虚函数 2 32 1 选做 验证性 计算机科学与技 术、网络工程6 多态性 2 32 1 选做 设计性 计算机科学与技 术、网络工程7 函数重载 2 32 1 必做 验证性 计算机科学与技 术、网络工程8 运算符重载 2 32 1 选做 验证性 计算机科学与技 术、网络工程9 函数模板与类模板 2 32 1 选做 验证性 计算机科学与技 术、网络工程10 数据流的输入输出 2 32 1 选做 验证性 计算机科学与技 术、网络工程11 文件

4、的输入输出 2 32 1 必做 验证性 计算机科学与技 术、网络工程实验 1 C+对 C 的扩充实验目的及要求1熟悉 VC+的集成开发环境,学习运行一个 C+程序的步骤。2熟悉 C+的运算符、表达式、语句的使用规则。3掌握变量命名规则,学会变量的定义和使用。4掌握函数的编写方法和基本规则。实验内容1编写程序,从标准输入设备输入用户的名字,从标准输出设备输出欢迎信息。2编写函数 swap()实现两个 int 型数据的交换。要求: (1)指针作参数(2)引用作参数主要仪器设备电脑一台,安装 Visual C+ 6.0实验步骤一、使用 Visual C+ 6.0 创建控制台应用程序1进入和退出 Vi

5、sual C+ 6.0 集成开发环境启动并进入 Visual C+集成开发环境有至少有 3 种方法:(1)选择“开始”菜单中的“程序”,然后选择 Microsoft Visual Studio 6.0级联菜单,再选择 Microsoft Visual C+6.0。(2)在桌面上创建 Microsoft Visual C+6.0 的快捷方式,直接双击该图标;(3)如果已经创建了某个 Visual C+工程,双击该工程的 dsw(Develop Studio Workshop)文件图标,也可进入集成开发环境,并打开该工程。选择 File|Exit 菜单,可退出集成开发环境。2创建一个控制台应用程序

6、工程。(1)进入 Visual C+集成开发环境后,选择 File|New 菜单,弹出 New 对话框,单击 Projects 标签,打开其选项卡,在其左边的列表框中选择 Win32 Console Application 工程类型,在 Project name 文本框输入工程名,在 Location 文本框输入工程路径,单击 OK 按钮,如图 1.1 所示。图 1.1 创建新的应用程序界面(2)在弹出的对话框(如图 1.2 所示)中,选择 An empty project,单击Finish 按钮。图 1.2 创建 Win 32 Console Application(3)此时出现 New P

7、roject Information 框,此对话框提示用户创建了一个空的控制台应用程序,并且没有任何文件被添加到新工程中,此时,工程创建完成。3、程序的编辑、编译、建立、执行。(1)选择 File|New 菜单项,出现 New 对话框,打开 Files 选项卡,在列表框中选择 C+ Source File,在 File 文本框中输入文件名,选中 Add to Project 复选框,然后单击 OK 按钮,打开源文件编辑窗口,在其中输入源代码。对于已经存在的源文件,选择 Project|Add to Project| Files菜单项,在随后打开的插入文件对话框中选择待添加文件,按 OK 添加进

8、工程。(2)选择 Build|Compile 菜单项,即可编译源文件,系统会在 Output 窗口显出错误 (Error)信息以及警告 (Warning)信息。当所有 Error 改正后,可得到目标文件(.obj)。(3)选择 Build|Build 菜单项,连接并建立工程的 EXE 文件,得到可执行文件(.exe)。这时编译器可能会给出连接错误(Linking Error)。产生连接错误的原因可能是缺少所需要的库文件或目标文件,或程序中调用的外部函数没有定义等,只要补充相应文档再重新建立即可。(4)选择 Build|Execute 菜单项,执行工程文件,会出现一个类似 DOS 操作系统的窗口

9、,此时可以进行数据的输入和输出。二、编程练习1编写程序,从标准输入设备输入用户的名字,从标准输出设备输出欢迎信息。参考程序如下:#include #include using namespace std;int main()string firstname;coutfirstname;coutusing namespace std;void swap1(int x, int y)int t;t=x, x=y, y=t;void swap2(int *x, int *y)int t;t=*x, *x=*y, *y=t;void swap3(int *x, int *y)int *t;t=x, x

10、=y, y=t;void swap4(int t=x, x=y, y=t;int main()int x, y;x=3, y=5; swap1(x, y);cout using namespace std;class point int x1,x2; public: point(int x,int y); ; void main() point data(5,5); cout #include using namespace std;class Birthdaypublic:int year, month, day, age;void Print();void Age();void Birth

11、day:Print()couttm_year;cMonth = 1+p-tm_mon;cDay = p-tm_mday;coutbirth.yearbirth.monthbirth.day;birth.Age();birth.Print();return 0;2改正以下程序中的错误,并分析错误原因。参考改正代码如下,原因请自己加以分析:#include using namespace std;class point public: int x1,x2; point(int x, int y); ;point:point(int x, int y)x1=x;x2=y;int main() poi

12、nt data(5,5); cout ,例如,自定义的头文件为Date.h,则在引用部分,应写入:#include “Date.h”2在设计时,应注意区分哪些成员函数和成员变量应当定义为 public,哪些应当定义为 private。3如果对成员函数的返回值类型、函数名或参数表进行修改,应同时修改.h 和.cpp 的文件,即需要手工同时修改定义部分和实现部分。实验 4 派生类实验目的及要求综合运用继承的相关知识,包括:继承的含义、派生类的定义方法和实现、公有继承下基类成员对派生类成员和派生类对象的可见性、保护成员在继承中的作用等,设计具有继承关系的类。实验内容编写一个程序计算出球、圆柱和圆锥的

13、表面积和体积。设计要求:(1)定义一个基类圆,至少含有一个数据成员半径;(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。(3)定义主函数,求球、圆柱、圆锥的表面积和体积。主要仪器设备电脑一台,安装 Visual C+ 6.0实验步骤1分析问题:确定球、圆柱和圆锥的表面积和体积的计算公式。2运行 Visual C+ 6.0,创建 Win32 Console Application。3使用 Insert | Class Wizard创建基类圆。4在 Class View 的类名称上点击右键,从弹出菜单中选择 Add Member Function和 Add Memb

14、er Variable,设计基类的成员函数和成员变量。基类圆至少含有一个数据成员半径。5编写基类的代码。6使用 Insert | Class Wizard创建派生类。7在各个派生类中编写具体实现的代码。8添加一个 main.cpp 文件,编写主函数,测试派生类的功能。9编译、调试、运行程序。注意事项1一个派生类只从一个基类派生。2注意区分公有继承、私有继承和保护继承的使用。实验 5 虚函数实验目的及要求1了解虚函数的作用及使用方法。2了解在派生类中如何使用基类的成员、基类成员在派生类中的访问控制以及虚函数对多态性的支持。3了解纯虚函数和抽象类的概念和用法。实验内容栈和队列两种数据结构具有很多相

15、似的地方:都存放了一系列的元素,元素的操作都在两头进行,元素个数都是动态可变的。要求设计一个基类,完成队列和栈的共同功能,然后分别派生出队列类和栈类。主要仪器设备电脑一台,安装 Visual C+ 6.0实验步骤1分析实验要求。2编写代码,参考程序如下:/ base.h#include #include using namespace std;class basepublic:base();virtual base();virtual void elem_in(int elem)=0;virtual void elem_out(int void display();protected:vect

16、or elems;/ base.cpp#include “base.h“ / classs header filebase:base()base:base()void base:display()if (elems.empty()coutusing namespace std;struct complexdouble Real;double Image;float product(float x, float y)return ( x*y );struct complex product(struct complex x, struct complex y)struct complex r;r

17、.Real = x.Real*y.Real - x.Image*y.Image;r.Image = x.Real*y.Image + x.Image*y.Real;return r;int main()float x=11.2, y=33.4, z;struct complex m, n, p;m.Real=1.5, m.Image=2.2;n.Real=3.6, n.Image=7.9;z=product(x, y);p=product(m, n);coutusing namespace std;bool find_element(int arr, int m, int e)for (int

18、 i=0; i=0 if (nusing namespace std;class complex public:complex();virtual complex();complex(double real, double image);void display();complex operator /(complex friend complex operator *(complex protected:double _image;double _real;/ complex.cpp#include “complex.h“complex:complex()_real = _image = 0

19、;complex:complex()complex:complex(double real, double image):_real( real ), _image( image )void complex:display()cout_real“+“_image“i“endl;complex complex:operator /(complex r=(_real*c._real-_image*c._image)/(c._real*c._real+c._image*c._image);i=(_image*c._real-_real*c._image)/(c._real*c._real+c._im

20、age*c._image);return complex(r, i);complex operator *(complex r=c1._real*c2._real + c1._image*c2._image;i=c1._image*c2._real + c1._real*c2._image;return complex(r, i);/ main.cpp#include “complex.h“int main()complex c1(2,3), c2(3,4), c3;c3=c1*c2;cout“c1: “; c1.display();cout“c2: “; c2.display();cout“c3: “; c3.display();c3=c1/c2;cout“c1: “; c1.display();cout“c2: “; c2.display();cout“c3: “; c3.display();return 0;3编译、调试、运行程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报