C++ 上机实验答案类的定义与应用.doc_第1页
C++ 上机实验答案类的定义与应用.doc_第2页
C++ 上机实验答案类的定义与应用.doc_第3页
C++ 上机实验答案类的定义与应用.doc_第4页
C++ 上机实验答案类的定义与应用.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

实验2 类的定义与应用1、实验目的和要求: 掌握类定义的方法,理解类类型,实例的含义,体会面向对象程序设计中数据隐藏的概念。理解构造函数和析构函数的作用和运行时间,掌握拷贝构造函数的作用。并熟练掌握复杂对象类型的运用。2、实验内容:(1)定义一个时间类Time,它能提供由时、分、秒组成的时间。要求能够修改时间和打印出时间。#includeusing namespace std;class Timepublic:void displayTime();void setTime();private:int hour;int minute;int second;void Time:displayTime()couthour时minute分second秒hourminutesecond;(2)编写一个计数器类,定义一个私有数据成员,通过两个成员函数,分别使其完成加1和减1操作。用构造函数数据成员初始化为0,输出函数可以输出数据成员的值。#includeusing namespace std;class counterpublic:void functionP();void functionM();void setNum();void print();private:int cNum;void counter:functionP()cNum +;void counter:functionM()cNum -;void counter:setNum()cNum = 0;void counter:print()coutcounter = cNumendl;(3)设计一个时间类,要求包含以下功能:数据成员:时、分、秒成员函数:各种重载构造函数析构函数可以通过函数分别设置时间的各个组成部分也可以整体设置时间有一个tick函数,负责给当前时间加1秒钟,然后输出新的时间#includeusing namespace std;class Timepublic:void displayTime();Time();Time(int Hour,int Minute,int Second);Time();void setHour(int h);void setMinute(int m);void setSecond(int s);void setTime(int hou,int min,int sec);void tick();private:int hour,minute,second;Time:Time(int Hour,int Minute,int Second)hour = Hour;minute = Minute;second = Second;Time:Time()coutdestructingendl;void Time:setHour(int h)hour = h;void Time:setMinute(int m)minute = m;void Time:setSecond(int s)second = s;void Time:setTime(int hou,int min,int sec)hour = hou;minute = min;second = sec;void Time:tick()if(second = 59)if(minute = 59)second = 0;minute = 0;hour +;elsesecond = 0;minute +;elsesecond +;#includeusing namespace std;class Rationalpublic: Rational(int nn,int mm); /构造函数void R_add(Rational & A); /加 void R_sub(Rational & A); /减 void R_mul(Rational & A); /乘 void R_div(Rational & A); /除 void print(); /以简分数形式显示,注意约分private: void simple( ); /约分 int m; /分母int n; /分子;Rational:Rational(int nn,int mm)n = nn;m = mm;void Rational:R_add(Rational &A)n = A.m*n + A.n*m; m = A.m*m;simple();void Rational:R_sub(Rational &A)n = A.m*n - A.n*m;m = A.m*m;simple();void Rational:R_mul(Rational &A)n *= A.n;m *= A.m;simple();void Rational:R_div(Rational &A)n *= A.m;m *= A.n;simple();void Rational:simple()int num = 1;for(int i = 1;i=num)num = i;n = n/num;m = m/num;void Rational:print()coutn/mendl;void main()Rational R1(1,1);Rational R2(5,10);R1.R_mul(R2); R1.print(); (5) 定义一个类包含一个整型数的指针变量,在构造函数中用new分配10个整型数的内存空间,在析构函数中用delete释放内存空间,并编写给内存空间赋值和输出的成员函数。#includeusing namespace std;class Pointerpublic:Pointer();Pointer();private:int *ptr;Pointer:Pointer() ptr =new int 10;for(int i = 0;iptri;Pointer:Pointer()delete ptr;(6) 完成String类 class Stringpublic:String(const char *str = NULL); /普通构造函数String(const String &other); /拷贝构造函数 String(); /析构函数private:char *m_data; / 用于保存字符串;完成String 的3个成员函数,并编写一个主函数,在主函数中对所编写的成员函数进行测试。/* 完成String 的3个成员函数,并编写一个主函数,在主函数中对所编写的成员函数进行测试。*/#includeusing namespace std;class Stringpublic:String(const char *str = NULL); /普通构造函数String(const String &other); /拷贝构造函数void display(); String(); /析构函数private:char *m_data; / 用于保存字符串;String:String(const char *str) if(str = NULL) m_data = new char 1;m_data = 0;else int length = strlen(str); m_data = new char length +1; strcpy(m_data,str);String:String(const String &other)if(other.m_data = NULL) m_data = new char 1;m_data = 0;else int length = strlen(other.m_data); m_data = new char length +1; strcpy(m_data,other.m_data);String:String()delete m_data;void String:display()cout*m_dataendl;void main()const char *str = 111222;String string1(str);string1.display();String string2(string1);string1.String();string2.display();string2.String();(7)完成Array类class Arraypublic: Array(); /所有数组元素初始化为0 int& getData(int i); /返回下标为i的数组元素的引用 void print(); /打印出所有数组元素的值 void input(); /对所有数组元素进行输入private: int m_data10;完成Array 的成员函数,并编写一个主函数,在主函数中对所编写的成员函数进行测试。#includeusing namespace std;class Arraypublic:Array(); /所有数组元素初始化为0int& getData(int i); /返回下标为i的数组元素的引用void print(); /打印出所有数组元素的值void input(); /对所有数组元素进行输入private:int m_data10;Array:Array()for(int num=0;num10;num+)m_datanum = 0;int& Array:getData(int i)return m_datai;void Array:input()for(int num=0;numm_datanum;void Array:print()for(int num=0;num10;num+)coutm_datanum ;coutendl;void main()Array arr;arr.print();arr.input();arr.print();coutarr.getData(5)endl;(8) 定义圆类(由圆心坐标点类和半径组成),利用友元函数判断两个圆的位置关系(圆间关系包括相交、相切、相离)。 (9) 定义类Point.要求定义类对象时,可以有这样的定义语句:#include using namespace std;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 Point:fun (Point &p)x=p.x ;y=p.y ;cout The fun(Point &

温馨提示

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

评论

0/150

提交评论