分数计算器设计报告

分数计算器设计报告

ID:23255464

大小:270.51 KB

页数:19页

时间:2018-11-05

分数计算器设计报告_第1页
分数计算器设计报告_第2页
分数计算器设计报告_第3页
分数计算器设计报告_第4页
分数计算器设计报告_第5页
资源描述:

《分数计算器设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、分数计算器设计报告<<高级语言程序设计》课程设计设计报告目录一、设计目的二、总体设计三、详细设计四、调试与测试五、源程序清单及执行结果六、学习体会一、设计目的1、本程序旨在训练学生的基本编程能力,了解分数计算器的实现过程;2、熟练应用运算符的重载及输入输出流的重载;3、掌握C++异常处理机制try…throw…catch的应用;4、以C++程序设计语言为基础,进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合,从而提高自我分析问题、解决问题的能力。二、总体设计(一)要求:设计一个分数计算器,进行分数的算术运算和逻辑运算。(

2、1)能够对分数进行‘+’、‘-’、‘*’、‘/’运算并能够比较两个分数的大小。(2)以a/b的形式输入输出分数,允许输入输出整数这种特殊形式。(3)对不是约化型的分数进行约化,避免分母为复数。(4)如果分数的分母为0、除数为0或者输入时格式有错误,采用异常处理机制解决。(5)用下面几组数据测试分数计算器的‘+’、‘-’、‘*’、‘/’、比较运算功能:321/32-1/3-1/21/-31/23/01/23#31/26/41/21/30(二)需求分析:输入要求:(1).用户进入界面后,根据具体需求选择要操作的类型;(2).可以正确的输入整数并与分数进行运算。输出要求:

3、(1).以分数的最简格式输出数据,如1/2;(2).若操作出现错误时,能提示相应的信息供用户更改。三、详细设计(一)流程图是否bc输入b或c进行相应操作进入main函数judge调用calculate函数调用compare函数是否继续进行分数的相应操作结束(1)主控函数流程图否是调用乘法函数调用减法函数调用加法函数调用除法函数输入’+’‘-’‘*’‘/’进行相应操作cc进入Calculate函数是否以上述结果作为一个分数继续做运算返回主函数(2)子函数流程图Calculate(二)UML类图Fraction类的完整表示Fraction-x:int-z:int+Fra

4、ction(x1:int=0,z2:int=1)+huajian():void+operator+(Fractionf2):Fraction+operator-(Fractionf2):Fraction+operator*(Fractionf2):Fraction+operator/(Fractionf2):Fraction+calculate():void+compare():void+friendoperator<<(ostream&out,Fraction&f):void+friendoperator>>(istream&in,Fraction&f):void

5、(三)具体每个函数的功能实现:Fraction(intx1=0,intz2=1):构造函数,初始化为0/1;voidhuajian():分数化简函数,使分子分母同时除以最大公约数,以达到分数的最简形式;Fractionoperator+(Fractionf2):重载加法运算符+,实现两个分数相加;Fractionoperator-(Fractionf2):重载加法运算符-,实现两个分数相减;Fractionoperator*(Fractionf2):重载加法运算符*,实现两个分数相乘;Fractionoperator/(Fractionf2):重载加法运算符/,实现

6、两个分数相除;voidcalculate():算术运算函数,通过判断运算符的类型,执行调用相应的重载函数;voidcompare():逻辑运算函数,比较两个分数的大小;friendvoidoperator>>(istream&in,Fraction&f):利用友元来实现输入流的重载;friendvoidoperator<<(ostream&out,Fraction&f):利用友元来实现输出流的重载;intgcd(intm,intn):求两个整数的最大公约数voidMyfun(Fraction&f):利用try…throw…catch,建立异常处理机制。四、调试测试(

7、1)、重载输入输出流时,刚开始写成了voidoperator>>(istream&in,Fraction&f),并定义在了类里面,导致编译出错,后来经过修改成友元成功解决;(2)、刚开始编写gcd()函数时,未保存最大公约数的值,导致分数的化简结果错误,后来保存了最大公约数的值以后成功解决;(3)重载输入输出流时未加引用,导致输入输出结果错误,加了引用以后成功解决;(4)刚开始输入整数的时候,由于C++在封装的时候,自动跳过空白(空格,表格键。。。。),所以系统不会接收换行符,加入in.unsetf(ios::skipws),取消cin输入跳过空白的默认设置,此

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

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

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