【C语言】实现简易计算器

梦里梦外; 2023-10-05 23:09 95阅读 0赞

目录

1.实现逻辑

2.运行过程

3.优化前代码分析

主函数

计算函数

4.优化后代码分析

主函数

计算方法函数

输入操作数的函数

5.完整代码展示


1.实现逻辑

实现一个简易的计算器,可以计算两个整数的加减乘除

#

#

#

#

2.运行过程

6683d46ec8034219a818e7ee2c987872.png

#

#

3.优化前代码分析

主函数

  1. int main()
  2. {
  3. int x = 0;
  4. int y = 0;
  5. int ret = 0;
  6. int input = 0;
  7. do
  8. {
  9. menu();
  10. printf("请选择:");
  11. scanf("%d", &input);
  12. switch (input)
  13. {
  14. case 0:
  15. printf("退出计算器\n");
  16. break;
  17. case 1:
  18. printf("请输入两个操作数:");
  19. scanf("%d %d", &x, &y);
  20. ret = Add(x, y);
  21. printf("%d\n", ret);
  22. break;
  23. case 2:
  24. printf("请输入两个操作数:");
  25. scanf("%d %d", &x, &y);
  26. ret = Sub(x, y);
  27. printf("%d\n", ret);
  28. break;
  29. case 3:
  30. printf("请输入两个操作数:");
  31. scanf("%d %d", &x, &y);
  32. ret = Wul(x, y);
  33. printf("%d\n", ret);
  34. break;
  35. case 4:
  36. printf("请输入两个操作数:");
  37. scanf("%d %d", &x, &y);
  38. ret = Div(x, y);
  39. printf("%d\n", ret);
  40. break;
  41. default:
  42. printf("输入错误\n");
  43. break;
  44. }
  45. } while (input);
  46. return 0;
  47. }

利用switch语句选择要进行的计算方式,利用do while 来实现是继续计算还是退出计算器。case语句分别调用了不同的计算函数。

计算函数

  1. int Add(int x, int y)//加法函数
  2. {
  3. return x + y;
  4. }
  5. int Sub(int x, int y)//减法函数
  6. {
  7. return x - y;
  8. }
  9. int Wul(int x, int y)//乘法函数
  10. {
  11. return x * y;
  12. }
  13. int Div(int x, int y)//除法函数
  14. {
  15. return x / y;
  16. }

4.优化后代码分析

主函数

  1. int main()
  2. {
  3. int input = 0;
  4. do
  5. {
  6. menu();
  7. printf("请选择:");
  8. scanf("%d", &input);
  9. switch (input)
  10. {
  11. case 0:
  12. printf("退出计算器\n");
  13. break;
  14. case 1:
  15. salc(Add);
  16. break;
  17. case 2:
  18. salc(Sub);
  19. break;
  20. case 3:
  21. salc(Wul);
  22. break;
  23. case 4:
  24. salc(Div);
  25. break;
  26. default:
  27. printf("输入错误\n");
  28. break;
  29. }
  30. } while (input);
  31. return 0;
  32. }

利用switch语句选择要进行的计算方式,利用do while 来实现是继续计算还是退出计算器。case语句的参数是计算方法函数的函数名,也是函数的地址。

计算方法函数

  1. int Add(int x, int y)//加法函数
  2. {
  3. return x + y;
  4. }
  5. int Sub(int x, int y)//减法函数
  6. {
  7. return x - y;
  8. }
  9. int Wul(int x, int y)//乘法函数
  10. {
  11. return x * y;
  12. }
  13. int Div(int x, int y)//除法函数
  14. {
  15. return x / y;
  16. }

计算函数,用来完成两个整数的计算。返回的值就是计算的结果。

输入操作数的函数

  1. void salc(int (*pf)(int, int))
  2. {
  3. int x = 0;
  4. int y = 0;
  5. int ret = 0;
  6. printf("请输入两个操作数:");
  7. scanf("%d %d", &x, &y);
  8. ret = pf(x, y);
  9. printf("%d\n", ret);
  10. }

因为传过来的是函数的地址,所以要使用一个指针来接受,这就是一个函数指针。

5.完整代码展示

  1. #include<stdio.h>
  2. void menu()
  3. {
  4. printf("***************************\n");
  5. printf("****** 1.Add 2.Sub ******\n");
  6. printf("****** 3.Mul 4.Div ******\n");
  7. printf("****** 0.exit *************\n");
  8. printf("***************************\n");
  9. }
  10. int Add(int x, int y)//加法函数
  11. {
  12. return x + y;
  13. }
  14. int Sub(int x, int y)//减法函数
  15. {
  16. return x - y;
  17. }
  18. int Wul(int x, int y)//乘法函数
  19. {
  20. return x * y;
  21. }
  22. int Div(int x, int y)//除法函数
  23. {
  24. return x / y;
  25. }
  26. //回调函数
  27. void salc(int (*pf)(int, int))
  28. {
  29. int x = 0;
  30. int y = 0;
  31. int ret = 0;
  32. printf("请输入两个操作数:");
  33. scanf("%d %d", &x, &y);
  34. ret = pf(x, y);
  35. printf("%d\n", ret);
  36. }
  37. int main()
  38. {
  39. int input = 0;
  40. do
  41. {
  42. menu();
  43. printf("请选择:");
  44. scanf("%d", &input);
  45. switch (input)
  46. {
  47. case 0:
  48. printf("退出计算器\n");
  49. break;
  50. case 1:
  51. salc(Add);
  52. break;
  53. case 2:
  54. salc(Sub);
  55. break;
  56. case 3:
  57. salc(Wul);
  58. break;
  59. case 4:
  60. salc(Div);
  61. break;
  62. default:
  63. printf("输入错误\n");
  64. break;
  65. }
  66. } while (input);
  67. return 0;
  68. }

发表评论

表情:
评论列表 (有 0 条评论,95人围观)

还没有评论,来说两句吧...

相关阅读

    相关 四则运算简易计算器C语言详解

    问题描述:输入一个不含括号的四则运算表达式,输出计算结果。 方法:四则运算只有两种优先级,在输入两步计算(三个操作符)之后一定能得到一个结果。如1-2\3,无论3后的操作符是

    相关 c语言 简易计算器

    应度友邀请,用c写了个简易的命令行计算器,其功能大致如下: 设计简单的计算器,允许用户输入简单表达式(一元运算和二元运算表达式,以=结尾),输出计算结果,并等待用户继