计算器(简易版)

简介: 另一种是利用转移表的方式来写,将各个函数的地址存放在一个函数指针数组里面,当要使用函数时,就直接调用指针即可,可以改观上面的美观(上面的代码有很多重复的,太挫了)

1.首先利用do while()弄一个菜单函数,定义一个input变量,利用switch语句来选择菜单中的加减乘除,再分装函数就可以了


不过这个计算器只是特别简单的一种,用来初学者练习。


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void menu()
{
  printf("************************\n");
  printf("**** 1.Add   2.Sub  ****\n");
  printf("**** 3.Mul   4.Div  ****\n");
  printf("************************\n");
}
int Add(int a, int b)
{
  return a + b;
}
int Sub(int a, int b)
{
  return a - b;
}
int Mul(int a, int b)
{
  return a * b;
}
int Div(int a, int b)
{
  return a / b;
}
int main()
{
  int x, y;
  int input;
  int ret = 0;
  do
  {
    menu();
    printf("请选择:\n");
    scanf("%d", &input);
    switch (input)
    {
    case 1:  printf("请输入操作数:\n");
      scanf("%d %d", &x, &y);
      ret = Add(x, y);
      printf("ret=%d\n", ret);
      break;
    case 2: printf("请输入操作数:\n");
      scanf("%d %d", &x, &y);
      ret = Sub(x, y);
      printf("ret=%d\n", ret);
      break;
    case 3: printf("请输入操作数:\n");
      scanf("%d %d", &x, &y);
      ret = Mul(x, y);
      printf("ret=%d\n", ret);
      break;
    case 4: printf("请输入操作数:\n");
      scanf("%d %d", &x, &y);
      ret = Div(x, y);
      printf("ret=%d\n", ret);
      break;
    default: printf("输入错误\n");
      break;
    }
  } while (input);
  return 0;
}


2.另一种是利用转移表的方式来写,将各个函数的地址存放在一个函数指针数组里面,当要使用函数时,就直接调用指针即可,可以改观上面的美观(上面的代码有很多重复的,太挫了)

根据函数指针数组的下标来找函数所以第一个下标0,就存放0,下标1呢存Add的函数地址,下标2存放Sub的地址,下标3存放Mul的地址,下标4存放Div的地址。


第二种:


#include <stdio.h>
void menu()
{
  printf("************************\n");
  printf("**** 1.Add   2.Sub  ****\n");
  printf("**** 3.Mul   4.Div  ****\n");
  printf("************************\n");
}
int Add(int a, int b)
{
  return a + b;
}
int Sub(int a, int b)
{
  return a - b;
}
int Mul(int a, int b)
{
  return a * b;
}
int Div(int a, int b)
{
  return a / b;
}
int main()
{
  int input=1;
  int x, y;
  int ret = 0;
  int(*pf[5])(int a, int b) = { 0,Add,Sub,Mul,Div };
  //函数指针数组存放着函数地址,可以通过数组下标来找到函数地址然后进行调用。
  while (input)
  {
    menu();
    printf("请选择:\n");
    scanf("%d", &input);
    if (input >= 1 && input <= 4)
    {
      printf("请输入操作数:\n");
      scanf("%d %d", &x, &y);
      ret=pf[input](x, y);
      printf("ret=%d\n", ret);
    }
  }
  return 0;
}
相关文章
|
9月前
|
安全 Serverless Python
用Python实现计算器功能
用Python实现计算器功能
106 1
|
8月前
|
C++
每周一坑--简单的计算器
每周一坑--简单的计算器
|
8月前
|
程序员 定位技术
程序员必知:关于DotaRdsp计算器的编写(一)
程序员必知:关于DotaRdsp计算器的编写(一)
40 0
|
9月前
|
算法 测试技术 UED
Python实现计算器的设计与实现
Python实现计算器的设计与实现
351 0
|
小程序
微信小程序项目实例——体质计算器
微信小程序项目实例——体质计算器
|
9月前
|
前端开发
好看的前端计算器代码分享(html+css+js制作计算器)
好看的前端计算器代码分享(html+css+js制作计算器)
203 0
|
Python
python实现简单的计算器 带界面
python实现简单的计算器 带界面
330 0
python实现简单的计算器 带界面
自制计算器,实现加减乘除
自制计算器,实现加减乘除
132 0
函数小试题-计算器
函数小试题-计算器
117 0
|
存储 数据可视化 Java
C#还能这么玩?“诺基亚大屏独显计算器”来咯!
C#还能这么玩?“诺基亚大屏独显计算器”来咯!
182 0
C#还能这么玩?“诺基亚大屏独显计算器”来咯!