91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 284KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-05-07
  • 語言: 其他
  • 標簽: C++計算器??

資源簡介

設計一個模擬計算器的程序,要求能對包含加、減、乘、除、括號運算符及SQR和ABS函數的任意整型表達式進行求解。

資源截圖

代碼片段和文件信息

#include
#include
#include?
#include
//運算符棧數組長度
#define?STACK_OPERATOR_LENGTH?100
//操作數棧數組長度
#define?STACK_DATE_LENGTH?100
//定義運算符棧
typedef?struct?OPStack
{
//定義運算符數組
char?opStack[STACK_OPERATOR_LENGTH];
//棧頂
int?top;
}OPStack*pOPStack;
//定義運算數棧
typedef?struct?DATAStack
{
//定義操作數數組;
double?stack[STACK_DATE_LENGTH];
int?top;
}DATAStack*pDATAStack;

//初始化運算符棧
void?InitpOPStack(pOPStack?&OPStack)
{
//為運算符棧分配空間
if(!(OPStack?=?(?pOPStack)malloc(?sizeof(OPStack?))))
{
printf(“分配內存空間失敗!\n“);
exit(-1);
}
OPStack->top=-1;
}

//初始化運算數棧
void?InitpDATAStack(pDATAStack?&pDStack)
{
//為運算數棧分配空間
if(!(pDStack?=?(?pDATAStack)malloc(sizeof(DATAStack))))
{
printf(“分配內存空間失敗!\n“);
exit(-1);
}
pDStack->top=-1;
}

//運算符進棧
void?PushOPStack(pOPStack?&pOPStack?char?ch)
{
pOPStack->opStack[++(pOPStack->top)]=ch;
}

//運算符出棧
void?PopOPStack(pOPStack?&pOStack?char?&ch)
{
?ch?=?pOStack->opStack[pOStack->top];
?pOStack->top--;
}

//運算數進棧
void?PushDATAStack(pDATAStack?&pDStack?double?d)
{
?++(pDStack->top);
?pDStack->stack[pDStack->top]?=?d;
}

//運算數出棧
void?PopDATAStack(pDATAStack?&pDStack?double?&d)
{
?d?=?pDStack->stack[pDStack->top];
?pDStack->top--;?
}

//清空運算符棧
void?ClearpOPStack(pOPStack?&pOStack)
{
?pOStack->top?=?-1;
}

//清空運算數棧
void?ClearpDATAStack(pDATAStack?&pDStack)
{
?pDStack->top?=?-1;
}

//獲取運算符棧頂元素
char?GetToppOPStack(pOPStack?&pOStack)
{
?return?pOStack->opStack[pOStack->top];
}

?//獲取運算數棧頂元素
double?GetToppDATAStack(pDATAStack?&pDStack)
{
?return?pDStack->stack[pDStack->top];
}

//區分?運算符?和?運算數?的函數,是運算符時返回true否則返回false
bool?IsOP(char?&ch)
{?//判斷是否為符號
?if?(?(ch?==?‘+‘)?||?(ch?==?‘-‘)?||?(ch?==?‘*‘)?||?(ch?==?‘/‘)?||?(ch?==?‘=‘)?||?(ch?==?‘A‘)?||?(ch?==?‘S‘)?||?(ch?==?‘a‘)?||?(ch?==?‘s‘)?||?(ch?==?‘(‘)?||?(ch?==?‘)‘)?)
??return?true;
?else
??return?false;
}

//參考《數據結構》(C語言版)第53頁?3.2.5表達式求值?表?3.1
char?Precede(char?op1?char?op2)
{
?char?tab[9][10];??//定義字符串的二維數組來存放運算符優先級的關系
?strcpy(?tab[0]?“>><<<><<>“?);
?strcpy(?tab[1]?“>><<<><<>“?);
?strcpy(?tab[2]?“>>>><><<>“?);
?strcpy(?tab[3]?“>>>><><<>“?);
?strcpy(?tab[4]?“<<<<<=<?strcpy(?tab[5]?“>>>>E>>>>“?);
?strcpy(?tab[6]?“>>>><>>>>“?);
?strcpy(?tab[7]?“>>>><>>>>“?);
?strcpy(?tab[8]?“<<<<?char?op[10];??//定義一維字符串數組來按優先級從低到高存放運算符
?strcpy(op?“+-*/()AS=“);
?int?i?j;

?for(?i?=?0;?i???if(?op[i]?==?op1)
???break;
?for(?j?=?0;?j???if(?op[j]?==?op2)
???break;
?return?tab[i][j];??//返回比較結果
}
void?exit_E()
{
??printf(“\n?|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n“);
??printf(“\n?|?***歡迎您的下次使用!謝謝!!!***???|?\n\n“);??//退出使用
??printf(“?|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n\n“);
}

??//對出棧的運算符和運算數進行計算
double?Operate(double?a?char?theta?double?b)
{
?double?s;
?switch(theta)
?{
?case?‘+‘:
??s?=?a?+?b;
??break;
?case?‘-‘:
??s?=?a?-?b;
??b

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-08-29?22:21??Debug\
?????文件??????217217??2014-07-11?13:36??Debug\jisuanqi.exe
?????文件??????307760??2014-07-11?13:36??Debug\jisuanqi.ilk
?????文件???????25175??2014-07-11?13:36??Debug\jisuanqi.obj
?????文件??????235928??2014-07-11?12:58??Debug\jisuanqi.pch
?????文件??????500736??2014-07-11?13:36??Debug\jisuanqi.pdb
?????文件???????41984??2014-07-11?13:43??Debug\vc60.idb
?????文件???????53248??2014-07-11?13:36??Debug\vc60.pdb
?????文件????????7893??2014-07-11?13:36??jisuanqi.cpp
?????文件????????3425??2014-07-11?13:43??jisuanqi.dsp
?????文件?????????524??2014-07-11?13:43??jisuanqi.dsw
?????文件???????41984??2014-07-11?13:43??jisuanqi.ncb
?????文件???????48640??2014-07-11?13:43??jisuanqi.opt
?????文件?????????250??2014-07-11?13:43??jisuanqi.plg

評論

共有 條評論

相關資源