huabei_li

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

相同部分

林世杰 031602421 博客链接

github

李翔 031602418 博客链接

github

思路概述

这一次的作业要求是将第三次的代码进行语言上的拓展,使它能够支持五种语言的界面。但要求不同的是,上一次只要求了英汉两种语言,要想实现语言的选择只要增加几条选择语句就可以实现,所以不会有多少困难。但是这次的作业要求中明确的给出了要通过不修改源代码和编译方式就可以增加对其他语言的支持。通过网上搜索找到了类似的问题的解决方法,比如说用纯文件DLL,API等方式进行对文件的拓展。作业要求中也给出了提示用资源管理。但是最后想来想去,结合其他同学的实现方法,最后就用比较简单的方法实现了。通过利用函数对语言文件的调用就可以实现增加语言效果的目的

以下是添加的代码

void Choose(char c,int a)//语言选择 
{
	string s;
	int sb;
	ifstream inf;	//读取文件 
	if(c=='C')
		inf.open("e://CAL//Chinese.txt");//语言资源路径 
	if(c=='E')
		inf.open("e://CAL//English.txt");
	if(c=='J')
		inf.open("e://CAL//Japanese.txt");
	if(c=='F')
		inf.open("e://CAL//French.txt");
	if(c=='G')
		inf.open("e://CAL//German.txt");
	switch(a)//判断需输出的文本行 
	{
		case 1:	getline(inf,s,'\n'); 
			   	cout <<s<<endl;
				getline(inf,s,'\n');
				cout <<s<<endl; 
				getline(inf,s,'\n'); 
				cout <<s;
				break;
		case 2:	for(sb=0;sb<4;sb++)
				getline(inf,s,'\n'); 
			   	cout <<s;
				break;
		case 3:	for(sb=0;sb<5;sb++)
				getline(inf,s,'\n'); 
			   	cout <<s<<endl;
				break;
		case 4:	for(sb=0;sb<6;sb++)
				getline(inf,s,'\n'); 
			   	cout <<s;
				break;
	}
	inf.close();//关闭文件	
}

利用这个函数,用ifstream定义一个读取文件的变量,string定义一个字符串变量,getline有几个说明要读取第几行,可以用循环getline来判段要读取哪一行。只要在相应的文件位置中增加语言文件就可以实现目的。

程序实现和测试结果截图

先是txt内容:





运行图片:





文件夹:

github链接我提交日志

协作截图



差异部分

做完上次作业内心本来很激动终于可以不用提心吊胆的写作业结果又来了这么一次作业(郁闷)。先开始看到题目的时候我和世杰一点头绪都没有,也没接触过这一类问题的求解,再加上我自己的能力很低,除了老师讲过的基本上就没有涉猎了,再加上开学了不仅是课程上的事情,还有学院,部门也有很多事要处理,所以作业也推迟到最后才完成。最后的实现过程很简单,通过增加函数对外源文件的读取来实现目的。个人的感受就是有很多是课本学习范围之外的,是需要从网络大神和前辈那里依靠他们的经验才能快速解决的。同时也很开心和搭档世杰一起合作,从他那里我学到了很多知识和方法。PS:宿舍的锐捷可能有毒,在我准备上github的时候根本就没办法加载完整的页面,我真的很无奈啊,所以最终还是利用QQ完成了所有的沟通和文件的交流,文件都是通过世杰利用github上传的,这一点没能够按作业的要求来,抱歉。

posted on 2017-03-15 20:21  huabei_li  阅读(197)  评论(0编辑  收藏  举报