C 语言制作简单计算器
前言
C语言开发计算器可是每个开始学习C语言的人的必开发项目啊,实验楼就分享一个C语言开发计算器的教程,希望对你有所帮助哦~
1、项目介绍
我们要使用 C 语言做一个简单的计算器,能执行加、减、乘、除操作。程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。因为我们需要检查输入,确保用户没有要求计算机完成不可能的任务。还必须允许用户一次输入一个计算式,例如: 32.4 + 32
或者9 * 3.2
2、项目流程
我们将要实现的计算器的执行流程如下:
- 获取用户输入的计算表达式。
- 检查输入的表达式格式,确保表达式对应的实际操作可以执行。
- 执行计算。
- 返回计算结果并在终端打印。
3、项目效果图
最终我们实现的计算器的运行效果如下图:
效果图4、项目实现
1)获取用户输入
获得用户输入非常简单,可以使用 C 语言提供的格式化输入输出函数printf()
和 scanf()
即可。
下面是负责读取用户输入部分的程序代码:
#include<stdio.h>
int main()
{
double number1=0.0; // 定义第一个操作数
double number2=0.0; // 定义第二个操作数
char operation=0; // operation 必须是 '+' '-' '*' '/' 或 '%'
printf("\nEnter the calculation\n");
scanf("%lf%c%lf",&number1,&operation,&number2); return 0; }
2)检查格式并进行运算
接下来我们程序所要实现的功能是对输入的运算表达式进行格式检查。
最基本检查的是我们必须要判断输入表达式所要执行的操作是否有效。有效的操作有 +, -, *, /, %
,所以需要检查输入的操作是否是属于定义中的一个。
另外值得注意的一点是,当输入的操作为/
或者%
时,第二个操作数不能为 0。如果为 0 则操作无效。
以上逻辑判断过程可以通过 if 语句来完成,此外 switch语句为此提供了一种更好的方式。因为它比起一系列的 if 语句来的更容易理解也更加简洁。
switch(operation)
{
case '+':
printf("=%lf\n",number1+number2);
break;
case '-':
printf("=%lf\n",number1-number2);
break;
case '*':
printf("=%lf\n",number1*number2);
break;
case '/':
if(number2==0)
printf("\n\n\aDavision by zero error!\n");
else
printf("=%lf\n",number1/number2);
break;
case '%':
if((long)number2==0)
printf("\n\n\aDavision by zero error!\n");
else
printf("=%ld\n",(long)number1%(long)number2);
break;
default:
printf("\n\n\aDavision by zero error!\n");
break;
}
取余运算符对 float 或 double 类型是没有意义的,因为它们可以表示精确的结果。只有把 %
运算符应用于整数类型才有意义。因此在应用这个运算符前,把操作数转换为整数。当运算符是%
时,将第二个操作数转换为一个整数,所以仅仅检查第二个操作数是否为 0 是不够的,还必须检查 number2 在转换为 long 时,值是否为 0. 例如 0.5 不是 0,但是转换为整数时就是 0。
3)编译文件
编写完程序文件之后,就可以对源文件进行编译获得可执行文件,编译的命令如下:
$ gcc -o Calculator Calculator.c
注意:上方 gcc指令的格式为,gcc -o 生成文件名 源文件名.c
如果没有提供“生成文件名”,则默认生成文件名为 a.out
。
这时候发现目录底下多出了一个 Calculator 文件,这就是我们通过编译链接源文件之后所得到的可执行文件,执行 ./Caculator
指令进行运行。
最后:
上面其实已经把开发一个简单计算器的开发流程和关键的步骤给出来了,如果你还是不太明白的话,可以点击这里,查看用C语言开发简单计算器的详细教程哦~
另外附上: