练习11—计算器实现

简介: 练习11—计算器实现

题目

解题步骤

(1)分别定义不同功能变量;

(2)输出主页面;

(3)分功能实现;

(4)使用系统函数;

(5)分类输出计算结果;

C语言

#include <stdio.h>
#include <stdlib.h> 
void displayMenu()
{
    system("cls");
    printf("       欢迎进入计算器\n ");
    printf("***************************\n ");
    printf("*          1.加法         *\n ");
    printf("*          2.减法         *\n ");
    printf("*          3.乘法         *\n ");
    printf("*          4.除法         *\n ");
    printf("*          5.求余         *\n ");
    printf("*          6.阶乘         *\n ");
    printf("*          7.累加         *\n ");
    printf("*          8.结束         *\n ");
    printf("***************************\n ");
    printf("请输入计算类型编号:");
}
int function(int e)
{
    if (e == 1 || e == 0)
        return 1;
    else
        return e * function(e - 1);
}
int main()
{
    char user, y;
    int input, a = 0, b = 0;
    printf("是否进入计算器,y/n(是/否):");
    scanf("%c", &user);
    if (user == 'y')
        displayMenu();
    else if (user == 'n') 
        exit(0);         
    else
    {
        printf("输入有误,请重新输入");
        exit(0);
    }
    scanf("%d", &input); //接收计算类型参数
    system("cls");
    switch (input)
    {
    case 1:
    {
        printf("请输入数据:");
        scanf("%d%d", &a, &b);
        printf("%d+%d=%d\n", a, b, a + b);
        break;
    }
    case 2:
    {
        printf("请输入数据:");
        scanf("%d%d", &a, &b);
        printf("%d-%d=%d\n", a, b, a - b);
        break;
    }
    case 3:
    {
        printf("请输入数据:");
        scanf("%d%d", &a, &b);
        printf("%d*%d=%d\n", a, b, a * b);
        break;
    }
    case 4:
    {
        printf("请输入数据:");
        scanf("%d%d", &a, &b);
        printf("%d/%d=%d\n", a, b, a / b);
        break;
    }
    case 5:
    {
        printf("请输入数据:");
        scanf("%d%d", &a, &b);
        printf("%d mold %d=%d\n", a, b, a % b);
        break;
    }
    case 6:
    {
        int e = 0;
        printf("请输入数据:");
        scanf("%d", &e);
        printf("%d!=%d\n", e, function(e));
        break;
    }
    case 7:
    {
        int result = 0;
        for (int i = 0; i < 1000; i++)
        {
            char input1;
            printf("退出请按任意键,计算请按M键:"); 
            scanf("%s", &input1);
            if (input1 == 'M' || input1 == 'm')
            {
                int c, d;
                printf("请输入数据:");
                scanf("%d%d", &c, &d);
                printf("result=%d\n", result += (c + d)); 
            }
            else
                exit(0);
        }
        break;
    }
    case 8:
    {
        printf("谢谢使用,再见!");
        exit(0);
        break;
    }
    default:
        printf("error,please try again!!!");
    }
    system("pause");
    return 0;
}

实现图

说明

  1. 完整包含所使用函数的头文件;
  2. “阶乘” 功能使用递归思想解决,找到计算过程中的递归体 e * function(e - 1),并注意特殊位置的处理,如 0 和 1;
  3. 定义char类型变量时,若参与比较,本质是比较其 ASCII码 值大小,使用==符号判断是否相等时需要加单引号‘’
  4. “累加“ 功能实现中,第一次及第二次接收数据合并处理,都放入循环。否则输出结果和实际运算结果存在偏差,且差值为第一次数据计算结果,此处使用result += (c + d)保留上次计算结果。

不知道机智的你有没有发现,如果按照题目的要求,我们只需要输出界面,很easy。额,后知后觉,写完才发现,权当练手啦!


相关文章
|
6月前
计算器V2
编写了一个简单的程序,实现了浮点数的加、减、乘、除和幂运算。程序包括了对浮点数的计算,并展示了运算结果。其中,幂运算需包含&quot;math.h&quot;头文件。
43 0
|
6月前
计算器V1
创建一个简单的计算器程序,能执行整数的加、减、乘、除和求余运算。用户输入格式为:操作数1 运算符op 操作数2。遇到除数为0时,输出&quot;Division by zero!&quot;;运算符非法则输出&quot;Invalid operator!&quot;。示例输入和输出已给出。
55 0
|
6月前
|
前端开发 JavaScript
使用html+css+javaScript 完成计算器
使用html+css+javaScript 完成计算器
|
11月前
|
Java
计算器的模拟实现
计算器的模拟实现
84 0
一个计算器器脚本
一个计算器器脚本
71 1
C++ 计算器实现加减乘除
C++ 计算器实现加减乘除
111 0
|
算法
lougu 2485计算器(BSGS)
lougu 2485计算器(BSGS)
130 0
|
前端开发
一个很简易的计算器
一个很简易的计算器
111 0
一个很简易的计算器
自制计算器,实现加减乘除
自制计算器,实现加减乘除
113 0
下一篇
无影云桌面