广工 数据结构设计性实验 有理数四则运算 报告.docx

上传人:b****2 文档编号:2462381 上传时间:2022-10-29 格式:DOCX 页数:26 大小:300.81KB
下载 相关 举报
广工 数据结构设计性实验 有理数四则运算 报告.docx_第1页
第1页 / 共26页
广工 数据结构设计性实验 有理数四则运算 报告.docx_第2页
第2页 / 共26页
广工 数据结构设计性实验 有理数四则运算 报告.docx_第3页
第3页 / 共26页
广工 数据结构设计性实验 有理数四则运算 报告.docx_第4页
第4页 / 共26页
广工 数据结构设计性实验 有理数四则运算 报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

广工 数据结构设计性实验 有理数四则运算 报告.docx

《广工 数据结构设计性实验 有理数四则运算 报告.docx》由会员分享,可在线阅读,更多相关《广工 数据结构设计性实验 有理数四则运算 报告.docx(26页珍藏版)》请在冰豆网上搜索。

广工 数据结构设计性实验 有理数四则运算 报告.docx

广工数据结构设计性实验有理数四则运算报告

序号:

《数据结构》设计性实验

题目_第2题有理数四则运算_

学院计算机学院

专业

年级班别

学号

学生姓名

指导教师

 

思路

理论

设计

难度系数

代码

总成绩

 

2013年6月29日

一、设计任务要求

问题描述:

设计一个可进行有理数运算的演示程序。

基本要求:

实现两个有理数相加、相减、相乘、相除以及求分子或分母的运算。

测试数据:

有读者指定。

选作内容:

事项两个有理数相除的运算。

二、主要算法流程图

三、主要代码

intMaxCommonisor(intm,intn)//*求最大公约数*//

{

intx,y,z;

if(m

{z=m;m=n;n=z;}

x=m;y=n;

while(y!

=0)

{

z=x%y;

x=y;

y=z;

}

return(x);

}

Exit()//*退出*//

{

}

intfraction_Add(intnumerator_1,intdenominator_1,intnumerator_2,intdenominator_2)//*分数加法*//

{

into,i,l,k,j;

o=denominator_1*denominator_2;

i=numerator_1*denominator_2+denominator_1*numerator_2;

l=MaxCommonisor(o,i);

k=o/l;

j=i/l;

printf("运算结果为%d/%d+%d/%d=%d/%d\n",numerator_1,denominator_1,numerator_2,denominator_2,j,k);

}

floatAdd(floata,floatb)///*有理数加法*/

{

floatsum;

intnumerator_1,denominator_1,numerator_2,denominator_2,j,x;

charm;

loop1:

printf("*******************************加法运算************************************\n");

printf("\n");

printf("1、整数、小数加法2、分数加法3、退出\n");

printf("\n");

printf("********************************************************************************\n");

printf("请选择1、2或3:

");

scanf("%d",&x);

if(x!

=1&&x!

=2&&x!

=3)

printf("非法输入,请重新输入!

");

switch(x)

{

case1:

{

printf("请输入第一个数据:

");

scanf("%f",&a);

printf("请输入第二个数据:

");

scanf("%f",&b);

sum=a+b;

printf("运算结果为%f+%f=%f",a,b,sum);

getchar();

getchar();

break;

}

case2:

{

printf("输入第一个数的分子:

");

scanf("%d",&numerator_1);

printf("输入第一个数的分母:

");

scanf("%d",&denominator_1);

printf("输入第二个数的分子:

");

scanf("%d",&numerator_2);

printf("输入第二个数的分母:

");

scanf("%d",&denominator_2);

fraction_Add(numerator_1,denominator_1,numerator_2,denominator_2);

break;

}

case3:

{

Exit();

break;

}

default:

{

printf("输入有误!

\n");

gotoloop1;

break;

}

}

if(x!

=3)gotoloop1;

}

intfraction_Sub(intnumerator_1,intdenominator_1,intnumerator_2,intdenominator_2)///*分数减法*/

{

into,i,l,k,j;

o=denominator_1*denominator_2;

i=numerator_1*denominator_2-denominator_1*numerator_2;

l=MaxCommonisor(o,i);

k=o/l;

j=i/l;

printf("运算结果为%d/%d-%d/%d=%d/%d\n",numerator_1,denominator_1,numerator_2,denominator_2,j,k);

}

floatSub(floata,floatb)//*有理数减法*//

{

floatresult;

intnumerator_1,denominator_1,numerator_2,denominator_2,j,x;

charm;

loop1:

printf("*******************************减法运算************************************\n");

printf("\n");

printf("1、整数、小数减法2、分数减法3、退出\n");

printf("\n");

printf("********************************************************************************\n");

printf("请选择1、2或3:

");

scanf("%d",&x);

if(x!

=1&&x!

=2&&x!

=3)

printf("非法输入,请重新输入!

");

switch(x)

{

case1:

{

printf("请输入第一个数据:

");

scanf("%f",&a);

printf("请输入第二个数据:

");

scanf("%f",&b);

result=a-b;

printf("%f-%f=%f",a,b,result);

getchar();

getchar();

break;

}

case2:

{

printf("输入第一个数的分子:

");

scanf("%d",&numerator_1);

printf("输入第一个数的分母:

");

scanf("%d",&denominator_1);

printf("输入第二个数的分子:

");

scanf("%d",&numerator_2);

printf("输入第二个数的分母:

");

scanf("%d",&denominator_2);

fraction_Sub(numerator_1,denominator_1,numerator_2,denominator_2);

break;

}

case3:

{

Exit();

break;

}

default:

{

printf("输入有误!

\n");

gotoloop1;

break;

}

}

if(x!

=3)gotoloop1;

}

intfraction_Mul(intnumerator_1,intdenominator_1,intnumerator_2,intdenominator_2)//*分数乘法*//

{

into,i,l,k,j;

o=denominator_1*denominator_2;

i=numerator_1*numerator_2;

l=MaxCommonisor(o,i);

k=o/l;

j=i/l;

printf("运算结果为%d/%d*%d/%d=%d/%d\n",numerator_1,denominator_1,numerator_2,denominator_2,j,k);

}

floatMul(floata,floatb)//*有理数乘法*//

{

floatresult;

intnumerator_1,denominator_1,numerator_2,denominator_2,j,x;

charm;

loop1:

printf("*******************************乘法运算************************************\n");

printf("\n");

printf("1、整数/小数乘法2、分数乘法3、退出\n");

printf("\n");

printf("********************************************************************************\n");

printf("请选择1、2或3:

");

scanf("%d",&x);

if(x!

=1&&x!

=2&&x!

=3)printf("非法输入,请重新输入!

");

switch(x)

{

case1:

{

printf("请输入第一个数据:

");

scanf("%f",&a);

printf("请输入第二个数据:

");

scanf("%f",&b);

result=a*b;

printf("%f*%f=%f",a,b,result);

getchar();

getchar();

break;

}

case2:

{

printf("输入第一个数的分子:

");

scanf("%d",&numerator_1);

printf("输入第一个数的分母:

");

scanf("%d",&denominator_1);

printf("输入第二个数的分子:

");

scanf("%d",&numerator_2);

printf("输入第二个数的分母:

");

scanf("%d",&denominator_2);

fraction_Mul(numerator_1,denominator_1,numerator_2,denominator_2);

break;

}

case3:

{

Exit();

break;

}

default:

{

printf("输入有误!

\n");

gotoloop1;

break;

}

}

if(x!

=3)gotoloop1;

}

intfraction_Div(intnumerator_1,intdenominator_1,intnumerator_2

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

当前位置:首页 > 医药卫生 > 基础医学

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

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