c++课程设计--分数计算器

c++课程设计--分数计算器

ID:23154500

大小:468.00 KB

页数:15页

时间:2018-11-04

c++课程设计--分数计算器_第1页
c++课程设计--分数计算器_第2页
c++课程设计--分数计算器_第3页
c++课程设计--分数计算器_第4页
c++课程设计--分数计算器_第5页
资源描述:

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

1、南京理工大学C++课程设计报告题目:分数计算器年级:11级专业:通信工程姓名:吴辰炜指导老师:朱红难度B级教师评语:南京理工大学1.程序功能介绍分数计算器及测试程序,具有对输入的运算进行“+,-,*,/,^”的功能2.程序设计要求(1)完成计算器程序,对main函数的结构进行改进,要求有详细的菜单选项界面,用户不选择退出就可以反复运算。(2)完善程序,改为多操作数基本四则运算,遇#停止。(3)增加函数,完成四则混合运算,注意算法要考虑运算符的优先级,对应增加主菜单选项。(4)增加语句使四则运算具有测试功能,即计算机能够自动出题,并要求用户计算,同时

2、计算机判断用户计算的对错并打分,要求十题一个单元,每题一个运算符,参与运算的分子分母均为一位数,运算符包括加,减,乘,除及大于小于等逻辑运算符。3.基本数据结构含有整型变量,字符变量,实型变量,还定义了一个分数类;除此之外还有以下函数:1。分数转换为小数;2。分数转换为带分数;3。实现简单计算的函数;4。混合运算函数;5。随机测试题函数;6。清屏函数。此外还多处运用了运算符的重载4.程序运行结果界面1.初始界面南京理工大学2.功能1南京理工大学3.功能2南京理工大学4.功能3南京理工大学南京理工大学5.功能4南京理工大学6.功能5南京理工大学南京理

3、工大学5.课程设计遇到的技术问题与解决思路问题1:分数的表示解决办法:建立函数,分别置分母,分子,同时构造约分函数问题2:真分数的表示解决办法:构造函数,置整数部分和分数部分书本提供的源代码虽然较为完备,但也存在一些错误。问题3:乘方的函数功能实现,书本提供的原有的类中重载的“^”运算符无法实现乘方运算解决办法:考虑到“^”运算符作为位运算符,不能按照双目运算符的重载格式进行重载,故,将用于代码内部的“^”运算符改为“%”双目运算符进行重载,进行重载运算,但对外输入输出,仍使用作为字符常量的^,解决了源代码中,分数运算乘方无法实现的问题。fract

4、ionoperator%(constfraction&base,intexp)//^运算符并非双目运算符//不可按照双目运算的方法重载,故修改为%,进行内部操作{fractionreturnValue;returnValue.setnum(pow(base.numerator(),exp));returnValue.setden(pow(base.denominator(),exp));returnValue.simplify();returnreturnValue;}问题4:输出运算符<<重载不完善,因为对于函数参数分数首先进行了取绝对值运算,从

5、而导致对于输出负分数的时候,无法正确输出。解决办法:重新对重载函数进行改写,先判断原参数分数的正负,若为负,则先输出“-”后,再取绝对值,进行分子分母的分别输出操作。而且原代码中对于分数正负的判断极为繁琐,故直接调用已经重载过的“>”进行判断。ostream&operator<<(ostream&os,constfraction&f){if(f.decimal()<0)//Thisextremelycomplexandseeminglyos<<"-";//uselessifstatementteststoseeif//fractionfisnega

6、tive.现已修改fractiontemp=f.absval();intnumer=f.numerator();intdenom=f.denominator();if(temp.numerator()==0

7、

8、temp.denominator()==1)os<

9、本操作。如果不继续操作,则可以选择回到上一个菜单,或者回到主菜单,或者直接退出。但是为了实现这一系列的选择操作,可是费了一番功夫。南京理工大学解决办法:(1)首先对于是否继续的选择操作,定义的字符型变量ch,为了防止变量名重复,主菜单对应的每一个操作,在ch后都设置了不同的数字,与主菜单后的每个操作前数字一致。利用if语句进行判断。如果,用户选择不继续本次操作,那么就输出另一个选择菜单,选择是返回上一级的菜单还是直接退出程序,并且具备了一定的异常处理功能,如果输入错误的指令,则会显示出来,要求用户重新输入代码,为了大大简化程序,此功能利用goto语

10、句实现。loop1:if(ch1=='N'

11、

12、ch1=='n'){cout<<"1.返回主菜单;2,直接退出程序";c

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

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

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