计算器(简易版)

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

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;
}
相关文章
|
6月前
|
安全 Serverless Python
用Python实现计算器功能
用Python实现计算器功能
78 1
|
5月前
|
程序员 定位技术
程序员必知:关于DotaRdsp计算器的编写(一)
程序员必知:关于DotaRdsp计算器的编写(一)
29 0
|
6月前
|
算法 测试技术 UED
Python实现计算器的设计与实现
Python实现计算器的设计与实现
265 0
|
6月前
|
C语言
C语言程序基本的计算器功能
C语言程序基本的计算器功能
128 0
|
6月前
|
前端开发
好看的前端计算器代码分享(html+css+js制作计算器)
好看的前端计算器代码分享(html+css+js制作计算器)
138 0
|
C语言
自制计算器(C语言的简单实现)(可多次使用)
自制计算器(C语言的简单实现)(可多次使用)
124 1
|
算法 前端开发 存储
前端算法-计算器
前端算法-计算器
|
Java 数据安全/隐私保护 容器
背记不如实战系列-javaGUI实例-计算器制作
背记不如实战系列-javaGUI实例-计算器制作
94 0
|
Python
python实现简单的计算器 带界面
python实现简单的计算器 带界面
281 0
python实现简单的计算器 带界面
|
前端开发 PHP
实训项目:PHP计算器功能程序实现
  设计一个网页,让用户输人一个运算式,采用下拉列表提供“加、减、乘、除、模(%)”至少4种运算符。当用户单击“求值”按钮时,自动计算结果并显示出提示信息(可以是弹框显示结果,也可以是在浏览器的页面显示结果。
155 0
实训项目:PHP计算器功能程序实现