c++实验报告文档格式.docx
- 文档编号:8413422
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:13
- 大小:16.40KB
c++实验报告文档格式.docx
《c++实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《c++实验报告文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
cmath>
cstdlib>
iostream>
usingnamespacestd;
classfraction
{
public:
fraction(intx=0,inty=1);
voidprint();
//以“/”的分数形式输出
//定义重载运算符的友元函数
private:
intnumerator,denominator;
//numerator为分子,denominator为分母
voidoptim();
//详细分析该函数功能
};
voidfraction:
:
optim()//请解释出现的if-else对照的实际情况及do-while循环的作用
intgcd,min,max;
if(denominator==0)
{
cout<
<
"
Azerodenominatorisinvalid"
endl;
exit
(1);
}
gcd=(abs(numerator)>
abs(denominator)?
abs(denominator):
abs(numerator));
if(gcd==0)return;
//注意:
return语句的特殊用法
if(abs(numerator)>
abs(denominator))
max=numerator;
min=denominator;
else
min=numerator;
max=denominator;
do
gcd=max%min;
max=min;
min=gcd;
}while(gcd!
=0);
numerator/=max;
denominator/=max;
if(denominator<
0)
numerator=-numerator;
denominator=-denominator;
}
fraction:
fraction(intx,inty)
{//将构造函数补充完整
print()
{//将该函数补充完整
//四个运算符重载函数具体实现
intmain()//1.记下调试过程中出现的系统错误及解决办法;
2.调试通过后将运行结果记在实验报告八中
cout<
输入测试数据:
fractionr1(2,8),r2(23,45),r3,r4(-63,789),r5(3),r6(56,-894),r7(0,3),r8(-12,-48);
原始数据:
r1(2,8)"
处理后数据r1="
;
r1.print();
r2(23,45)"
处理后数据r2="
r2.print();
r3"
处理后数据r3="
r3.print();
r4(-63,789)"
处理后数据r4="
r4.print();
r5(3)"
处理后数据r5="
r5.print();
r6(56,-894)"
处理后数据r6="
r6.print();
r7(0,3)"
处理后数据r7="
r7.print();
r8(-12,-48)"
处理后数据r8="
r8.print();
下一组运算结果:
r3=r1+r2;
r1+r2="
r3=r1-r2;
r1-r2="
r3=r1*r2;
r1*r2="
r3=r1/r2;
r1/r2="
return0;
答案
iostream.h>
//usingnamespacestd;
friendfractionoperator+(fractionf1,fractionf2);
friendfractionoperator-(fractionf1,fractionf2);
friendfractionoperator*(fractionf1,fractionf2);
friendfractionoperator/(fractionf1,fractionf2);
//最大公约数
//最大公倍数numerator*denominator/max;
//numerator=numerator/max;
//denominator=denominator/max;
//变成最简分数
numerator=x;
denominator=y;
optim();
cout<
numerator<
/"
denominator<
fractionoperator+(fractionf1,fractionf2)
fractionf;
f.numerator=f1.numerator*f2.denominator+f1.denominator*f2.numerator;
f.denominator=f1.denominator*f2.denominator;
returnf;
fractionoperator-(fractionf1,fractionf2)
f.numerator=f1.numerator*f2.denominator-f1.denominator*f2.numerator;
fractionoperator*(fractionf1,fractionf2)
fractionf3;
f3.numerator=f1.numerator*f2.numerator;
f3.denominator=f1.denominator*f2.denominator;
returnf3;
fractionoperator/(fractionf1,fractionf2)
fractionf4;
f4.numerator=f1.numerator*f2.denominator;
f4.denominator=f1.denominator*f2.numerator;
returnf4;
思考
//分母为0,错误退出
//ifelse语句是找出分子,分母较大
do//dowhile语句是辗转相减法。
//这二步,分子分母同时除以最大公约数max;
0)
//感觉这个根本没有什么用,分子,分母同时变号,值也不变,我去掉了,也没有出现错误。
}
intmain()
fractionr1(2,8),r2(23,45),r3,r4(-9,6),r5(100,-50),r6(-50,-100);
r4(-9,6)"
r5(100,-50)"
r5(-50,-100)"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)