广工 数据结构 设计性实验 有理数四则运算 报告
《数据结构》设计性实验
题 目 _第2题 有理数四则运算_ 学 院 计算机学院 专 业 年级班别 学 号 学生姓名 指导教师
2013 年 6 月 29 日
一、设计任务要求
问题描述:设计一个可进行有理数运算的演示程序。
基本要求:实现两个有理数相加、相减、相乘、相除以及求分子或分母的运算。
测试数据:有读者指定。
选作内容:事项两个有理数相除的运算。 二、主要算法流程图
三、主要代码
int MaxCommonisor(int m,int n)//*求最大公约数*// {
int x,y,z; if(m<n)
{z=m;m=n;n=z;} x=m;y=n; while(y!=0) {
z=x%y; x=y; y=z; }
return(x); }
Exit()//*退出*// {
}
int fraction_Add(int numerator_1,int denominator_1,int numerator_2,int denominator_2)//*分数加法*// {
int o,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); }
float Add(float a,float b)///*有理数加法*/ {
float sum;
int numerator_1,denominator_1,numerator_2,denominator_2,j,x; char m;
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) {
case 1: {
printf("请输入第一个数据:"); scanf("%f",&a);
printf("请输入第二个数据:"); scanf("%f",&b); sum=a+b;
printf("运算结果为%f+%f=%f",a,b,sum); getchar();
getchar(); break; }
case 2: {
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; } case 3: {
Exit(); break; }
default : {
printf("输入有误!\n"); goto loop1;
break; } }
if(x!=3)goto loop1; }
int fraction_Sub(int numerator_1,int denominator_1,int numerator_2,int denominator_2)///*分数减法*/ {
int o,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); }
float Sub(float a,float b)//*有理数减法*// {
float result;
int numerator_1,denominator_1,numerator_2,denominator_2,j,x; char m;
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) {
case 1: {
printf("请输入第一个数据:"); scanf("%f",&a);
printf("请输入第二个数据:"); scanf("%f",&b); result=a-b;
printf("%f-%f=%f",a,b,result); getchar(); getchar(); break; }
case 2: {
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; } case 3: {
Exit(); break; }
default : {
printf("输入有误!\n"); goto loop1;
break; } }
if(x!=3)goto loop1; }
int fraction_Mul(int numerator_1,int denominator_1,int numerator_2,int denominator_2)//*分数乘法*// {
int o,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); }
float Mul(float a,float b)//*有理数乘法*// {
float result;
int numerator_1,denominator_1,numerator_2,denominator_2,j,x; char m;
loop1:printf("********** …… 此处隐藏:5093字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




