直接上代码
/*
* 输出任意字符串
* 输入形式:
输出
"helloworld"
*/
#include<iostream>
#include<string.h>
using namespace std;
int main(){
string a,b;
cout<<"请输入第一个字符串"<<endl;
cin>>a;
cout<<"请输入第二个字符串"<<endl;
cin>>b;
//cout<<b[0]<<endl;
if(a == "输出" && b[0] == '\"'){
cout<<"cout<<"<<b<<"<<endl;"<<endl;
}
return 0;
}
/*
* 不同的输入(拆分后的)字符串数量对应不同的模式
* 目前的输入格式是定好的,是为了方便实现,以后再扩展吧
* 输入
* 两个数(还可以是三个数,n个数)
* 求和、求...
*/
#include<iostream>
#include<string.h>
using namespace std;
int main(){
string a,b,c;
cout<<"请输入第一个字符串"<<endl;
cin>>a;
cout<<"请输入第二个字符串"<<endl;
cin>>b;
cout<<"请输入第三个字符串"<<endl;
cin>>c;
if(a == "输入"){
if(b == "两个数"){
cout<<"cin>>a>>b;"<<endl;
if(c == "求和"){
cout<<"cout<<a+b<<endl;"<<endl;
}
else if(c == "求差"){
cout<<"cout<<a-b<<endl;"<<endl;
}
else if(c == "求积"){
cout<<"cout<<a*b<<endl;"<<endl;
}
else if(c == "求商"){
cout<<"cout<<a/b<<endl;"<<endl;
}
else if(c == "求模"){
cout<<"cout<<a%b<<endl;"<<endl;
}
else if(c == "求最小值"){
cout<<"if(a >= b){"<<endl;
cout<<" "<<"cout<<b<<endl;"<<endl;
cout<<"}"<<endl;
cout<<"else{"<<endl;
cout<<" "<<"cout<<a<<endl;"<<endl;
cout<<"}"<<endl;
}
else if(c == "求最大值"){
cout<<"if(a >= b){"<<endl;
cout<<" "<<"cout<<a<<endl;"<<endl;
cout<<"}"<<endl;
cout<<"else{"<<endl;
cout<<" "<<"cout<<b<<endl;"<<endl;
cout<<"}"<<endl;
}
}
}
return 0;
}
/*
* 尽量把一个字符串做为一个条件,而不是两个或多个,这样可以细化
* 把各个程序合起来 根据拆分出的字符串数量来选用具体哪段程序来处理
* 计算(有类似的,如:求等。可以转换成统一的)
* 三个数(还可以是两个数,四个数等)
* 和(和的)
* 平均值
*/
#include<iostream>
#include<string.h>
using namespace std;
int main(){
string a,b,c,d;
cout<<"请输入第一个字符串"<<endl;
cin>>a;
cout<<"请输入第二个字符串"<<endl;
cin>>b;
cout<<"请输入第三个字符串"<<endl;
cin>>c;
cout<<"请输入第四个字符串"<<endl;
cin>>d;
if(a == "计算" && b == "三个数"){
cout<<"cin>>a>>b>>c;"<<endl;
if(c == "和"){
cout<<"r=a+b+c;"<<endl;
if(d == "两倍"){
cout<<"cout<<r*2<<endl;"<<endl;
}
else if(d == "平均值"){
cout<<"cout<<r/3<<endl;"<<endl;
}
}
}
return 0;
}
/*
* 将其合成后的程序,能输入一个长字符串,并能对长字符串进行拆分,然后去匹配对应拆分后的字符串对应的处理代码段,然后再匹配相应模式,生成对应代码
* 我这样做的弊端:
* 必须尽可能收集不同字符串数对应的几乎所有模式并收录,如果输入模式没有被收录,就无法生成对应代码
* 以后可以加入AI的元素,让其可以进行深度学习,这样就可以快速的进步和提高
*/
#include<iostream>
using namespace std;
int main(){
string a,b,c,d,e,f;
cout<<"请输入第一个字符串"<<endl;
cin>>a;
cout<<"请输入第二个字符串"<<endl;
cin>>b;
cout<<"请输入第三个字符串"<<endl;
cin>>c;
cout<<"请输入第四个字符串"<<endl;
cin>>d;
cout<<"请输入第五个字符串"<<endl;
cin>>e;
cout<<"请输入第六个字符串"<<endl;
cin>>f;
if(a == "半径"){
if(b =="r="){
if(c == "3.4"){
if(d == "求"){
if(e == "周长"){
if(f == "面积"){
cout<<"cout<<2*3.14*"<<c<<"<<endl;"<<endl;
cout<<"cout<<3.14*"<<c<<"*"<<c<<"<<endl;"<<endl;
}
}
}
}
}
}
return 0;
}
上面我这样做,其实很low,没有数据结构和算法,更没有用AI中的知识,后面我会改进的。
我在想,后面可以用数字编码的方式作为一种中间结果,每个拆分出的字符串对应一个规则表中对应的数字,中间用0隔开,最后只需要对这串数字处理即可。也可以加入字母等。先把规则表构造出来吧。