中文编程尝试

直接上代码

/*
* 输出任意字符串 
* 输入形式:
  输出
  "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隔开,最后只需要对这串数字处理即可。也可以加入字母等。先把规则表构造出来吧。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值