分数计算器设计Word文档下载推荐.docx

上传人:b****5 文档编号:18347252 上传时间:2022-12-15 格式:DOCX 页数:13 大小:89.84KB
下载 相关 举报
分数计算器设计Word文档下载推荐.docx_第1页
第1页 / 共13页
分数计算器设计Word文档下载推荐.docx_第2页
第2页 / 共13页
分数计算器设计Word文档下载推荐.docx_第3页
第3页 / 共13页
分数计算器设计Word文档下载推荐.docx_第4页
第4页 / 共13页
分数计算器设计Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

分数计算器设计Word文档下载推荐.docx

《分数计算器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《分数计算器设计Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

分数计算器设计Word文档下载推荐.docx

每种功能的操作都是在菜单中进行相应选择。

3、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

 

(2)分析系统中的各个实体及它们之间的关系;

Main.obj分数计算器.obj

main.exe

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

源代码:

//分数计算器h.h:

#include<

iostream.h>

classInteger//整数类

{

protected:

intfz;

intfm;

public:

Integer(inta=0,intb=1):

fz(a),fm(b){}

~Integer(){}

voiddisplay();

};

classFraction:

publicInteger//分数类,进行计算和输入输出

Fraction(inta=0,intb=1):

Integer(a,b){}

friendistream&

operator>

>

(istream&

Fraction&

);

//重载输入流

friendostream&

operator<

<

(ostream&

//重载输出流

Fractionoperator+(Fraction&

c);

//重载+运算符(分数与分数)

Fractionoperator+(intn);

//重载+运算符(整数与分数)

Fractionoperator-(Fraction&

//重载-运算符(分数与分数)

Fractionoperator-(intn);

//重载-运算符(整数与分数)

friendFractionoperator-(intn,Fraction&

Fractionoperator*(Fraction&

//重载*运算符(分数与分数)

Fractionoperator*(intn);

//重载*运算符(整数与分数)

Fractionoperator/(Fraction&

//重载/运算符(分数与分数)

Fractionoperator/(intn);

//重载/运算符(整数与分数)

friendFractionoperator/(intn,Fraction&

Fractionpredigest();

//约分函数

//实现函数(分数计算器设计)

#include"

分数计算器h.h"

voidInteger:

:

display()

cout<

endl;

cout<

"

------------------分数计算器-----------------"

endl<

请选择功能:

"

1分数与整数的四则运算。

2整数与分数的四则运算。

3分数与分数的四则运算。

0输入0退出。

}

FractionFraction:

predigest()//定义约分函数

intn,d,t,sign=1;

Fractiontemp;

if(fz<

0&

&

fm<

0)

{

fz=-fz;

fm=-fm;

}

if(fz>

sign=-1;

if(fz<

fm>

n=fz;

d=fm;

intr;

if(n<

d)//辗转相除,求分子n与分母d的最大公约数

{t=n;

n=d;

d=t;

r=n%d;

while(r!

=0)

n=d;

d=r;

//d为最大公约数

r=n%d;

temp.fz=sign*(fz/d);

temp.fm=fm/d;

returntemp;

operator+(Fraction&

c)//重载两个分数的加法运算符

temp.fz=fz*c.fm+fm*c.fz;

temp.fm=fm*c.fm;

returntemp;

operator+(intn)//重载分数和整数的加法运算

temp.fz=fm*n+fz;

temp.fm=fm;

Fractionoperator-(intn,Fraction&

c)

temp.fz=c.fm*n-c.fz;

temp.fm=c.fm;

operator-(intn)//重载分数减整数的减法运算符

temp.fz=fz-fm*n;

operator-(Fraction&

c)//重载两个分数的减法运算符

Fractiontemp;

temp.fz=fz*c.fm-fm*c.fz;

temp.fm=fm*c.fm;

operator*(Fraction&

c)//重载两个分数的乘法运算符

temp.fz=fz*c.fz;

operator*(intn)//重载分数与整数的乘法运算符

temp.fz=fz*n;

operator/(Fraction&

c)//重载两个分数的除法运算符

temp.fz=fz*c.fm;

temp.fm=fm*c.fz;

operator/(intn)//重载分数除以整数的除法运算符

temp.fz=fz;

temp.fm=fm*n;

Fractionoperator/(intn,Fraction&

c)

temp.fz=n*c.fm;

temp.fm=c.fz;

ostream&

output,Fraction&

t)//重载输出运算符,输出分数

inta,b,c;

a=t.fz;

b=t.fm;

if(a==0||b==0)//当分子,或者分母为0时,输出0

0"

;

if(b==1)//当分母为1时,输出分子

a;

if(a>

b&

b!

=1)//判断分数为假分数

c=a/b;

a=a%b;

c;

if(a!

cout<

又"

a<

'

/'

b;

if(a<

0&

-a>

=1)//当分数为负时,判断为假分数

c=-a/b;

a=-a%b;

c=-c;

='

b<

if(t.fz>

t.fz<

t.fm&

t.fm!

=0&

t.fm!

=1)

//判断为真分数

output<

t.fm;

if(t.fz<

-t.fz<

=0&

("

t.fm<

)"

returnoutput;

istream&

input,Fraction&

t)//重载输入运算符,输入分数

{inta,c;

charb;

input>

a>

b>

if(b=='

&

c!

=0)

t.fz=a;

t.fm=c;

else

错误!

输入格式错误或分母为0!

请退出重新输入!

returninput;

//main函数

intmain()

Integerdis;

Fractiona,b,result,real;

intm,z;

charc;

//数据类型

dis.display();

while(m!

请输入:

(0-3):

cin>

m;

if(m==1)//分数与整数的运算

请输入一个分数:

cin>

请输入运算符:

输入一个正整数:

z;

if(c=='

+'

result=a+z;

-'

result=a-z;

*'

result=a*z;

result=a/z;

real=result.predigest();

运算式规范为:

c<

z<

a.predigest()<

real<

if(m==2)//整数与分数的运算

请输入一个正整数:

请输入运算符:

请输入一个分数:

result=b+z;

result=z-b;

result=b*z;

result=z/b;

b.predigest()<

if(m==3)//分数与分数的运算

result=a+b;

result=a-b;

result=a*b;

result=a/b;

return0;

总结报告:

这是我的第一次课程设计,刚开始拿到手感觉一头雾水,不知道到底是从哪里开头去设计一个课题,虽然提供了解决方案让我可以照着步骤去做,但是没有老师的辅导,下手真不容易。

不过,在理清了程序设计的一条条思路后,画了设计层次图,然后一步一步深入,把程序完成了。

其中也遇到很多麻烦,在网上搜索解决了问题。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

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

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