c实现分数重载实现分数加减乘除重载函数运算符重载.docx

上传人:b****6 文档编号:12806878 上传时间:2023-06-08 格式:DOCX 页数:9 大小:79.99KB
下载 相关 举报
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第1页
第1页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第2页
第2页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第3页
第3页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第4页
第4页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第5页
第5页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第6页
第6页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第7页
第7页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第8页
第8页 / 共9页
c实现分数重载实现分数加减乘除重载函数运算符重载.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c实现分数重载实现分数加减乘除重载函数运算符重载.docx

《c实现分数重载实现分数加减乘除重载函数运算符重载.docx》由会员分享,可在线阅读,更多相关《c实现分数重载实现分数加减乘除重载函数运算符重载.docx(9页珍藏版)》请在冰点文库上搜索。

c实现分数重载实现分数加减乘除重载函数运算符重载.docx

c实现分数重载实现分数加减乘除重载函数运算符重载

昆明理工大学理学院

信息与计算科学专业操作性实验报告

年级:

2010级姓名:

学号:

指导教师:

实验课程名称:

开课实验室:

理学院机房

实验成绩:

学风(5)

观察能力(15)

操作能力(30)

调试能力(50)

其它

总分

实验内容:

1.实验/作业题目:

写一个分数的程序,应用重载函数,使运算符重载,

并实现分数的加减乘除。

对1~100分内各个分数段给出ABCD的评价

2.实验/作业课时:

2个课时

3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):

先写程序,再写流程图。

#include

usingnamespacestd;

classfraction

{

private:

intabove;//分子

intbelow;//分母

voidreduction();//约分

fractionmakeCommond(fraction);//通分

public:

fraction(inta=0,intb=1)

{//构造函数

above=a;below=b;

}

fractionoperator+(fraction);//两分数相加

fractionoperator-(fraction);//两分数相减

fractionoperator*(fraction);//两分数相乘

fractionoperator/(fraction);//两分数相除

voiddisplay();//显示分数

voidinput();//输入分数

};

//***********分数的约分*********//

voidfraction:

:

reduction()

{

inti,comdiv,small,max;

if(above

{

small=above;

max=below;

}

else

{

small=below;

max=above;

}

for(i=small;i>1;i--)

{

if(small%i==0&max%i==0)

break;

}

comdiv=i;//最大公约数

if(i!

=0)

{

above/=i;

below/=i;

}

}

//*************分数的通分*************//

fractionfraction:

:

makeCommond(fractionfrac)

{

intb1=below,b2=frac.below,m,s;

if(b1>b2)

{

m=b1%b2;

s=b2;

}

else

{

m=b2%b1;

s=b1;

}

while(m>0)

{

intres=s%m;

s=m,m=res;

}

intsmall=(b1*b2)/s;

above=above*(small/below);

frac.above=frac.above*(small/frac.below);

below=small;

frac.below=small;

returnfrac;

}

//***************分数的相加*************//

fractionfraction:

:

operator+(fractionfr)

{

fractionf3;

f3.above=above*fr.below+fr.above*below;

f3.below=below*fr.below;

f3.reduction();

returnf3;

}

//*********************分数的相减***************//

fractionfraction:

:

operator-(fractionfr)

{

fractionf3;

f3.above=above*fr.below-fr.above*below;

f3.below=below*fr.below;

f3.reduction();

returnf3;

}

//*******************分数的相乘****************//

fractionfraction:

:

operator*(fractionfr)

{

fractionf3;

f3.above=above*fr.above;

f3.below=below*fr.below;

f3.reduction();

returnf3;

}

//******************分数的相除***********//

fractionfraction:

:

operator/(fractionfr)

{

fractionf3;

f3.above=above*fr.below;

f3.below=below*fr.above;

f3.reduction();

returnf3;

}

//*********************分数的输出*************//

voidfraction:

:

display()

{

cout<

}

//*******************分数的输入****************//

voidfraction:

:

input()

{

cout<<"请输入分数的分子:

";

cin>>above;

while(true)

{

cout<<"请输入分数的分母(不等于零):

";

cin>>below;

if(below==0)

{

cout<<"分母不能为零!

";

}

else

break;

};

}

intmain()

{

fractionf1(4,20),f2(80,400);

f1.input();

f2.input();

f1.display();

f2.display();

cout<<"分数加法"<

f1.operator+(f2).display();

cout<<"分数减法"<

f1.operator-(f2).display();

cout<<"分数乘法"<

f1.operator*(f2).display();

cout<<"分数除法"<

f1.operator/(f2).display();

return0;

}

 

4.算法描述、流流程图或程序图:

 

5.实验数据和实验结果(用屏幕图形表示,可另加附页):

 

6.心得体会:

分数的加、减、乘、除,用重载函数重载运算符,使简便,分数的

加、减、乘、除,要构造函数,还要实现约分、通分,还是多看、多练、

多写、多想。

 

评分标准学风--报告格式规范,文字清晰观察能力--正确描述和理解需要操作的问题

操作能力--正确输入程序,熟悉编程环境调试能力--熟练使用调试功能解决程序错误

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2