赞
踩
- #include<bits/stdc++.h>
- #include<windows.h>
- void SetTitle(LPCSTR lpTitle)
- {
- SetConsoleTitle(lpTitle);
- }
- using namespace std;
- int main()
- {
- long long i,g=-1000000,t,n1=0,n2=0,j,m,bk;
- char ch='\0';
- bool l[255];
- string s,a="",b="",c="";
- system("color F0");
- system("mode con cols=34 lines=19");
- SetTitle("人工智能 AI 1.0");
- cout<<"\n 算式格式为\"~~~=?\"\n 支持+-*/%五种运算!\n 不支持混合运算!\n 退出请输入\"退出\"\n 请提问:\n\n\n";
- while(1)
- {
- char k[255]={'\0'};
- memset(l,1,sizeof(l));
- cout<<" >> ";
- cin>>k;
- cout<<" >> ";
- for(i=0;i<255;i++)
- if(int(k[i])<0)l[i]=0;//注:这里用来判断中英文 例如输入"n=1,你好"则l为11110000
- //1个1为英文字符,2个0为中文
- s=k;
- if(l[0])t=1;
- else t=2;
- for(i=0;i<s.size();i+=t)
- {
- if(l[i])t=1;
- else t=2;
- if(k[i]=='\0')break;
- a="",b="",c="";
- if(l[i])
- {
- if(s[i]>='0'&&s[i]<='9')
- {
- n1=0,n2=0;
- ch='\0';
- bk=0;
- for(j=i;s[j]>='0'&&s[j]<='9';j++)
- n1=n1*10+(s[j]-'0');
- if(s[j]!='+'&&s[j]!='-'&&s[j]!='*'&&s[j]!='/'&&s[j]!='%')goto out;
- ch=s[j];
- m=j+1;
- int z=j+1;
- j--;
- for(;s[m]>='0'&&s[m]<='9';m++)
- n2=n2*10+(s[m]-'0');
- bk=m;
- m--;
- cout<<'=';
- if(ch=='+')cout<<n1+n2;
- if(ch=='-')cout<<n1-n2;
- if(ch=='*')cout<<n1*n2;
- if(ch=='/')cout<<n1/n2;
- if(ch=='%')cout<<n1%n2;
- break;
- }
- out:
- if(s[i]=='?'&&s[i+1]!='\0')cout<<',';
- else if(s[i]=='?'||s[i]=='!')cout<<"";
- else cout<<s[i];
- continue;
- }
- a.append(1,s[i]);
- a.append(1,s[i+1]);
- b.append(1,s[i+2]);
- b.append(1,s[i+3]);
- c.append(1,s[i+4]);
- c.append(1,s[i+5]);
- if(a=="你"&&b!="好"&&b!="个")cout<<"我";
- else if(a=="我")cout<<"你";
- else if(a=="是"&&b=="谁")
- {
- cout<<"是一个人工智能";
- i+=2;
- }
- else if(a=="呢"||a=="啊"||a=="呐"||a=="呀"||a=="哇"||a=="那"||a=="咯"||a=="吧"||a=="啦"||a=="了"||a=="儿"||a=="吗"||a=="")cout<<"";
- else if((a=="弄"||a=="干")&&(b=="嘛"||b=="啥"))
- {
- cout<<"肝代码";
- i+=2;
- }
- else if(a=="哪")cout<<"北京";
- else if(a=="何"&&b=="处")
- {
- cout<<"北京";
- i+=2;
- }
- else if(a=="是"&&b=="几"||a=="是"&&b=="多"&&c=="少"||a=="等"&&b=="于"&&(c=="几"||c=="多"))
- {
- for(int j=1;j<=i;j++)cout<<"\b";
- cout<<a;
- }
- else if(a=="是"&&b=="什"&&c=="么")
- {
- for(int j=1;j<=i;j++)cout<<"\b";
- cout<<"我不知道";
- i+=4;
- if(l[i+2]==1)i++;
- }
- else if(a=="是")
- {
- srand(g+=3);
- if(rand()%5>1)cout<<"是";
- else cout<<"不是";
- }
- else if(a=="能")
- {
- srand(g+=3);
- if(rand()%2)cout<<"能";
- else cout<<"不能";
- }
- else if(a=="几"||a=="多"&&b=="少")
- {
- srand(g+=3);
- cout<<rand()%100;
- if(b=="少")i+=2;
- }
- else if(a=="什"&&b=="么"&&c=="地")
- {
- cout<<"北京";
- i+=6;
- }
- else if(a=="什"&&b=="么"&&c=="时")
- {
- cout<<"中午";
- i+=6;
- }
- else if(a=="什"&&b=="么"&&c=="名")
- {
- cout<<"AI 1.0";
- i+=6;
- }
- else if(a=="死"&&b=="了")
- {
- cout<<"没死";
- i+=2;
- }
- else if(a=="你"&&b=="个")
- {
- cout<<"你才";
- i+=2;
- }
- else if(a=="知"&&b=="道")
- {
- cout<<"知道,";
- i+=2;
- }
- else if(a=="")cout<<"";
- else if(a=="")cout<<"";
- else if(a=="")cout<<"";
- else if(a=="")cout<<"";
- else if(a=="")cout<<"";
- else if(a=="退"&&b=="出")return 0;
- else cout<<a;
- }
- cout<<"!\n\n";
- }
- return 0;
- }

其实就是改变了一些汉字,再输出.
可以简单运算
如:
输入: 1+1=?
输出: =2!
10*10是多少?
=100!
像1+1+1这样的就只输出1+1的结果
制作不易,点个赞也行啊!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。