c++24点游戏_24点游戏大全

2020-02-28 其他范文 下载本文

c++24点游戏由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“24点游戏大全”。

c++24点游戏

#include “iostream” #include “string” using namespace std;

//定义Stack类

const maxsize=20;

enum Error_code { succe, overflow, underflow };

template cla Stack { public: Stack();

bool empty()const;bool full()const;int size()const;void clear();

Error_code top(T &item)const;Error_code pop();

Error_code push(const T &item);private: int count;T entry[maxsize];};

template Stack::Stack(){ count=0;}

template

bool Stack::empty()const { return count==0;}

template

bool Stack::full()const { return count==maxsize;}

template int Stack::size()const { return count;}

template void Stack::clear(){ count=0;}

template

Error_code Stack::top(T &item)const { if(empty())return underflow;item= entry[count-1];return succe;}

template

Error_code Stack::pop(){ if(empty())return underflow;count--;return succe;}

template

Error_code Stack::push(const T &item){ if(full())return overflow;entry[count++]=item;return succe;}

Stack sign;Stack num;

int set;

// 判断程序中的异常,以便适时退出?//

void proce(char c)

//计算两个数的 +-* / 运算// { int k=0;double a,b;sign.pop();

if(num.top(b)==succe){

num.pop();

if(num.top(a)==succe){ num.pop();k=1;} } if(k){ switch(c){

case '+': num.push(a+b);break;case '-': num.push(a-b);break;case '*': num.push(a*b);break;case '/': if(b==0){ set=4;num.push(-1);} else

num.push(a/b);break;} }

else {set=1;num.push(-1);} }

void get_command(string &str){

cout

>str;}

double do_command(const string &str){ string s=“”;

double outcome=-1;char c;

for(int i=0;str[i]!='';i++){

if(set!=0)break;//例外 则停止运行

while(1){ //分离数据与运算符

if(str[i]='0' || str[i]=='.'){ s+=str[i];i++;} else { if(s!=“”){

if(num.push(atof(s.c_str()))==overflow)set=3;s=“”;} break;} }

char ch= str[i];

switch(ch){ //处理运算的优先级,并注意例外抛出

case '*': case '/':

if(sign.top(c)==succe)if(c=='*'||c=='/')proce(c);if(sign.push(ch)==overflow)set=3;break;case '+': case '-':

while(sign.top(c)==succe){ if(c!='(')proce(c);else break;}

if(sign.push(ch)==overflow)set=3;break;case '(':

if(sign.push(ch)==overflow)set=3;break;case ')':

while(sign.top(c)==succe){ if(c!='(')proce(c);else break;}

sign.pop();break;case '=':

while(sign.top(c)==succe){ if(c!='(')proce(c);else break;} break;

default: set=2;break;} }

if(num.size()==1 && sign.size()==0)num.top(outcome);else set=1;

if(set==0)cout

if(set==1)cout

if(set==4)cout

return outcome;}

void main()int f(){ double out;do { string str,s;set=0;

get_command(str);s=str;

if(str[0]=='-')str='0'+str;//处理表达式中的负号

for(int i=1;str[i]!='';i++){ if(str[i]=='-' && str[i-1]=='('){ str.insert(i,“0”);i++;} } out= do_command(str);

cout

我gai过此行

cout>out;cout

return out;}

int main(void)

{

int ii,zz,jj;

printf(“0-12的4个数字nn”);

for(jj=0;jj

{

for(ii=0;ii

{

zz=rand()()% 12;

cout

}

cout

f();

cout

cin>>jj;

cout

}

《c++24点游戏.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c++24点游戏
点击下载文档
相关专题 24点游戏大全 游戏 24点游戏大全 游戏
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文