问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样用c语言编写一个简单的可以进行加减乘除运算混合运算的计算器

发布网友 发布时间:2023-04-28 02:34

我来回答

3个回答

热心网友 时间:2023-05-07 06:54

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

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

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

#include<stdio.h> /*函数头:输入输出头文件*/

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

3、定义变量:

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

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

4、输入四则运算式:

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

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

5、判断运算符号:

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

{

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

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

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

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

}

6、输出结果:

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

完整的源代码:

#include<stdio.h> /*函数头:输入输出头文件*/

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

{

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

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

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

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

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

{

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

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

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

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

}

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

}

热心网友 时间:2023-05-07 06:55

这是我写的一个win32框架,用你的c代码嵌入里面的计算代码你可以用纯c实现,很简单

/*使用DEVC++5.0编译通过,新手朋友请注意,启动顺序为打开DEVC++ - 新建项目 - 新建windows application程序(这里不是控制台程序),
然后新建HELLOWORD项目,清空MAIN.C代码,将本代码复制进去编译运行即可,
具体功能通过修改C代码实现,大家自己去探索。代码保存为.C文件,直接打开无法通过*/
截图:

代码如下:

#include <windows.h>
//#include <stdlib.h>

#define IDC_EDIT1 201 //自定义控件识别号
#define IDC_EDIT2 202
#define IDC_STATIC 301
#define IDC_BTN1 101

//回调函数.............................................................................

LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{

static TCHAR sss[256]; //不同的case分支之间传值一定要定义全局变量,否则会出错
static TCHAR sss1[256];
static int len,size,i,j,x=10,y=200;
static double sun;
TCHAR szText[256];
HWND edit1,edit2;
HWND an1;
HWND sta1;
switch(uMsg) //消息分支选择,注意SWITCH-CASE结构中,BREAK代表跳出当前SWITCH,RETURN代表结束整个函数。
{
case WM_COMMAND:
{
switch(LOWORD(wParam)) //点击不同的控件显示,走不同的处理路径
{
case IDC_BTN1: //点击按钮1触发消息
{
//MessageBox(hwnd,"提交成功","提示",MB_OK|MB_ICONINFORMATION);
len=GetDlgItemText(hwnd,IDC_EDIT1,sss,255); //获取控件内容函数 ,返回值为控件文本字节长度
//MessageBox(hwnd,sss,"输入内容",MB_OK);
GetDlgItemText(hwnd,IDC_EDIT2,sss1,255);

sun=atof(sss)+atof(sss1);
/*处理数据输入和涉及到数字运算用这个函数转换数据类型:【atof()】是把字符串转换成整型数的一个函数,扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回.默认返回类型为double类型,包含在头文件stdlib.h中。反方向函数为itoa()将整数转换成字符串*/

InvalidateRect(hwnd,NULL,TRUE); //发送刷新指令 ,这个很关键。要不然窗口不会及时显示结果。。
}
break;
default:
break;
}
break;
}
break;
case WM_DESTROY: //当前窗口被销毁时
PostQuitMessage(0); //发出退出程序的消息
break;

case WM_CLOSE: //右上角关闭按钮消息
DestroyWindow(hwnd); //销毁窗口
break;
case WM_CREATE: //控件创建消息
{
edit1 = CreateWindow("EDIT",NULL, WS_CHILD|WS_VISIBLE|WS_BORDER, 220, 30, 100,25,hwnd,(HMENU)IDC_EDIT1, NULL, NULL); //创建编辑框控件

edit2 = CreateWindow("EDIT",NULL, WS_CHILD|WS_VISIBLE|WS_BORDER, 220, 60, 100,25,hwnd,(HMENU)IDC_EDIT2, NULL, NULL); //创建编辑框控件

an1 = CreateWindow("button","计算",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,340,60,50,25,hwnd,(HMENU)IDC_BTN1,NULL,NULL); //创建按钮控件

//sta1= CreateWindow("STATIC","+",WS_CHILD|WS_VISIBLE|SS_CENTER,70,10,300,200,hwnd,(HMENU)IDC_STATIC,NULL,NULL); //创建静态文本框控件,画布,美化作用,下一步再深入研究
}
break;
case WM_PAINT: //【重绘窗口函消息 】
{
HDC hdc; //定义输出设备句柄
//RECT rect; //定义一块显示区域,DrawText 函数需要的参数
PAINTSTRUCT ps = {0}; //定义一个 数组存放字符串
hdc = BeginPaint(hwnd,&ps); //开始重绘

/******************************************核心程序代码区******************************************************************/
SetTextColor(hdc, RGB(255,0,0)); //设置字体颜色
Rectangle(hdc,2,2,818,555);
Rectangle(hdc,10,190,810,550); //画矩形,必须在正文之前显示框,否则正文会被覆盖

TextOut(hdc,350,200,TEXT("九九乘法表"),10); //直接文本显示
for(i=1;i<=9;i++)
for(j=1;j<=i;j++) {
size = wsprintf(szText,TEXT("%d×%d=%2d"),j,i,i*j); //将变量S,I的值按照格式符号%s%d转换后存入缓冲区szText,返回值为字节长度
/*注意:因为 wsprintf不支持浮点数,所以处理高精度数据计算式要用 swprintf代替*/
TextOut(hdc,x+j*80,y+i*25, szText,size);
}

TextOut(hdc,650,530,TEXT("小狗WINDOWS小程序"),17);
Rectangle(hdc,10,10,810,180); //矩形(美化类函数,形成边框效果)
TextOut(hdc,450,30,TEXT("简单的WIN32窗口框架,能够实现输入和显示"),39);
TextOut(hdc,100,30,TEXT("请输入参数A的值:"),16);
TextOut(hdc,100,60,TEXT("请输入参数B的值:"),16);
TextOut(hdc,100,90,TEXT("A+B= :"),len);
/*显示数字用以下代码*/
size = sprintf(szText,TEXT("%.4lf"),sun);
TextOut(hdc,220,90,szText,size);
/*显示文字或字母用以下代码
TextOut(hdc,550,30,sss,len);*/
/******************************************核心程序代码区******************************************************************/
EndPaint(hwnd,&ps); //结束重绘
}
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}

/*********************************************以下为主窗口函数**********************************************************************/
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
WNDCLASSEX wzgwind = {0}; //窗口类结构, 为注册窗口类作准备
wzgwind.cbSize = sizeof(wzgwind); //WNDCLASSEX结构的大小
wzgwind.cbWndExtra = 0; //窗口额外内存, 没有, 设为0
wzgwind.hbrBackground = COLOR_WINDOW; //使用系统默认背景
//wzgwind.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH); //窗口背景, 这里使用灰色背景(另一种表示法)
wzgwind.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)); //应用程序使用的鼠标类型
wzgwind.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION)); //光标类型
wzgwind.hIconSm = NULL; //应用程序程序的小光标, 不管, 设为 NULL
wzgwind.hInstance = hInstance; //应用程序程序实例句柄, 由 WinMain 函数传递过来
wzgwind.lpfnWndProc = WndProc; //这个很重要, 就是当前窗口的消息处理函数, 传递 WndProc 的地址
wzgwind.lpszClassName = "wzgwind"; //创建类时使用的类名, 可以自定义
wzgwind.lpszMenuName = NULL; //菜单, 没有, 就使用 NULL
wzgwind.style = CS_HREDRAW | CS_VREDRAW; //类的风格, 垂直重绘, 水平重绘

ATOM nAtom = RegisterClassEx(&wzgwind);
if (!nAtom )
{
MessageBox(NULL, "注册失败", "Infor", MB_OK);
return 0;
}

HWND hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"wzgwind","win-gou",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, /* x */
CW_USEDEFAULT, /* y */
840, /* width */
600, /* height */
NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,nCmdShow);

UpdateWindow(hwnd);

MSG msg = { 0 }; //定义并初始化msg
while( msg.message != WM_QUIT ) //使用while循环,如果消息不是WM_QUIT消息,就继续循环
{
if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) //查看应用程序消息队列,有消息时将队列中的消息派发出去。
{
TranslateMessage( &msg ); //将虚拟键消息转换为字符消息
DispatchMessage( &msg ); //分发一个消息给窗口程序。
}
}

UnregisterClass("wzgwind", wzgwind.hInstance);
return 0;
}

热心网友 时间:2023-05-07 06:55

#include<stdio.h>
main()
{
double a,b,w,x,y,z;
char ch;
while(scanf("%lf %c %lf",&a,&ch,&b)!=1)
{
if(ch=='*')
{w=a*b;printf("%lf*%lf=%.2lf\n",a,b,w);}
if(ch=='/')
{
if(b==0)printf("输入有误\n");
else {x=a/b;printf("%lf/%lf=%.2lf\n",a,b,x);}
}
if(ch=='+')
{y=a+b;printf("%lf+%lf=%.2lf\n",a,b,y);}
if(ch=='-')
{z=a-b;printf("%lf-%lf=%.2lf\n",a,b,z);}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 最近经常失眠在床上翻来覆去就是睡不着有什么好办法能够对付失眠吗 丰田车有哪些车型 孩子在柳州上初中,现在数学学习很困难,对数学有反感情绪,该怎么办? 诺必行--新毛豆蓝牙耳机配置参数 浴霸吹风怎样改延时关闭功能 为什么我往u盘里复制完软件一卸载电脑上的软件u盘上的就不能用了呢 我的U盘一删东西就死机是什么情况 u盘删除文件时出现了一个意外错误使您无法删除该文件怎么修复 大家好请问下我的u盘上次删除歌曲之后就不能在用了不知道怎么回事哦 U盘删除后不能使用 不思议迷宫英雄之村 不思议迷宫隐藏英雄怎么获得隐藏英雄冈布获得方法 不思议迷宫英雄之村攻略英雄之村通关攻略 不思议迷宫英雄之村隐藏冈布奥佐罗获取攻略 不思议迷宫英雄之村主线隐藏冈布奥获取方法总汇 不思议迷宫英雄之村隐藏dp攻略 我的世界网易版随机空岛有陆地吗 蓝湛动胎气肚子疼 赞美感谢好心人的句子 南丰建材市场附近哪里好玩 蹶弩的词语蹶弩的词语是什么 春风十里花日夕万山雨何处不相逢人间无此趣是什么意思 高中生保护文物800字作文 女人戴佛头吊坠的禁忌 求盈信hcd0008ptcdl固定电话使用说明书主要需要该电话的设置方法 豆瓣酱的热量 豆瓣酱会让人长胖吗 吃萝卜蘸豆瓣酱减肥吗? 民事诉讼关于举证期限的规定 民事诉讼法第199条原文 判决书下来,如果判的不合适。可以到立案厅提出异议吗?或者提出再审。 民事诉讼法199条最后两句怎么解释?在再次上诉期间上次判决执行物要是被执行,再次上诉胜诉了有什么意 在12306上面订的票已经超过一个月了在哪里能查到我的订单 校园垃圾分类宣传活动总结范文3篇 什么是恐龙化石? 攒积的网络解释攒积的网络解释是什么 填积的网络解释填积的网络解释是什么 繁积的网络解释繁积的网络解释是什么 好友早上好微信短语励志句子 祝朋友早上好微信短语 好朋友早上好微信短语赠言