欢迎来到天天文库
浏览记录
ID:33825199
大小:115.00 KB
页数:16页
时间:2019-03-01
《c++【实现分数重载 】【实现分数的加减乘除】重载函数 运算符重载》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、昆明理工大学理学院信息与计算科学专业操作性实验报告年级:2010级姓名:学号:指导教师:实验课程名称:开课实验室:理学院机房实验成绩:学风(5)观察能力(15)操作能力(30)调试能力(50)其它总分实验内容:1.实验/作业题目:写一个分数的程序,应用重载函数,使运算符重载,并实现分数的加减乘除。对1~100分内各个分数段给出ABCD的评价2.实验/作业课时:2个课时3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):先写程序,再写流程图。#includeusingnamespacestd;classfraction{第16页private:
2、intabove;//分子intbelow;//分母voidreduction();//约分fractionmakeCommond(fraction);//通分public:fraction(inta=0,intb=1){//构造函数above=a;below=b;}fractionoperator+(fraction);//两分数相加fractionoperator-(fraction);//两分数相减fractionoperator*(fraction);//两分数相乘fractionoperator/(fraction);//两分数相除voiddisplay();//显示分数
3、voidinput();//输入分数};第16页//***********分数的约分*********//voidfraction::reduction(){inti,comdiv,small,max;if(above1;i--){第16页if(small%i==0&max%i==0)break;}comdiv=i;//最大公约数if(i!=0){above/=i;below/=i;}}//*************分数的通分******
4、*******//fractionfraction::makeCommond(fractionfrac){intb1=below,b2=frac.below,m,s;if(b1>b2)第16页{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;第16页above=above*(small/below);frac.above=frac.above*(small/frac.below);below=small;frac.below=small;returnfrac;}
5、//***************分数的相加*************//fractionfraction::operator+(fractionfr){fractionf3;f3.above=above*fr.below+fr.above*below;第16页f3.below=below*fr.below;f3.reduction();returnf3;}//*********************分数的相减***************//fractionfraction::operator-(fractionfr){fractionf3;f3.above=above*fr.
6、below-fr.above*below;f3.below=below*fr.below;f3.reduction();第16页returnf3;}//*******************分数的相乘****************//fractionfraction::operator*(fractionfr){fractionf3;f3.above=above*fr.above;f3.below=below*fr.below;f3.reduction();returnf3;}//******************分数的相除***********//第16页fractionfr
7、action::operator/(fractionfr){fractionf3;f3.above=above*fr.below;f3.below=below*fr.above;f3.reduction();returnf3;}//*********************分数的输出*************//voidfraction::display(){第16页cout<
此文档下载收益归作者所有