C++ 实验报告3_第1页
C++ 实验报告3_第2页
C++ 实验报告3_第3页
C++ 实验报告3_第4页
C++ 实验报告3_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

备注:实验报告的命名方式为:实验报告3+学号+姓名.doc一、实验目的1. 理解概念:类的构造函数、拷贝构造函数、析构函数。2. 理解类的构造函数和析构函数的作用及运行机制。3. 掌握构造函数、拷贝构造函数和析构函数的定义及应用。4. 理解类的组合关系,并掌握类组合关系的实现。二、实验内容(将源代码写在对应题目的下面)1.基础部分(1)定义一个日期类Date,包括月、日、年3个私有数据成员,函数成员包括公有的构造函数(包括带参构造函数,无参构造函数)、拷贝构造函数和析构函数、设置数据成员和获取数据成员等函数;在main函数中定义Date类的对象,对其进行初始化、修改和输出。(可自行增加需要的成员函数)(2)定义学生类Student,包括一些基本信息如学号,姓名,性别,出生日期属于日期类Date型(利用第(1)题的Date类),函数成员包括公有的构造函数(包括带参构造函数,无参构造函数)、拷贝构造函数和析构函数、设置数据成员和获取数据成员等函数;在main函数中定义Student类的对象,对其进行初始化、修改和输出。(这是组合类的问题。请使用构造函数实现对象成员的初始化。可自行增加需要的成员函数)#include #include using namespace std;class Datepublic:Date()Date(int y,int m,int d):m_year(y),m_month(m),m_day(d)Date(Date &con_date)m_year=con_date.m_year;m_month=con_date.m_month;m_day=con_date.m_day;Date()void show()coutm_year-m_month-m_year=m_year;private:int m_year,m_month,m_day; class Studentpublic:Student()Student(int id,string na,string ge,Date &birth):birthday(birth)idnumber=id;name=na;gender=ge;Student(int id,string na,string ge,int year,int month,int day):birthday(year,month,day)idnumber=id;name=na;gender=ge;Student(Student &stu)idnumber=stu.idnumber;name=;gender=stu.gender;birthday=stu.birthday;void show() coutname:nameendlnumber:idnumberendlgender:genderendl; coutbirthday:; birthday.show();coutname=name;string getName()return name;Student()private:int idnumber;string name;string gender;Date birthday;int main()int x,y,z,i;string n,m;coutplease input idnumber:i;coutplease input name:n;coutplease input gender:m;coutplease input year,month,day:xyz;Date one(x,y,z);Student s1(i,n,m,one);coutendl;s1.show();return 0;2.进阶部分(3)利用第(1)题和第(2)题中定义的Date类和Student类,在main函数中定义班级通讯录(可用Student类的对象数组实现,数组元素个数可以定义符号常量),并添加本班同学和显示同学信息。(4)读程序写结果。注:这是一个组合类的问题。点类point的两个对象组合成了line类。线类的构造函数实现了对象成员p1、p2的初始化。#include #include#includeusing namespace std;class pointprivate:int x;int y;void setx(int xx)x=xx;void sety(int yy)y=yy;public:/下面这段被注释掉的无参构造函数,如果去掉注释,会怎么样?分析原因。/*point()x=0;y=0;*/point(int xx=0,int yy=0);point(const point&pt)x=pt.x;y=pt.y;coutcopy constructor.endl;void setxy(int xx,int yy)setx(xx);sety(yy);int getx()return x;int gety()return y;void showpoint()coutx=x,y=yendl;point()coutpoint des.endl;inline point:point(int xx,int yy)x=xx;y=yy;coutconstructor.endl;class lineprivate:point p1,p2;public:line(point &tp1,point &tp2):p1(tp1),p2(tp2)coutline cons.endl;line(line & ltemp)p1=ltemp.p1;p2=ltemp.p2;coutline copy cons.endl;double getlen()return sqrt(pow(p1.getx()-p2.getx(),2)+pow(p1.gety()-p2.g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论