分数计算器设计C语言课程设计
1、问题描述
输入两个分数,能计算它们的加、减、乘、除的结果。并应用辗转相除法,对分子和分母进行约简,分母为1是直接显示整数结果。
2、功能要求
(1)输入/输出:输入两个分数,输出计算结果。
(2)计算功能:可进行分数的加、减、乘和除法运算。
(3)化简功能:将分数化简为最简分数。
(4)可连续计算,当输入特殊数值时返回主菜单。
int main()
{
char p;
char a1,a2;
int a,b,c,d,op;
printf(" **********欢迎使用分数计算器***************\n");
printf(" **** 输入两个分数的运算(输入0 0时结束):****\n");
printf(" ** 请选择运算法则 **\n");
printf(" ** 1.加法 **\n");
printf(" ** 2.减法 **\n");
printf(" ** 3.乘法 **\n");
printf(" ** 4.除法 **\n");
printf(" *******************************************\n");
while(scanf("%d",&op)){
if(op==1){
scanf("%d%c%d",&a,&a1,&b);
if(a==0&&b==0) break; //输入0 0时结束
scanf("+%d%c%d",&c,&a2,&d);
if((a1=='/'&&a2=='/')&&b!=0&&d!=0) //判断输入的格式是否正确(分母不为0)
{
add(a,b,c,d); //调用加法
}
else
{
printf("输入的格式不对,重新输入\n");
}
}
else if(op==2){
scanf("%d%c%d",&a,&a1,&b);
if(a==0&&b==0) break; //输入0 0时结束
scanf("-%d%c%d",&c,&a2,&d);
if((a1=='/'&&a2=='/')&&b!=0&&d!=0) //判断输入的格式是否正确(分母不为0)
{
sub(a,b,c,d); //调用减法
}
else
{
printf("输入的格式不对,重新输入\n");
}
}
else if(op==3){
scanf("%d%c%d",&a,&a1,&b);
if(a==0&&b==0) break; //输入0 0时结束
scanf("*%d%c%d",&c,&a2,&d);
if((a1=='/'&&a2=='/')&&b!=0&&d!=0) //判断输入的格式是否正确(分母不为0)
{
mul(a,b,c,d); //调用乘法
}
else
{
printf("输入的格式不对,重新输入\n");
}
}
else if(op==4){
scanf("%d%c%d",&a,&a1,&b);
if(a==0&&b==0) break; //输入0 0时结束
scanf("/%d%c%d",&c,&a2,&d);
if((a1=='/'&&a2=='/')&&b!=0&&d!=0) //判断输入的格式是否正确(分母不为0)
{
if(c==0){
printf("输入的格式不对,重新输入\n");}
else div(a,b,c,d);
}//调用除法
else
{
printf("输入的格式不对,重新输入\n");
}
}
else
{
printf("输入的格式不对,重新输入\n");
}
}
}
用dev-c++写的
大概的框架就是这样的,只要把方法写全了就可以!