当前位置:文档之家› 实验5-类与对象

实验5-类与对象

实验5-类与对象
实验5-类与对象

实验报告

课程名称计算机程序设计实验名称类与对象

系别电子信息科学学院专业班级12信管(4)指导教师邹丽新

学号_1姓名:实验日期2013/12/3 实验成绩___________

一、实验目的

1、掌握类的定义和使用方法,掌握类对象的声明和使用方法。

2、掌握对象的初始化和赋值的方法。

3、了解构造函数与析构函数的调用时机与顺序。

二、实验环境

1.硬件环境:微机

2.软件环境:Windows XP;Microsoft Visual C++6.0 集成开发环境。

三、实验内容

1、实验题目:构造一个TimeDate类,在类中包含一个成员函数,用来在屏幕上显示时间与日期。

(1) 基本要求

(a) 题目解析及要求:

1.定义TimeDate类,包含构造函数、析构函数和show成员函数(用于显示时间)。

2.要求在构造函数中增加以下代码:

cout<<"constructing TimeDate..."<

以便在实验中观察构造函数的调用。

3.要求在析造函数中增加以下代码:

cout<<"destructing TimeDate..."<

以便在实验中观察析造函数的调用。

4. 在程序中,当这个类对象被创建的时候,当前系统时间与系统日期被作为构造参数传递给它。

(b)提示:

1. 程序设计可建立在标准库time.h中的标准时间与日期函数来寻找与显示日期。time.h文件中的time_t

结构包含时间与日期的所有信息。

2. 调用时间库函数time( )返回一个当前时间时期的time_t类型的数据,其输入参数是time_t的指针,

也可以用来接受当前时间日期的time_t数据。当time函数的参数值为NULL时,其返回值为当前系统的日期与时间。

库函数ctime( )可将time_t数据转换成时间日期的字符串。

(2)实验代码

#include

#include

class TimeDate

{

public:

TimeDate()

{

cout<<"constructing TimeDate..."<

tm* dt;

time_t curr;

curr=(time(0));

dt=localtime(&curr);

year=dt->tm_year+1900;

mon=dt->tm_mon+1;

mday=dt->tm_mday;

h=dt->tm_hour;

m=dt->tm_min;

s=dt->tm_sec;

}

~TimeDate()

{

cout<<"destructing TimeDate..."<

}

void show()

{

cout<

<

}

private:

int year;

int mon;

int mday;

int h;

int m;

int s;

};

int main()

{

TimeDate curr;

curr.show();

return 0;

}

(3)实验结果

3、实验题目:编写程序,定义类Point,需要满足以下要求:

(1)定义构造函数,默认参数值为0,使得用户在main函数中能以如下方式定义对象。

void main( )

{

……

Point P1;

Point P2(1.3);

Point P3(1.3,5.6);

……

}

(2)重载函数Distance,该函数实现:求平面上两点之间的距离。

(3)定义成员函数Pint,实现输出点的坐标。

(1) 基本要求

(a) 题目解析及要求:

1.类Point适用于平面点,即坐标点由x轴与y轴构成。

2.重载成员函数Distance采用不同的方式求两点之间的距离。一种方法是接收一个类的对象(求点

P1到点P2的距离),第二种方法是接收平面上一个点的坐标来求两点之间的距离(求点P1到点(1.3,

5.6)的距离)。

(b) 提示:

要用到库函数sqrt,因此需要头文件math.h。

函数原型:double sqrt(double x);

函数功能:对数值x开平方。

函数返回:返回数值x开平方的值。

由于编程时要用到这些函数,所以请在预编译行添加下列指令:

# include

(c)测试数据:(下划线部分为输入数据,下同)

测试输入数据为题目要求(1)中的数值。

输出要求:

显示P1点坐标:

X=0 Y=0

显示P2点坐标:

X=1.3 Y=0

显示P3点坐标:

X=1.3 Y=5.6

P1点至P2点距离:1.3

P1点至点(1.3,5.6)的距离:5.74891

(2)实验代码

#include

#include "math.h"

class point

{

public:

point(double xx, double yy)

{

x=xx;

y=yy;

}

void getxy( );

friend double distance(point &a, point &b);

private:

double x,y;

};

void point::getxy( )

{ cout<<"("<

double distance(point &a, point &b)

{ double dx=a.x-b.x;

double dy=a.y-b.y;

return sqrt(dx*dx+dy*dy); }

void main( )

{ point p1(0,0), p2(1.3,0),p3(1.3,5.6);

p1.getxy( );

p2.getxy( );

p3.getxy( );

double d1=distance(p1, p2);

double d2=distance(p1, p3);

cout<<" P1点至P2点距离:"<

cout<<"P1点至点(1.3,5.6)的距离:"<

(3)实验结果

四、实验小结

1、实验出错情况及解决办法

实验中会遇到定义上的错误,以及格式/标点等上的疏忽和错误发现问题仔细检查,或是和同学们讨论,以便得到最简洁、高效的c++程序。

2、心得体会

C++是一门需要仔细/耐心学习的学科. 千万别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;不可以浮躁,慢慢的琢磨才会做的更好!

相关主题
文本预览
相关文档 最新文档