资源简介
用vc60win32app写的可进行四则混合运算的计算器,使用状态方式保证输入符合规则,使用逆波兰表达式进行求值,可进行负数、小数运算。供学习参考。
代码片段和文件信息
// calculator.cpp : Defines the entry point for the application.
// 四则混合计算器
//状态标志:
//0-开始状态,可输入数字、左括弧、小数点、负号,置空label1后再处理输入;不允许输入右括弧、运算符
//1-输入了左括弧,左括弧数+1,可输入数字、左括弧、小数点、负号,不允许输入右括弧、运算符
//2-输入了负号可输入数字、小数点,不允许输入左括弧、右括弧、运算符
//3-输入了小数点(前提:1、其前为0、1和6状态可输入小数点;2、其前为4状态,若操作数中无小数点,可输入小数点),可输入数字、右括弧(前提:左括弧数>0,置左括弧数-1)、运算符(前提:小数点前为数,可输入-+*/,若左括弧数=0且存在运算符(-+*/)可输入=,即计算),不允许输入左括弧、负号、小数点
//4-输入了数字可输入数字、运算符(-+*/,左括弧数=0可输入=,即计算),小数点(前提:该操作数无小数点)、右括弧(前提:左括弧数>0,置左括弧数-1),不允许输入左括弧、负号
//5-输入了右括弧,置左括弧数-1,可输入右括弧(前提:左括弧数>0,置左括弧数-1)、运算符(-+*/,左括弧数=0可输入=,即计算),不允许输入左括弧、数字、负号、小数点
//6-输入了运算符(若输入=,计算后,初始化),可输入数字、左括弧、小数点、负号,不允许输入右括弧、运算符
//键盘响应处理
//1、在资源中建立加速表,注意backspace键用虚键
//2、定义HACCEL hAccelTable;
//3、在主函数中装载加速表: hAccelTable = LoadAccelerators(hInstance (LPCTSTR)IDC_CALCULATOR);
//计算处理:利用逆波兰表达式求值
//先把中序表达式转换为后序表达式(逆波兰表达式)
//再利用堆栈进行逆波兰表达式求值
#include “stdafx.h“
#include “resource.h“
//#include
#include
#include “calculator.h“
#define MAX_LOADSTRING 100
using namespace std;
// Global Variables:
HINSTANCE hInst; // current instance
TCHAR sztitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text
int m_LeftRacketNums=0; //左括弧数
int m_OperatingState=0; //状态标志
char lpszPushClassName[] = “BUTTON“;
int m_Columns = 5; //数字按钮每行5
int m_NumericBtnTop = 50; //数字按钮初始化位置
int m_NumericBtnLeft = 3;//数字按钮初始化位置
int m_interval = 10;//间隔
//定义控件句柄
HWND hwndNumericPush[10]; //0-9数字按钮
HWND hwndBracketPush[2]; //()按钮
HWND hwndMinusPush; //-负数符号按钮
HWND hwndDecimalPush; //小数点按钮
HWND hwndClearPush; //清除按钮
HWND hwndBackSpacePush; //退格按钮
HWND hwndOperatorPush[5]; //运算符按钮
HWND hwndStaticText; //静态文本框
// Foward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE int);
LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);
LRESULT CALLBACK About(HWND UINT WPARAM LPARAM);
void addNumericpush(HWNDintint); //创建数字按钮
void addBracketpush(HWNDintint); //创建()按钮
void addMinuspush(HWNDintint); //创建负号按钮
void addDecimalpush(HWNDintint); //创建小数点按钮
void addClearpush(HWNDintint); //创建清除按钮
void addBackSpacepush(HWNDintintint); //创建退格按钮
void addOperatorpush(HWNDintintint); //创建运算符按钮
void addStaticText(HWNDintintintint); //创建静态文本框
void handleProc(intint &int &); //计算器按钮处理
int getOperatingState(char *); //获得最后一次输入的状态码
void InfixtoPostfix(char *); //中序转后序(逆波兰表达式)
double Parse(char *); //逆波兰表达式求值
int APIENTRY WinMain(HINSTANCE hInstance
HINSTANCE hPrevInstance
LPSTR lpCmdLine
int nCmdShow)
{
// TODO: Place code here.
MSG msg;
HACCEL hAccelTable;
// Initialize global strings
LoadString(hInstance IDS_APP_title sztitle MAX_LOADSTRING);
LoadString(hInstance IDC_CALCULATOR szWindowClass MAX_LOADSTRING);
MyRegisterClass(hInstance);
// Per
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7680 2012-12-07 18:14 calculator\calculator.aps
文件 21079 2012-12-08 11:16 calculator\calculator.cpp
文件 4541 2012-02-20 17:50 calculator\calculator.dsp
文件 545 2012-02-20 08:35 calculator\calculator.dsw
文件 364 2012-02-21 09:14 calculator\calculator.h
文件 1078 2012-02-20 08:35 calculator\calculator.ico
文件 222208 2012-12-08 12:11 calculator\calculator.ncb
文件 49664 2012-12-08 12:11 calculator\calculator.opt
文件 1238 2012-12-07 18:13 calculator\calculator.plg
文件 4793 2012-12-07 18:14 calculator\calculator.rc
文件 208976 2012-12-07 18:13 calculator\Debug\calculator.exe
文件 288744 2012-12-07 18:13 calculator\Debug\calculator.ilk
文件 91228 2012-12-07 18:13 calculator\Debug\calculator.obj
文件 4903280 2012-12-06 17:20 calculator\Debug\calculator.pch
文件 672768 2012-12-07 18:13 calculator\Debug\calculator.pdb
文件 2300 2012-12-06 17:20 calculator\Debug\calculator.res
文件 90701 2010-11-04 20:59 calculator\Debug\msado15.tlh
文件 76655 2010-11-04 20:59 calculator\Debug\msado15.tli
文件 13602 2007-02-17 06:43 calculator\Debug\mssc
文件 12333 2007-02-17 06:43 calculator\Debug\mssc
文件 110828 2012-12-06 17:20 calculator\Debug\StdAfx.obj
文件 222208 2012-12-07 18:13 calculator\Debug\vc60.idb
文件 585728 2012-12-07 18:13 calculator\Debug\vc60.pdb
文件 13504 2007-02-17 06:43 calculator\mssc
文件 12284 2007-02-17 06:43 calculator\mssc
文件 2105 2012-02-20 08:35 calculator\ReadMe.txt
文件 1867 2012-05-04 16:51 calculator\resource.h
文件 318 2012-02-20 08:35 calculator\small.ico
文件 297 2012-02-20 08:35 calculator\StdAfx.cpp
文件 1031 2012-05-08 10:20 calculator\StdAfx.h
............此处省略5个文件信息
- 上一篇:MFC下的Email邮箱软件
- 下一篇:图书馆管理系统c++课设
相关资源
- C++中,用mfc做的可视化的计算器程序
- mfc简单四则运算计算器
- VC++科学计算器源代码
- VC计算器 用VC++设计一个计算器,功能
- MFC表达式计算器
- 基于循环双向链表的大整数计算器c
- VC计算器,完整的案例,适合MFC和VC
- 个人所得税计算器c语言
- MFC基于逆波兰算法的四则运算计算器
- C++ MFC 简单计算器完善+注释
- C语言在vc下编写的Windows窗口小程序
- 教学工作量计算器
- VC++实现的计算器,用MFC实现界面操作
- C++MFC实训_计算器_附实训报告
- C++ MFC编写的计算器含各种进制转化、
- MFC-计算器
- 基于mfc的科学计算器,完整代码附报
- MFC使用双栈实现简单计算器
- 太阳方位计算器v1.02
- VC++计算器源代码
- 计算器MFC+VC++
- VC++实现科学计算器
- 简单LISP算术表达式计算器
- 教你用MFC做计算器
- VC++ MFC科学计算器,含代码和整个工程
- MFC简易计算器
- 基于MFC对话框的科学计算器(加强版
- 基于MFC的简易计算器表达式解析
- 基于MFC的计算器
- vc计算器源代码支持各种进制正余弦的
评论
共有 条评论