第一范文网 - 专业文章范例文档资料分享平台

实验5(1) 参考答案

来源:用户分享 时间:2025/5/30 11:33:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验5(1) 类的组合

参考答案

一、实验目的与实验要求

(1)理解类组合的概念与作用。

(2)掌握对象成员的定义方法,理解对象成员的构造与析构方法。 (3)理解组合后类的构造函数与析构函数的调用次序。 (4)掌握对象成员中私有成员和保护成员的访问方法。

二、实验内容

题目1:对象成员的定义、构造与访问。

定义三个类Member1、Member2和New。Member2中包含有Member1类型的成员,New中包含有Member1与Member2类型的成员。程序的具体要求如下。

① 在Member1类中,它含有一个int型私有数据成员x以及三个公有成员函数。三个成员函数分别为构造函数、析构函数与显示函数show( )。show( )函数的作用是输出x的值。

② 在Member2类中,它含有三个私有数据成员,分别是Member1型的对象obj1、obj2与int型的数据y。此外,它还含有三个公有成员函数,分别是构造函数、析构函数与显示函数show( )。show( )函数的作用是输出y的值。

③ 在New类中,它含有三个私有数据成员,分别是Member1型的对象m1、Member2型的对象m2与int型的数据z。此外,它还含有三个公有成员函数,分别是构造函数、析构函数与显示函数show( )。show( )函数的作用是输出z的值。

④ main( )函数中定义一个New型的对象,并调用show( )函数。 程序为:

#include using namespace std; class Member1 {

public: Member1(int a) { x = a; cout << \ } ~Member1( ) { cout << \ } void show( ) { cout << \

} private: int x; };

class Member2 {

public: Member2( int a,int b,int c ):obj1(a),obj2(b) { y = c; cout << \ } ~Member2( ) { cout << \ } void show( ) { cout << \ } private: Member1 obj1, obj2; int y; };

class New {

public: New( int a,int b,int c,int d,int e): m1(a),m2(b,c,d) { z = e; cout << \ } ~New( ) { cout << \ } void show( ) { cout << \ } private: Member1 m1; Member2 m2; int z;

};

int main( ) { New ex(1,2,3,4,5); ex.show( ); return 0; }

题目2:类组合的应用。

编写一个程序,对一批学生的资料进行处理。程序的具体要求如下。

① 编写日期类Date,它含有三个私有int型数据成员year、month、day,分别表示年、月、日。此外,它还含有五个公有成员函数,分别是构造函数、显示函数Show( )、取值函数GetYear( )、GetMonth( )和GetDay( )。Show( )的功能是输出当前对象的日期,GetYear( )、GetMonth( )、GetDay( )的作用分别是返回year、month和day的值。

② 编写学生类Student,它含有三个私有数据成员,分别是字符串型变量name、int型变量score与Date型变量birthday,分别表示学生的姓名、成绩与出生日期。此外,它还含有五个公有成员函数,分别是构造函数、显示函数Show( )、取值函数GetName( )、GetScore( )和GetDate( )。Show( )的功能是输出当前对象的所有信息,GetName( )、GetScore( )、GetDate( ) 的作用分别是返回name的首地址、score的值以及birthday的值。

③ 编写函数CompareDate。它的原型如下,它的作用是比较日期d1和d2的前后。如果d1在d2前,返回-1,如果d1在d2后,返回1,如果d1和d2是同一天,返回0。

int CompareDate( Date d1, Date d2 );

④ 编写函数SortByName。它的原型如下,它的作用是对st数组的前num个数据按姓名进行排序。

void SortByName( Student * st , int num );

⑤ 编写函数SortByScore。它的原型如下,它的作用是对st数组的前num个数据按成绩进行排序。

void SortByScore( Student *st , int num );

⑥ 编写函数SortByBirthday。它的原型如下,它的作用是对st数组的前num个数据按出生日期进行排序。

void SortByBirthday( Student * st, int num );

⑦ 编写函数PrintStudent。它的原型如下,它的作用是输出st数组的前num项。 void PrintStudent( Student *st , int num );

⑧ 编写主函数main( ),在main( )中定义对象数组st,并调用上述函数进行测试。st数组使用下列数据进行初始化。

Jack, 99, 1990, 2, 5 Mike, 62, 1989, 12, 25 Tom, 88, 1990, 3, 14 Kate, 74, 1989, 10, 15 Rowen, 92, 1990, 5, 22

程序如下:

#include using namespace std;

class Date {

public: Date( int y = 2000 , int m = 1 , int d = 1 ) { year = y; month = m; day = d; } void Show( ) { cout << year << \ } int GetYear( ) { return year; } int GetMonth( ) { return month; } int GetDay( ) { return day; } private: int year; int month; int day; };

class Student {

public: Student( int y=0,int m=0,int d=0,int s=0,char *p=\ \ { strcpy( name, p ); score = s; } void Show( ) { cout << name << \ birthday.Show(); }

搜索更多关于: 实验5(1) 参考答案 的文档
实验5(1) 参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c15ovm659742v3bv3zrh9_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top