实验2 类的定义与实例化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2类的定义与实例化
1、实验目的和要求:
掌握类定义的方法,理解类类型,实例的含义,体会面向对象程序设计中数据隐藏的概念。
2、实验内容:
(1)定义并测试日期类Date,实现日期的设置和输出
类包括私有数据成员year, month, day;
公有成员函数实现以下功能:
1)各种构造函数,有参数与默认构造函数
{
x=p->x ;
y=p->y ;
cout<< "Fun (Point *p) "<<endl ;
}
Void main()
{
Point p(1,2),q(3,4) ;
p.fun(q) ;
q.fun(&q) ;
}
改正程序中小的错误,给出程序运行的结果,并对程序进行分析。
class Rational{
int m; //分母
int n; //分子
public:
Rational(int nn=1,int mm=1);//构造
Rational R_add(Rational & A);//加
Rational R_sub(Rational & A);//减
Rational R_mul(Rational & A);//乘
2)设置时间bool set( int y, int m, int d),并对该时间的有效性进行检测
3)输出时间,按mm/ dd / yyyy方式打印
4)判断该日期是一年的第几天
5)判断该日期是星期几(选作)
编写一个驱动程序进行测试
(2)义一个分数类如下,要求实现各个成员函数,并在主函数中测试两个分数的加减乘除等运算。
};
请编写String的上述3个函数。并编写一个主函数,在主函数中对所编写的成员函数进行测试。
(6)定义类Point.要求定义类对象时,可以有这样的定义语句:
Point p1(1,2),p2(p1);
#include <iostream.h>
class Point
{
public:
Point (int a, int b)
{
x=a;y=b;
}源自文库
void fun (Point &p);
void fun (Point * p);
private:
int x,y;
};
void fun (Point &p)
{
x=p.x ;
y=p.y ;
cout<< "The fun(Point &p) "<<endl ;
}
void Point:: fun (Point *p)
void R_div(Rational & A, Rational &B);//除
void simple( );//约分
void print();//以分数形式显示,注意约分
};
( 3 )定义和实现类Array。数据成员有包含了10个元素的数组,成员函数GetData,有一个整形数参数i,函数返回下标为i的元素值,对一个数组元素的引用,成员函数Print打印出数组的值。构造函数将数据成员的所有数组元素初始化为0。还有一个input成员函数为数组赋值。
(4)定义一个类包含一个整型数的指针变量,在构造函数中用new分配n个整型数的内存空间(n的默认值为10),在析构函数中用delete释放内存空间,并编写给内存空间赋值和输出函数。
class Set
{
int* p;
int n;
public:
Set的构造函数与析构函数。
……
};
(5)编写类String的构造函数、析构函数
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); //普通构造函数
String(const String &other); //拷贝构造函数
~ String(void); //析构函数
private:
char *m_data; //用于保存字符串
1、实验目的和要求:
掌握类定义的方法,理解类类型,实例的含义,体会面向对象程序设计中数据隐藏的概念。
2、实验内容:
(1)定义并测试日期类Date,实现日期的设置和输出
类包括私有数据成员year, month, day;
公有成员函数实现以下功能:
1)各种构造函数,有参数与默认构造函数
{
x=p->x ;
y=p->y ;
cout<< "Fun (Point *p) "<<endl ;
}
Void main()
{
Point p(1,2),q(3,4) ;
p.fun(q) ;
q.fun(&q) ;
}
改正程序中小的错误,给出程序运行的结果,并对程序进行分析。
class Rational{
int m; //分母
int n; //分子
public:
Rational(int nn=1,int mm=1);//构造
Rational R_add(Rational & A);//加
Rational R_sub(Rational & A);//减
Rational R_mul(Rational & A);//乘
2)设置时间bool set( int y, int m, int d),并对该时间的有效性进行检测
3)输出时间,按mm/ dd / yyyy方式打印
4)判断该日期是一年的第几天
5)判断该日期是星期几(选作)
编写一个驱动程序进行测试
(2)义一个分数类如下,要求实现各个成员函数,并在主函数中测试两个分数的加减乘除等运算。
};
请编写String的上述3个函数。并编写一个主函数,在主函数中对所编写的成员函数进行测试。
(6)定义类Point.要求定义类对象时,可以有这样的定义语句:
Point p1(1,2),p2(p1);
#include <iostream.h>
class Point
{
public:
Point (int a, int b)
{
x=a;y=b;
}源自文库
void fun (Point &p);
void fun (Point * p);
private:
int x,y;
};
void fun (Point &p)
{
x=p.x ;
y=p.y ;
cout<< "The fun(Point &p) "<<endl ;
}
void Point:: fun (Point *p)
void R_div(Rational & A, Rational &B);//除
void simple( );//约分
void print();//以分数形式显示,注意约分
};
( 3 )定义和实现类Array。数据成员有包含了10个元素的数组,成员函数GetData,有一个整形数参数i,函数返回下标为i的元素值,对一个数组元素的引用,成员函数Print打印出数组的值。构造函数将数据成员的所有数组元素初始化为0。还有一个input成员函数为数组赋值。
(4)定义一个类包含一个整型数的指针变量,在构造函数中用new分配n个整型数的内存空间(n的默认值为10),在析构函数中用delete释放内存空间,并编写给内存空间赋值和输出函数。
class Set
{
int* p;
int n;
public:
Set的构造函数与析构函数。
……
};
(5)编写类String的构造函数、析构函数
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); //普通构造函数
String(const String &other); //拷贝构造函数
~ String(void); //析构函数
private:
char *m_data; //用于保存字符串