• 大小: 1.72MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-30
  • 语言: C/C++
  • 标签: vc60  计算器  

资源简介

用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\msscript.tlh

     文件      12333  2007-02-17 06:43  calculator\Debug\msscript.tli

     文件     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\msscript.tlh

     文件      12284  2007-02-17 06:43  calculator\msscript.tli

     文件       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个文件信息

评论

共有 条评论