ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:223.22KB ,
资源ID:8101810      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8101810.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(有理数运算c++.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

有理数运算c++.docx

1、有理数运算c+2015-2016学年第二学期面向对象程序设计(c+)大作业说明书班级名称: 2014计算机科学与技术(对口) 学生姓名: 学 号: 题 目: 有理数运算系统 指导教师: 王汇彬 计算机与信息工程学院1.设计思想1.1题目要求定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算、通过重载运算符“=”实现判定两个有理数是否相等。写一个优化函数,它的作用是使有理数约去公分母,使保存的有理数分子和分母之间没有公约数(1除外)。此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。1.2算法的设计设有两个有理数a/b和c/d,则有: (1)有理数

2、相加 分子=a*d+b*c;分母=b*d (2)有理数相减 分子=a*d-b*c;分母=b*d (3)有理数相乘 分子=a*c; 分母=b*d (4)有理数相除 分子=a*d; 分母=b*c2.软硬件运行环境及开发工具编程语言:c+。开发环境:Windows 7、visual c+ 6.0。3.程序图3.1程序框图类名类型成员名描述numInta分子Intb分母doubler转化后的实数NumOperator+(num)加法重载NumOperator-(num)减法重载NumOperator*(num)乘法重载NumOperator/(num)除法重载NumOperator=(num)等于号重

3、载VoidShow()显示有理数VoidReduction(int,int)约分DoubleR()转换为实数AVoidMenu(num,int)显示菜单3.2系统流程图如图3-1所示:图3-1系统流程图3.3类图如图3-2所示:图3-2类图4.过程论述4.1知识点 本系统是一个关于有理数运算的系统,涉及到了以下知识点: (1)类和继承的使用,将参与运算的变量封装在类中,方便使用; (2)运算符重载,根据用户的需要,选择相应的运算; (3)友元函数的使用,通过友元函数访问其他类中的私有成员; (4)模块化的使用,将每种功能都放在相应函数内,分工清晰,方便修改。4.2部分代码分析(1)num类将要

4、进行运算的变量和方法封装在一块,方便操作,主要设计代码如下: class num public: int a,b; double r; num(int a=0,int b=0) this-a=a; this-b=b; friend num operator + (const num &n1,const num &n2);/运算符重载 friend num operator - (const num &n1,const num &n2); friend num operator * (const num &n1,const num &n2); friend num operator / (con

5、st num &n1,const num &n2); friend bool operator = (const num &n1,const num &n2); double convert() /将有理数转化实数 r=(double)a/b; return r; void reduction(int ,int ); /约分,将相同的公约数去掉 void show();/显示 ;(2)主界面设计,主要代码如下:void A:menu(num n1,num n2,num n3,int a,int b,int c,int d) /主菜单 int n; char ch; do cout*有理数运算*

6、endl; coutt1. +endl; coutt2. -endl; coutt3. *endl; coutt4. /endl; cout*有理数运算*endl; coutn; switch(n) case 1: break; case 2: break; case 3: break; case 4: break; coutch; if(ch=n|c=N) break; if(ch=y|c=Y) continue; while(n); (3)选择“1.+”,调用“+”运算符函数,并判断分子分母是否相等,主要代码如下: case 1: if(a*d)=(b*c) coutn1=n2endl;

7、else n3=n1+n2; cout有理数为:; n3.show(); cout约分后为:; n3.reduction(a*d+b*c,b*d); cout转换为实数:n3.convert()endl; break; (4)选择“2.-”,调用“-”运算符函数,并判断分子分母是否相等,主要代码如下: case 2: if(a*d)=(b*c) coutn1=n2endl; else n3=n1-n2; cout有理数为:; n3.show(); cout约分后为:; n3.reduction(a*d-b*c,b*d); cout转换为实数:n3.convert()endl; break; (

8、5)选择“3.*”,调用“*”运算符函数,并判断分子分母是否相等,主要代码如下: case 3: if(a*d)=(b*c) coutn1=n2endl; else n3=n1*n2; cout有理数为:; n3.show(); cout约分后为:; n3.reduction(a*c,b*d); cout转换为实数:n3.convert()endl; break; (6)按“4./”,调用“+”运算符函数,并判断分子分母是否相等,主要代码如下: case 4: if(a*d)=(b*c) coutn1=n2endl; else n3=n1/n2; cout有理数为:; n3.show(); c

9、out约分后为:; n3.reduction(a*d,b*c); cout转换为实数:n3.convert()endl; break; 5.结果分析(1)主界面设计,如图5-1所示。图5-1主界面图(2)选择“1.+”:结果如图5-2所示。图5-2“+”运算图(3)选择“2.-”:结果如图5-3所示。图5-3“-”运算图(4)选择“3.*”:结果如图5-4所示。图5-4“*”运算图(5)按“4./”:结果如图5-5所示。图5-5“/”运算图6.结论本次作业的实现过程中,发现自身存在很多不足,很多知识点都没有掌握好。通过翻阅课本和网上查找资料解决了编程过程中存在的问题,在翻阅资料的同时,发现一个程序不仅仅是可运行的,较好的可读性和较高的运行效率是很重要的。面向对象程序设计(C+)课程大作业评分表学号2014214188姓名徐红燕项目占比评分标准得分文档50%格式规范,逻辑清晰,完整体现软件设计与开发过程49程序10%程序运行正确1010%使用了三种以上面向对象特性得6分,四种得8分,五种得满分10分820%程序自主编写,熟悉程序的各部分代码2010%程序复杂度8总分95

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1