面向对象的程序设计实验教学指导书
- 格式:doc
- 大小:90.50 KB
- 文档页数:20
1 《面向对象程序设计课程》
实验教学指导书
山东协和职业技术学院
计算机学院
二○○七年十二月 2 前 言
一、实验总体目标
《面向对象程序设计》课程在计算机科学与技术专业教学计划中,是一门重要的理论联系实际的专业基础课。其主要任务是使学生掌握OOP的编程思想和方法、能运用C++语言,在Visual C++的IDE环境下编写各种应用程序。实验课是本课程重要的教学环节,其目的是使学生掌握OOP的编程思想和方法,C++语言的语法特点、程序结构、主要技术及编程技巧,能在Visual C++的IDE环境下编写各种Win32应用程序,使学生学以致用,提高学生的实践动手能力以及分析问题、解决问题的能力。
二、适用专业年级
适用专业: 计算机软件
三、先修课程
计算机文化基础,C++语言程序设计
四、实验项目及课时分配
实验项目 实验要求 实验类型 每组人数 实验学时
实验一 练习设计、使用类并熟悉编程环境 必修 上机设计 4 2
实验二 多态性练习 必修 上机设计 4 4
实验三 函数的应用 必修 上机设计 4 4
实验四 类与对象 必修 上机设计 4 4
实验五 运算符的重载 必修 上机设计 4 4
实验六 综合练习造 必修 上机设计 4 2
(说明:实验要求填必修或选修;实验类型填演示性、综合性、验证性、设计性或研究创新性。)
五、实验环境
微机,Microsoft Visual 6.0
六、实验总体要求
通过该实验要求学生掌握C++程序设计语言与面向对象程序设计的基本概念和方法,具有使用C++语言的编程能力,具有采用面向对象程序设计方法解决实际问题的能力。为《数据结构》、《信息系统分析与设计》、《电子商务系统分析与设计》等后续课程打下良好基础。
七、本课程实验的重点、难点及教学方法建议
1、 按照课程有关章节内容要求,预先编写出程序; 3 2、 上机输入、编译、调试、运行程序直到得到正确结果;
3、 分析总结编程方法
4 实验一 : 练习设计、使用类并熟悉编程环境
一、实验目的:
学会定义类
学会构造类的方法
领会面向对象程序设计的方法
熟悉编程环境
二、实验内容:
(1) 设计一个用来表示直角坐标系上点的位置的Location类,然后在主程序中创建两个对象A和B,要求A在第三象限,B在第二象限,计算给定两点之间的距离并按如下格式输出结果:
A(x1,y1),B(x2,y2)
Distance=d
其中x1,y1,x2,y2为指定值,d为计算结果。
分析: 这是一个很简单的类的设计。首先我们要清楚这个类要有几个成员和成员函数。一个点起码要有X坐标和Y坐标,所以我们给其添加两个私有成员;接着要有起码的构造函数和析构函数;最后根据题目要求,我们在设计一个成员函数,用来求两点之间的距离。
程序源代码如下:
程序头文件放在Location.h中
//Location.h
//这是输入输出流所要包含的头文件
#include
//这是要进行数学计算所要包含的头文件
#include
class Location
{
//横坐标和纵坐标:
private:
int X,Y;
public:
Location( int a , int b);//构造函数
double distance (Location &);
//求两点距离的函数
~Location();//析构函数
};
//在构造函数中对类的成员进行初始化
Location::Location(int a ,int b)
{
X=a;
Y=b; }
//求两点的距离
//这里我们用的公式是,两点之间的
//距离=
//(x1,y1)和(x2,y2)为两点的坐标 5 double Location::distance(Location & loc1)
{
double length:
length=sqrt((loc1.X-Location::X)**2+
(loc1.Y-Location::Y)**2));
//注意这里的作用域符号::表示X和Y是属//于Location类的
return length; }
//由于我们在这个程序里没有用
//new来开辟内存,所以析构函数为空
Location::~Location()
{ }
再在Location.cpp文件中编写主程序
//Location.cpp
#include
#include
#include
void main()
{
//先定义Location类的两个对象A和B
//并调用构造函数对其进行初始化
Location A(-10,-20),B(-30,40);
//输出A(x,y),B(x,y)
cout<<"A("< <<"B("< //输出distance=? cout<<"Distance="< } 注意:.h文件和.cpp文件要放在同一个目录下面,如果不是放在同一个目录下面的话,那么在.cpp文件中 要在#include 三、实验思考: 大家可以用指针和引用来改写这个程序,然后和原来的程序比较,看有什么区别。 把这个Location类的对象作为Rectangle类的对象的一个成员,即坐标平面上的一个矩形由一个位置和矩形的长和宽决定。设计矩形类Rectangle并输出给定点x1和y1的值及长和宽的值。 //先定义类和类的成员函数 //文件名为Rectange.h //由于Rectangle类中要有Location类的对象 //所以必须包括Location类的声明文件 #include #include #include class Rectange 6 { private: //定义矩形长和宽 int length, width; //定义矩形左上点 Location upleft; public: //定义矩形的构造函数和析构函数 Rectange(int a,int b, int length,int width); ~Rectange(); }; Rectangle::Rectangle(int a,int b, int len,int wid) { //初始化Rectangle类的length和width length=len; width=wid; //这里通过调用Location类的构造函数 //来初始化Rectangle类的对象upleft upleft=new Location(a,b); } Rectangle::~Rectangle() { delete upleft;} //在构造函数中用new开辟了内存空间upleft, //所以在析构函数中用delete删除它 } 再在CPP文件中编写主程序代码: //Rectangle.cpp //包括下面三个头文件的原因在前面已讲过 #include #include #include void main() { Rectangle A(-10,-20,60,40); //定义了一个长为60,宽为40,左上点为(-10,-20) //的矩形,下面将其输出 cout<<"矩形左上点为:"<<"("< < //A.upleft是Location的成员对象,所以A.upleft.x //表示输出的是左上点的x坐标,A.upleft.y表示输//出的是左上点的y坐标,即-10和-20 cout<<"矩形的长为:"< //输出为60