分数计算器设计C语言课程设计

分数计算器设计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++写的
大概的框架就是这样的,只要把方法写全了就可以!

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 C++ 分数计算器实现,它可以进行分数的加、减、乘、除运算: ``` #include <iostream> #include <cstdlib> using namespace std; int gcd(int a, int b) { if (b == 0) { return a; } return gcd(b, a % b); } int lcm(int a, int b) { return a * b / gcd(a, b); } class Fraction { public: int numerator; // 分子 int denominator; // 分母 Fraction(int n = 0, int d = 1) { numerator = n; denominator = d; } void reduce() { int g = gcd(numerator, denominator); numerator /= g; denominator /= g; } void print() { reduce(); cout << numerator << "/" << denominator << endl; } Fraction operator+(Fraction f) { int l = lcm(denominator, f.denominator); int m1 = l / denominator; int m2 = l / f.denominator; int n = numerator * m1 + f.numerator * m2; Fraction result(n, l); result.reduce(); return result; } Fraction operator-(Fraction f) { int l = lcm(denominator, f.denominator); int m1 = l / denominator; int m2 = l / f.denominator; int n = numerator * m1 - f.numerator * m2; Fraction result(n, l); result.reduce(); return result; } Fraction operator*(Fraction f) { int n = numerator * f.numerator; int d = denominator * f.denominator; Fraction result(n, d); result.reduce(); return result; } Fraction operator/(Fraction f) { int n = numerator * f.denominator; int d = denominator * f.numerator; Fraction result(n, d); result.reduce(); return result; } }; int main() { Fraction f1(2, 3), f2(3, 4), f3; f3 = f1 + f2; cout << "f1 + f2 = "; f3.print(); f3 = f1 - f2; cout << "f1 - f2 = "; f3.print(); f3 = f1 * f2; cout << "f1 * f2 = "; f3.print(); f3 = f1 / f2; cout << "f1 / f2 = "; f3.print(); return 0; } ``` 这个程序定义了一个 Fraction 类,包含分数的分子和分母,以及一些基本的运算符重载方法。其中,reduce() 方法可以化简分数,gcd() 方法可以求出最大公约数,lcm() 方法可以求出最小公倍数。 在主函数中,我们可以创建两个分数对象 f1 和 f2,然后使用重载运算符进行加、减、乘、除运算,并将结果输出到屏幕上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值