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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 &S,char x);

char Pop(Stack &S,char x);

void Push2(Stack2 &S,float x);

float Pop2(Stack2 &S,float x);

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 setStack();

Stack2 setStack2();

};

//1.cpp

#include

#include"1.h"

#include

#include

#include

#include

using namespace std;

template

void link::Push(Stack &S,char x) {

if(S.top==49)

{

cout<<"栈已满!?"<

}

else

S.top++;

S.data[S.top]=x;

}

template

char link:: Pop(Stack &S,char x) {

if(S.top==-1)

{

cout<<"栈空!"<

}

x=S.data[S.top];

S.top--;

return x;

template

void link::Push2(Stack2 &S,float x) {

if(S.top==49)

{

cout<<"栈已满!"<

}

else

S.top++;

S.data[S.top]=x;

}

template

float link::Pop2(Stack2 &S,float x) {

if(S.top==-1)

{

cout<<"栈空!"<

}

x=S.data[S.top];

S.top--;

return x;

template

void link::pingjia(int m)

{

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::In(char c) //判断字符是否为运算符? {

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::change(char x) //将运算符转换成为数字{

int a;

相关文档
最新文档