资源简介
利用栈求表达式的值,可供小学生作业,并能给出分数

代码片段和文件信息
#include
#include
#include
#include
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define ERROR 0
#define OK 1
//定义表达式
typedef struct shiti
{
char a[20];
long result;
}xuanti;
typedef struct SqStack1
{ //建立数字栈
int *base;
int *top;
int stacksize;
}SqStack1;
typedef struct SqStack2
{
//建立运算符栈
char *base;
char *top;
int stacksize;
}SqStack2;
void WriteToFile(xuanti *pstuint num);
void ReadFromFile(xuanti *pstuint num);
void page_title(char *menu_item)
{//建立菜单
printf(“>>> 数学习题库 <<<\n\n- %s -\n\n“menu_item);
}
void return_confirm()
{
printf(“\n按任意键返回……\n“);
getch();
}
void IntInitStack(SqStack1 *S1)
{
S1->base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!S1->base)
exit(ERROR);
S1->top=S1->base;
S1->stacksize=STACK_INIT_SIZE;
}//IntInitStack
void CharInitStack(SqStack2 *S2)
{
S2->base=(char *)malloc(STACK_INIT_SIZE*sizeof(char));
if(!S2->base)
exit(ERROR);
S2->top=S2->base;
S2->stacksize=STACK_INIT_SIZE;
}//CharInitStack
long IntGetTop(SqStack1 *S1)
{ //取栈顶元素
long e1;
if((*S1).top==(*S1).base)
return 0;
e1=*((*S1).top-1);
return e1;
}//IntGetTop
char CharGetTop(SqStack2 *S2)
{ //取栈顶元素
char e2;
if((*S2).top==(*S2).base)
return 0;
e2=*((*S2).top-1);
return e2;
}//IntGetTop
int IntPush(SqStack1 *S1int e1)
{//入栈
*(*S1).top++=e1;
return OK;
}//IntPush
int CharPush(SqStack2 *S2char e2)
{//入栈
*(*S2).top++=e2;
return OK;
}//CharPush
int IntPop(SqStack1 *S1)
{//出栈
int e1;
if((*S1).top==(*S1).base)
return 0;
e1=*--(*S1).top;
return e1;
}//IntPop
int CharPop(SqStack2 *S2)
{//出栈
char e2;
if((*S2).top==(*S2).base)
return 0;
e2=*--(*S2).top;
return e2;
}//CharPop
char Precede(char achar b)
{
int ij;
char Table[8][8]={ ‘ ‘‘+‘‘-‘‘*‘‘/‘‘(‘‘)‘‘#‘
‘+‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
‘-‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
‘*‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
‘/‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
‘(‘‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘ ‘
‘)‘‘>‘‘>‘‘>‘‘>‘‘ ‘‘>‘‘>‘
‘#‘‘<‘‘<‘‘<‘‘<‘‘<‘‘ ‘‘=‘ };
//优先级表格
for(i=0;i<8;i++)
if(Table[0][i]==a) //纵坐标寻找
break;
for(j=0;j<8;j++) //横坐标寻找
if(Table[j][0]==b)
break;
return Table[j][i];
}//Precede
int Operate(int achar thetaint b)
{ //计算表达式值:主要是将大的表达式转化成小的表达式进行逐步求值
int c;
if(theta==‘+‘) c=a+b;
else if(theta==‘-‘) c=a-b;
else if(theta==‘*‘) c=a*b;
else c=a/b;
return c;
}//Operate
int IsOptr(char c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-07-04 16:07 数据结构课设\
文件 10463 2017-07-04 16:03 数据结构课设\Cpp1.cpp
文件 3377 2017-07-04 15:19 数据结构课设\Cpp1.dsp
文件 516 2017-07-04 16:07 数据结构课设\Cpp1.dsw
文件 41984 2017-07-04 16:07 数据结构课设\Cpp1.ncb
文件 48640 2017-07-04 16:07 数据结构课设\Cpp1.opt
文件 2730 2017-07-04 16:05 数据结构课设\Cpp1.plg
目录 0 2017-07-04 16:03 数据结构课设\Debug\
文件 217135 2017-07-04 15:52 数据结构课设\Debug\Cpp1.exe
文件 278948 2017-07-04 15:52 数据结构课设\Debug\Cpp1.ilk
文件 223132 2017-07-04 16:03 数据结构课设\Debug\Cpp1.pch
文件 582656 2017-07-04 15:52 数据结构课设\Debug\Cpp1.pdb
文件 33792 2017-07-04 16:05 数据结构课设\Debug\vc60.idb
文件 53248 2017-07-04 16:05 数据结构课设\Debug\vc60.pdb
文件 2 2017-07-04 16:03 数据结构课设\markrec.txt
文件 4 2017-07-04 15:55 数据结构课设\n_rec.txt
文件 0 2017-07-04 16:03 数据结构课设\shitiku.txt
- 上一篇:STM32 FATFS 移植好的全部源码
- 下一篇:论文写作公式居中编号右对齐模板
相关资源
- activiti 5.22.0 zip 工作流依赖包
-
kingba
se-jdbc-v8.zip - Windows执行zip、unzip命令行
- PcShutDownByTime.zip
- FreeRTOS采样ADC+KEY事件信号+DMA串口收发
- 让你页面速度飞起来 Web前端性能优化
- ModelGoon-4.4.1-site.zip
- vspd7.2.308.zip
- pthreads-w32-2-9-1-release.zip
- Navicat Premium 15汉化包.zip55438
- 登录注册界面.zip48872
- 电信中兴光猫超密获取工具使用方法
- IAR-Keygen-2019+附使用教程.zip
-
st
yles 引文样式语言( CSL ) 引文样 - flash as3 多点触控-缩放-旋转-滑动.zi
- IMX385驱动代码.zip
- sony_imx385.zip
- Origin2019最新中文版用户入门使用手册
- ucosII源代码 2.9版本全 Micrium-uCOS-II-V
- SX1301 +sx1255 GATEWAY.zip
- SX126x_LORA驱动程序(包含完整的工程文
- STM32 DS3231驱动.zip
- 7-zip压缩包
- EC20相关.zip
- 21天学会嵌入式开发STM32.zip
- Intel(R) 82579V网卡驱动for server20033
- 企业工资管理系统.zip
- OdooHotelManagementSystem 基于Odoo的酒店管
- 代码项目“生成”微博、知乎、
- 迅雷敏感资源限制解除小工具.zip
评论
共有 条评论