用c语言 (c++) 编写计算器程序

用c语言 (c++) 编写计算器程序,第1张

我们平时进行数学运算都是用计算器完成的,那么如何用C语言编写一个计算器呢?下面我给大家分享一下。

工具/材料

Dev C++

01

首先我们需要在Dev C++软件中创建一个C语言项目,项目类型选择控制台程序,如下图所示

02

接下来我们在项目下面新建C语言文件,如下图所示

03

然后我们在C文件中写入计算器逻辑代码,主要是让用户输入计算方式,然后程序自动计算,如下图所示

04

接下来我们点击运行菜单,选择下拉菜单中的运行选项,如下图所示

05

最后在d出的界面中我们输入要计算的公式,程序就会自动计算,如下图所示

用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器的方法:

1、打开visual C++ 60-文件-新建-文件-C++ Source File;

2、输入预处理命令和主函数

#include<stdioh> /函数头:输入输出头文件/

void main()/空类型:主函数/

3、定义变量:

int a,b,d; /定义变量的数据类型为整型/

char c;/定义变量的数据类型为字符型/

4、输入四则运算式:

printf("输入如“34”或“5+2”的四则运算式:");/输出文字提示/

scanf("%d%c%d",&a,&c,&b);/输入四则运算式/

5、判断运算符号:

switch(c) /判断运算符号/

{

case'+':d=a+b;break;/进行加法运算/

case'-':d=a-b;break;/进行减法运算/

case'':d=ab;break;/进行乘法运算/

case'/':d=a/b;break; /进行除法运算/

}

6、输出结果:

printf("%d%c%d=%d\n",a,c,b,d);/输出结果/

完整的源代码:

#include<stdioh> /函数头:输入输出头文件/

void main()/空类型:主函数/

{

int a,b,d;/定义变量的数据类型为整型/

char c;/定义变量的数据类型为字符型/

printf("输入如“34”或“5+2”的四则运算式:");/输出文字提示/

scanf("%d%c%d",&a,&c,&b);/输入四则运算式/

switch(c)/判断运算符号/

{

case'+':d=a+b;break;/进行加法运算/

case'-':d=a-b;break;/进行减法运算/

case'':d=ab;break;/进行乘法运算/

case'/':d=a/b;break;/进行除法运算/

}

printf("%d%c%d=%d\n",a,c,b,d);/输出结果/

}

你说的是 vc 还是 tc 啊???

其他的运算:

#include <stdioh>

int add(int x,int y) {return x+y;}

int sub(int x,int y) {return x-y;}

int mul(int x,int y) {return xy;}

int div(int x,int y) {return x/y;}

int (func[])()={add,sub,mul,div};

int num,curch;

char chtbl[]="+-/()=";

char corch[]="+-/()=0123456789";

int getach() {

int i;

while(1) {

curch=getchar();

if(curch==EOF) return -1;

for(i=0;corch[i]&&curch!=corch[i];i++);

if(i<strlen(corch)) break;

}

return curch;

}

int getid() {

int i;

if(curch>='0'&&curch<='9') {

for(num=0;curch>='0'&&curch<='9';getach()) num=10num+curch-'0';

return -1;

}

else {

for(i=0;chtbl[i];i++) if(chtbl[i]==curch) break;

if(i<=5) getach();

return i;

}

}

int cal() {

int x1,x2,x3,op1,op2,i;

i=getid();

if(i==4) x1=cal(); else x1=num;

op1=getid();

if(op1>=5) return x1;

i=getid();

if(i==4) x2=cal(); else x2=num;

op2=getid();

while(op2<=4) {

i=getid();

if(i==4) x3=cal(); else x3=num;

if((op1/2==0)&&(op2/2==1)) x2=(func[op2])(x2,x3);

else {

x1=(func[op1])(x1,x2);

x2=x3;

op1=op2;

}

op2=getid();

}

return (func[op1])(x1,x2);

}

void main(void) {

int value;

printf("Please input an expression:\n");

getach();

while(curch!='=') {

value=cal();

printf("The result is:%d\n",value);

printf("Please input an expression:\n");

getach();

}

}

只能 + - /

1首先打开VC++

     

2文件——新建

       

3新建一个C++文档

       

4先声明主函数还有变量

#include <stdioh>

char token;

       

5程序用到几个函数,下面介绍这几个函数:

这个函数是运算符匹配程序

void match( char expectedToken ) /对当前的标志进行匹配/

{

if( token == expectedToken ) token = getchar(); /匹配成功,获取下一个标志/

else

{

printf("cannot match\n");

exit(1); /匹配不成功,退出程序/

}

}

        

这个函数是计算低优先级的运算,比如,加减

int low( void )/用于计算表达式中级别最低的运算/

{

int result = mid(); /计算比加减运算优先级别高的部分/

while(( token == '+' ) || ( token == '-' ))

if ( token == '+')

{

match('+');     /进行加法运算/

result += mid();

break;

}

else if ( token == '-')

{

match('-');    /进行减法运算/

result -= mid();

break;

}

return result;

}

       

这个函数是计算高优先级运算,乘除

int low( void )/用于计算表达式中级别最低的运算/

{

int result = mid(); /计算比加减运算优先级别高的部分/

while(( token == '+' ) || ( token == '-' ))

if ( token == '+')

{

match('+');     /进行加法运算/

result += mid();

break;

}

else if ( token == '-')

{

match('-');    /进行减法运算/

result -= mid();

break;

}

return result;

}

       

这个函数是计算,乘除和带括号的运算

int high( void )/用于计算表达式中级别最高的运算,即带()的运算/

{

int result;

if( token == '(' ) /带有括号的运算/

{

match( '(' );

result = low();/递归计算表达式/

match(')');

}

else if ( token>= '0'&&token<='9' ) /实际的数字/

{

ungetc( token, stdin ); /将读入的字符退还给输入流,为读取整个数/

scanf( "%d", &result ); /读出数字/

token = getchar();  /读出当前的标志/

}

else

{

printf("The input has unexpected char\n"); /不是括号也不是数字/

exit(1);

}

return result;

}

        

主函数

main()

{

int result;  /运算的结果/

printf("\n");

printf("Welcome to use this simple calculator\n");

printf("Please input a multinomial like      \n");

printf("                    6-3(5-1)/2+14/7 \n");

printf("\n");

token = getchar(); /载入第一个符号/

     result = low(); /进行计算/

if( token == '\n' ) / 是否一行结束 /

printf( "The answer is : %d\n", result );

else

{

printf( "Unexpected char!");

exit(1); / 出现了例外的字符 /

}

scanf("%d",result);

return 0;

}

           

  此函数运行的程序结果如下

           

   

以上就是关于用c语言 (c++) 编写计算器程序全部的内容,包括:用c语言 (c++) 编写计算器程序、怎样用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器、用C语言编一个简单的计算器小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9284189.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存