利用栈求表达式的值,可供小学生作业,并能给出分数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//1.h
#include
#include
#include
#include
#include
using namespace std;
//template
struct Ti //定义一个结构体,用于存储题习题库中的每一道台?题目
{
char chh[30];
};
template
struct Stack //定义栈,其中数据元素为字符型í
{
T data[50];
int top;
};
template
struct Stack2 //定义栈,其中数据元素为整型í
{
float data[50];
int top;
};
template
class link
{
public:
void Push(Stack
char Pop(Stack
void Push2(Stack2
float Pop2(Stack2
void pingjia(int m) ;
int In(char c);
int change(char x);
int Precede(int a,int b);
float Operate(float a,char c,float b);
void toEmpty(char s[],int n);
void isStay(char s1[],int n1,char s2[],int n2);
int isInt(char s[],int n);
void xitiku(char a[],int n);
float Expression();
Stack
Stack2
};
//1.cpp
#include
#include"1.h"
#include
#include
#include
#include
using namespace std;
template
void link
if(S.top==49)
{
cout<<"栈已满!?"< } else S.top++; S.data[S.top]=x; } template char link if(S.top==-1) { cout<<"栈空!"< } x=S.data[S.top]; S.top--; return x; template void link if(S.top==49) { cout<<"栈已满!"< } else S.top++; S.data[S.top]=x; } template float link if(S.top==-1) { cout<<"栈空!"< } x=S.data[S.top]; S.top--; return x; template void link { switch(m/10) { case 0: case 1: case 2: case 3: case 4: case 5: cout<<"对不起,你没能及格,要加油哦!\n"; break; case 6: case 7: cout<<"恭喜您及格了,但离高分还有距离哦!\n"; break; case 8: case 9: cout<<"哇,您居然得了这么高的分数,真棒!\n"; break; case 10: cout<<"OH MY GOD!,您竟然考了满分!!\n";break; } } template int link int m=0,i; char OP[7]={'+','-','*','/','(',')','#'}; for(i=0;i<7;i++){ if(c==OP[i]) m++; } if(m==0) return 0; else return 1; } template int link int a;