C++分数类及其他.docx_第1页
C++分数类及其他.docx_第2页
C++分数类及其他.docx_第3页
C++分数类及其他.docx_第4页
C++分数类及其他.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

7.6 本 章 实 验 1实验要求 z 掌握类的创建方法。 z 学会设计构造函数。 z 掌握复制构造函数的定义。 z 了解组合类的定义。 2实验内容 (1)设计一个线类 line,线对象的两个顶点的坐标为(x1,y1)和(x2,y2) 。函数成员getlength 用于求线的长度,函数成员 setSp、setDp 修改线的顶点坐标。请完成该类的定义,并在主函数中对类的函数成员进行测试。 (2)设计一个描述学生基本情况的类Student,数据成员包括 11 位学号(char 类型数组,默认值为 u0000000000) 、C+成绩、英语和数学成绩(默认成绩为 0) ,函数成员包括获取学号、求出总成绩和平均成绩,更改学生学号和各科成绩。 请画出 Student 类的 UML 图。 请完成 Student 类的定义。 提示:获取学号函数返回学生学号,返回值是学号数组的首地址,所以函数返回值类型应定义为 char。 主函数中测试该类,观察函数成员实现是否正确。 (3)请定义一个分数类,数据成员为分子和分母,要求如下。 在分数对象创建时,分母默认为 2,分子默认为 1。如果分母为 0,则自动修正为 1。 该类可以实现对分数的化简、乘法、除法、加法和减法运算,运算结果为最简分数。 (4) 设计一个新的数据类型:Triangle,可以计算面积和周长 Triangle内含有两个部分 静态描述:三角形的三条边,用变量表示; 行为特征:针对这三条边的函数,分别求周长和面积; 用设计的数据类型Triangle生成一个三角形变量;主函数定义一个满足三角形边长的对象和不满足三角形边长的对象,如果满足请输出周长和面积.(5)借书卡类 card 中内嵌了日期类对象,请补足 date 类和 card 的函数成员定义。 #include #include using namespace std; class date int year; int month; int day; public: date(int Year=0,int Month=0,int Day=0);/构造函数,给出初始的年月日 void setdate(int Year,int Month,int Day);/设置年月日 int get_year(); /获取年份 int get_month(); /获取月份 int get_day(); /获取日期 ;class card int book; /图书编号 int reader; /借阅者编号 date borrow_day; /出借日期 int expiry; /借阅期限 public: card(int Book, int Reader,date Borrow_day,int Expiry=60); /构造函数 date get_borrow_day(); /获取出借日期 date get_return_day(); /获取归还日期,归还日期=出借日期+借阅期限 int get_book(); /获取图书编号 int get_reader(); /获取借阅者编号 int get_expiry(); /获取借阅期限 ; int main() int stu=2012678; /借阅者编号 int cbook=100034; /图书编号 date day(2012,1,31); /借书日期 card c1(cbook,stu,day); /创建 card 对象 c1 /以下打印借书卡 c1 信息 cout借书卡 c1: endl; cout-endl; coutsetw(10)*图书号: c1.get_book()endl; coutsetw(10)*借书人: c1.get_reader()endl; coutsetw(10)*借阅期限: c1.get_expiry()endl; coutsetw(10)*出借日期: c1.get_borrow_day(). get_year():c1.get_borrow_day().get_month(): c1.get_borrow_day().get_day()endl; coutsetw(10)*归还日期: c1.get_return_day(). get_year():c1.get_return_day().get_month(): c1.get_return_day().get_day()endl; cout-endl; day.setdate(2012,12,6); /设置借书日期 cbook=100077;/图书者编号 card c2(cbook,stu,day,30); /创建 card 对象 c2 /以下打印借书卡 c2 信息 cout借书卡 c2: endl; cout-endl; coutsetw(10)*图书号: c2.get_book()endl; coutsetw(10)*借书人: c2.get_reader()endl; coutsetw(10)*借阅期限: c2.get_expiry()endl; coutsetw(10)*出借日期: c2.get_borrow_day(). get_year():c2.get_borrow_day().get_month(): c2.get_borrow_day().get_day()endl; coutsetw(10)*归还日期: c2.get_return_day(). get_year():c2.get_return_day().get_month(): c2.get_return_day().get_day()endl; cout-endl; 以下是分数的源代码:#include #include using namespace std;int gongyin(int,int);class fenint fenzi,fenmu,xing; public:fen()fenzi=1;fenmu=2;xing=1;fen(int x, int y)xing=1;if(y=0)y=1;if(x*y0) xing=-1; x=abs(x);y=abs(y);if(x=0) fenzi=x;fenmu=y; xing=0;elsefenzi=x/gongyin(x,y); fenmu=y/gongyin(x,y);void setfen(int x,int y)xing=1;if(y=0)y=1;if(x*y0) xing=-1; x=abs(x);y=abs(y);if(x=0) fenzi=x;fenmu=y; xing=0;elsefenzi=x/gongyin(x,y); fenmu=y/gongyin(x,y);void setxing(int x)xing=x;fen mul(fen a)/if(a.getxing()=0|xing=0)/a.setfen(0,1);/elsea.setfen(xing*a.getxing()*fenzi*a.getfenzi(),fenmu*a.getfenmu(); return a;fen div(fen a)if(a.xing=0) cout错误,作为分母的分数不能为0add(a);int getfenzi()return fenzi;int getfenmu()return fenmu;int getxing()return xing;void getfen()if(xing=1)if(fenmu=1) cout 分数是 fenziendl;else cout 分数是 fenzi/fenmuendl;if(xing=-1)if(fenmu=1) cout 分数是 fenziendl;else cout 分数是 -fenzi/fenmuendl;if(xing=0) cout 分数是0endl; ; int gongyin(int x,int y)int c;while(y!=0)c=x%y;x=y;y=c;return x;int main()int x,y;char op;docout第一个分数A:endl; coutx;couty; fen A(x,y);cout第二个分数B:endl; coutx;couty; fen B(x,y); fen C; coutop; switch(op) case +:C=A.add(B);coutA+B的结果是; C.getfen();break;case -:C=A.sub(

温馨提示

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

评论

0/150

提交评论