有理数运算c++课程设计报告+源代码

有理数运算c++课程设计报告+源代码

ID:6415341

大小:329.50 KB

页数:14页

时间:2018-01-13

有理数运算c++课程设计报告+源代码_第1页
有理数运算c++课程设计报告+源代码_第2页
有理数运算c++课程设计报告+源代码_第3页
有理数运算c++课程设计报告+源代码_第4页
有理数运算c++课程设计报告+源代码_第5页
资源描述:

《有理数运算c++课程设计报告+源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、课程设计报告课程设计题目:有理数运算学生姓名:冯绍文专业:软件工程班级:1221815学号:201220181502指导教师:许志文2013年06月20日14东华理工大学1.有理数运算问题描述有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。在C++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。对有理数的各种操作都可以用重载运算符来实现。基本要求定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。写一个优化函数,它的作用是

2、使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。测试数据在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。实现提示设有两个有理数a/b和c/d,则有:(1)有理数相加分子=a*d+b*c;分母=b*d(2)有理数相减分子=a*d-b*c;分母=b*d(3)有理数相乘分子=a*c;分母=b*d14(1)有理数相除分子=a*d;分母=b*c优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这

3、样可保证所存储的有理数随时都是最优的。对于判断两个有理数是否相等,由于在对有理数进行各种运算后都对其进行优化,所以判定两个有理数是否相等只需判定它们两个的分子和分母分别相等即可。选做内容重载插入(<<)和提取(>>)运算符,使得对有理数可以直接输入输出。设有理数输入格式为:整数1整数2//整数1为分子,整数2为分母有理数输出格式为:分子/分母以下为代码#include#include#include#include//usingnamespacestd;删除此处才能为类定义友元函数classrationalnu

4、mber//定义一个有理数类{private:intfenmu;//有理数分母intfenzi;//有理数分子public:rationalnumber(inta=1,intb=1);//带默认形参的构造函数voidsetnumber(inta,intb);//设置分子分母的函数rationalnumberoperator+(rationalnumberaa);//重载加法运算符14rationalnumberoperator-(rationalnumberaa);//重载减法运算符rationalnumberoperator*(rationalnumberaa);//重载乘法运算符rati

5、onalnumberoperator/(rationalnumberaa);//重载除法运算符voiddisplay();//有理数输出函数//friendvoidadd(rationalnumbera,rationalnumberb);friendrationalnumber&yuefen(rationalnumber&r);//将约分函数设为友元函数frienddoublezhuan(rationalnumberr);//将有理数转换成实数函数声明friendistream&operator>>(istream&input,rationalnumber&r);//对输入流符号的重载为有元

6、函数friendostream&operator<<(ostream&output,rationalnumber&r);//对输出流符号的重载为友元函数/*对"<<"和">>"重载的函数形式如下:只能重载为友元函数istream&operator>>(istream&,自定义类&);ostream&operator<<(ostream&,自定义类&);*/};rationalnumber::rationalnumber(inta,intb){fenzi=a;fenmu=b;}voidrationalnumber::setnumber(inta,intb){fenzi=a;fenmu=b;}r

7、ationalnumberrationalnumber::operator+(rationalnumberaa){rationalnumberc;c.fenmu=fenmu*aa.fenmu;c.fenzi=fenzi*aa.fenmu+aa.fenzi*fenmu;returnc;}rationalnumberrationalnumber::operator-(rationalnumberaa){ratio

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。