单词记忆王源代码
2007-08-27 10:30
246 查看
/*4.作一个背单词的小程序
设计一背单词的小程序,程序以菜单方式工作,字典使用文本文件存放就可以了。使之能提供以下功能:
添加新词
支持顺序测验和随即测验
记录没背过的词
查找单词的汉语或英语意思(输入中文查对应的英语意思,输入英文查对应汉语意思)
*/
#include<iostream>
#include<fstream>
#include <ctime>
#include <cstdlib>
#include <process.h>
#include<string>
using namespace std;
string word[1000];
void search_1 ();
void search_2 ();
void test();
void go();
void random();
void read();
void save_to_file();
int m,number,i,Y,Q=21;
char W;
int main() //主函数开始
{ // save_to_file(); //调用保存函数
W=(char)Q;
cout<<" "<<W<<"欢迎使用单词记忆王程序"<<W<<" /n";
cout<<" produced by workgroup /n";
cout<<" 联系方式:TEL:13911395274 QQ 997274787. /n";
go();
return 0;
} //主函数结束
//翻译模块开始
void search_1 () //英文比较函数开始
{read();
string english;
int b=1,c,d=2;
cout<<"请输入您要查询的英文单词:";
cin>>english;
for (int i=0;i<1000;i++)
if(english==word[i])
{cout<<word[i]<<"的中文意思是:"<<word[i+1]<<endl;
cout<<"请输入您的选择:[1]=继续查询;[2]=退出到主菜单。";
cin>>c;
system("cls");
if (b==c) search_1( );
if (d==c) go();
if((b!=c)&&(d!=c))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
{cout<<"对不起,没有这个单词!"<<endl;
cout<<"请您选择:[1]=增加新单词;[2]=返回主菜单。";
cin>>c;
system("cls");
if (b==c) save_to_file( );
if (d==c) go();
if((b!=c)&&(d!=c))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
} //英文比较函数结束
void search_2 () //中文比较函数开始
{read();
string chinese;
int e=1,f,g=2;
cout<<"请输入您要查询的中文单词:";
cin>>chinese;
for (int j=0;j<1000;j++)
if(chinese==word[j])
{cout<<word[j]<<"的英文意思是:"<<word[j-1]<<endl;
cout<<"请输入您的选择:[1]=继续查询;[2]=退出到主菜单。";
cin>>f;
system("cls");
if(f==e)search_2();
if(f==g)go();
if((e!=f)&&(g!=f))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
{cout<<"对不起,没有这个单词!"<<endl;
cout<<"请您选择:[1]=增加新单词;[2]=返回主菜单。";
cin>>f;
system("cls");
if (e==f) save_to_file( );
if (g==f) go();
if((e!=f)&&(g!=f))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
} //中文比较函数结束
//翻译模块结束
//选择分支模块
void go()
{int a,choice;
void exit();
int Q=3,K=26;
char W=(char)Q,L=(char)K;
cout<<" "<<W<<" "<<W<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" 1:english to chinese "<<W<<endl ;
cout<<" "<<L<<L<<L<<L<<L<<L<<L<<L<<"MADE"<<L<<L<<L<<L<<L<<""<<W<<" 2:chinese to english "<<W<<endl;
cout<<" "<<W<<" 3:ad
4000
d new word "<<W<<endl;
cout<<" "<<W<<" 4:test yourself "<<W<<endl;
cout<<" "<<W<<" 5:exit program "<<W<<L<<L<<L<<L<<L<<"CHOICE"<<L<<L<<L<<L<<L<<L<<L<<L<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<endl;
cout<<"请输入您的选择:1 2 3 4 5:";
cin>>a;
system("cls");
choice=a;
switch (choice) //选择分支开始
{case 1:search_1 ();break;
case 2:search_2 ();break;
case 3:save_to_file( );break;
case 4:test();break;
case 5:exit();
default:cout<<"sorry,you are wrong!please make a choice again!"<<endl; go();break;
}
} //选择分支模块结束
//输入单词模块
void save_to_file( ) //输入单词模块开始
{string word[1000];
ofstream outfile("word.txt",ios::app);
if( ! outfile)
{cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<1;i++)
{ cout<<"请依次输入英文及对应中文(注意顺序!中间有空格!):";
cin>>word[i]>>word[i+1];
outfile<<word[i]<<" "<<word[i+1]<<" "<<endl;
}
outfile.close();
cout<<"请输入你的选择:[1]:继续添加新单词;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m) save_to_file( );
if(n==k) go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
} //输入单词模块结束
//测试模块
void test() //测试模块开始
{void test1();
void test2();
cout<<"请输入您的选择:[1]=英文到中文;[2]=中文到英文;[3]=随机测试。";
int o=1,p,q=2,r=3;
cin>>p;
system("cls");
if(o==p)test1( );
if(q==p)test2( );
if(r==p)random( );
if((o!=p)&&(q!=p)&&(r!=p))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
void test1() //英文单词测试开始
{ read();
string chinese;
for(int X=0;X<1000;X=X+2)
{for(int i=X;i<=X;i=i+2)
{ if(word[i]=="")go();
cout<<"*"<<word[i]<<"*"<<" ";
cout<<"请输入此单词的中文意思:"<<endl;
cin>>chinese;
if(chinese==word[i+1])
cout<<"you are great!"<<endl;
if(chinese!=word[i+1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)continue;
if(n==k)go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}}
}
} //英文单词测试结束
void test2( ) //中文单词测试开始
{ read();
string english;
for(int X=1;X<1000;X=X+2)
{for(int i=X;i<=X;i=i+2)
{ if(word[i]=="")go();
cout<<"*"<<word[i]<<"*"<<" ";
cout<<"请输入此单词的英文意思:"<<endl;
cin>>english;
if(english==word[i-1])
cout<<"you are great!"<<endl;
if(english!=word[i-1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)continue;
if(n==k)go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}}
}
} //中文单词测试结束
//测试模块结束
// 读文件模块开始
void read( )
{ ifstream infile("word.txt",ios::in); //从txt调出单词开始
if(! infile)
{cerr<<"open error!"<<endl;
exit(1);
}
for (int i=0;i<1000;i++)
{infile>>word[i];
}
cout<<endl;
} //从txt调出单词结束
// 读文件模块结束
//随机测试模块开始
void random()
{ int count();
int test3(int sin);
int test4(int cos);
count();
srand(time(NULL));
int number=rand()%Y+1;
cout<<"随机数为:"<<number<<endl;
if(number%2==0)
{if(word[number]=="") go();
else {cout<<"英文向中文的随机测试!";
test3(number);}
}
if(number%2==1)
{
cout<<"中文向英文的随机测试!";
test4(number);
}
}
int count() //随机产生种子函数开始
{
read( );
for(i=0;i<1000;i++)
{
if(word[i]=="")
{Y=i;break;}
}
return Y;
} //随机产生种子函数结束
//随机测试英文模块
int test3 (int sin) //随机测试英文模块开始
{ read();
string chinese;
for(int i=0;i<=1;)
{if(word[sin]=="") go();
else
{cout<<"*"<<word[sin]<<"*"<<" ";
cout<<"请输入此单词的中文意思:"<<endl;
cin>>chinese;
if(chinese==word[sin+1])
cout<<"you are great!"<<endl;
if(chinese!=word[sin+1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)random();
if(n==k) go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}}}
return 0;
}
//随机测试英文模块结束
//随机测试英文模块
//随机的是中文单词模块
int test4(int cos) //随机中文单词测试开始
{ read();
string english;
for(int i=0;i<=1;)
{ if(word[cos]=="") go();
else {
cout<<"*"<<word[cos]<<"*"<<" ";
cout<<"请输入此单词的英文意思:"<<endl;
cin>>english;
if(english==word[cos-1])
cout<<"you are great!"<<endl;
if(english!=word[cos-1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)random();
if(n==k)go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();} }}
return 0;
}
//随机中文单词模块测试结束
//随机模块结束
void exit()
{
Q=3;
W=(char)Q;
cout<<" "<<"本次程序即要结束,如有漏洞,请给出宝贵的意见!!"<<endl;
cout<<" "<<"请按任意键退出"<<W<<"记忆王"<<W<<"程序"<<endl;
exit(1);
}
设计一背单词的小程序,程序以菜单方式工作,字典使用文本文件存放就可以了。使之能提供以下功能:
添加新词
支持顺序测验和随即测验
记录没背过的词
查找单词的汉语或英语意思(输入中文查对应的英语意思,输入英文查对应汉语意思)
*/
#include<iostream>
#include<fstream>
#include <ctime>
#include <cstdlib>
#include <process.h>
#include<string>
using namespace std;
string word[1000];
void search_1 ();
void search_2 ();
void test();
void go();
void random();
void read();
void save_to_file();
int m,number,i,Y,Q=21;
char W;
int main() //主函数开始
{ // save_to_file(); //调用保存函数
W=(char)Q;
cout<<" "<<W<<"欢迎使用单词记忆王程序"<<W<<" /n";
cout<<" produced by workgroup /n";
cout<<" 联系方式:TEL:13911395274 QQ 997274787. /n";
go();
return 0;
} //主函数结束
//翻译模块开始
void search_1 () //英文比较函数开始
{read();
string english;
int b=1,c,d=2;
cout<<"请输入您要查询的英文单词:";
cin>>english;
for (int i=0;i<1000;i++)
if(english==word[i])
{cout<<word[i]<<"的中文意思是:"<<word[i+1]<<endl;
cout<<"请输入您的选择:[1]=继续查询;[2]=退出到主菜单。";
cin>>c;
system("cls");
if (b==c) search_1( );
if (d==c) go();
if((b!=c)&&(d!=c))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
{cout<<"对不起,没有这个单词!"<<endl;
cout<<"请您选择:[1]=增加新单词;[2]=返回主菜单。";
cin>>c;
system("cls");
if (b==c) save_to_file( );
if (d==c) go();
if((b!=c)&&(d!=c))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
} //英文比较函数结束
void search_2 () //中文比较函数开始
{read();
string chinese;
int e=1,f,g=2;
cout<<"请输入您要查询的中文单词:";
cin>>chinese;
for (int j=0;j<1000;j++)
if(chinese==word[j])
{cout<<word[j]<<"的英文意思是:"<<word[j-1]<<endl;
cout<<"请输入您的选择:[1]=继续查询;[2]=退出到主菜单。";
cin>>f;
system("cls");
if(f==e)search_2();
if(f==g)go();
if((e!=f)&&(g!=f))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
{cout<<"对不起,没有这个单词!"<<endl;
cout<<"请您选择:[1]=增加新单词;[2]=返回主菜单。";
cin>>f;
system("cls");
if (e==f) save_to_file( );
if (g==f) go();
if((e!=f)&&(g!=f))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
} //中文比较函数结束
//翻译模块结束
//选择分支模块
void go()
{int a,choice;
void exit();
int Q=3,K=26;
char W=(char)Q,L=(char)K;
cout<<" "<<W<<" "<<W<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" 1:english to chinese "<<W<<endl ;
cout<<" "<<L<<L<<L<<L<<L<<L<<L<<L<<"MADE"<<L<<L<<L<<L<<L<<""<<W<<" 2:chinese to english "<<W<<endl;
cout<<" "<<W<<" 3:ad
4000
d new word "<<W<<endl;
cout<<" "<<W<<" 4:test yourself "<<W<<endl;
cout<<" "<<W<<" 5:exit program "<<W<<L<<L<<L<<L<<L<<"CHOICE"<<L<<L<<L<<L<<L<<L<<L<<L<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<" "<<W<<endl;
cout<<" "<<W<<endl;
cout<<"请输入您的选择:1 2 3 4 5:";
cin>>a;
system("cls");
choice=a;
switch (choice) //选择分支开始
{case 1:search_1 ();break;
case 2:search_2 ();break;
case 3:save_to_file( );break;
case 4:test();break;
case 5:exit();
default:cout<<"sorry,you are wrong!please make a choice again!"<<endl; go();break;
}
} //选择分支模块结束
//输入单词模块
void save_to_file( ) //输入单词模块开始
{string word[1000];
ofstream outfile("word.txt",ios::app);
if( ! outfile)
{cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<1;i++)
{ cout<<"请依次输入英文及对应中文(注意顺序!中间有空格!):";
cin>>word[i]>>word[i+1];
outfile<<word[i]<<" "<<word[i+1]<<" "<<endl;
}
outfile.close();
cout<<"请输入你的选择:[1]:继续添加新单词;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m) save_to_file( );
if(n==k) go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
} //输入单词模块结束
//测试模块
void test() //测试模块开始
{void test1();
void test2();
cout<<"请输入您的选择:[1]=英文到中文;[2]=中文到英文;[3]=随机测试。";
int o=1,p,q=2,r=3;
cin>>p;
system("cls");
if(o==p)test1( );
if(q==p)test2( );
if(r==p)random( );
if((o!=p)&&(q!=p)&&(r!=p))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}
}
void test1() //英文单词测试开始
{ read();
string chinese;
for(int X=0;X<1000;X=X+2)
{for(int i=X;i<=X;i=i+2)
{ if(word[i]=="")go();
cout<<"*"<<word[i]<<"*"<<" ";
cout<<"请输入此单词的中文意思:"<<endl;
cin>>chinese;
if(chinese==word[i+1])
cout<<"you are great!"<<endl;
if(chinese!=word[i+1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)continue;
if(n==k)go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}}
}
} //英文单词测试结束
void test2( ) //中文单词测试开始
{ read();
string english;
for(int X=1;X<1000;X=X+2)
{for(int i=X;i<=X;i=i+2)
{ if(word[i]=="")go();
cout<<"*"<<word[i]<<"*"<<" ";
cout<<"请输入此单词的英文意思:"<<endl;
cin>>english;
if(english==word[i-1])
cout<<"you are great!"<<endl;
if(english!=word[i-1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)continue;
if(n==k)go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}}
}
} //中文单词测试结束
//测试模块结束
// 读文件模块开始
void read( )
{ ifstream infile("word.txt",ios::in); //从txt调出单词开始
if(! infile)
{cerr<<"open error!"<<endl;
exit(1);
}
for (int i=0;i<1000;i++)
{infile>>word[i];
}
cout<<endl;
} //从txt调出单词结束
// 读文件模块结束
//随机测试模块开始
void random()
{ int count();
int test3(int sin);
int test4(int cos);
count();
srand(time(NULL));
int number=rand()%Y+1;
cout<<"随机数为:"<<number<<endl;
if(number%2==0)
{if(word[number]=="") go();
else {cout<<"英文向中文的随机测试!";
test3(number);}
}
if(number%2==1)
{
cout<<"中文向英文的随机测试!";
test4(number);
}
}
int count() //随机产生种子函数开始
{
read( );
for(i=0;i<1000;i++)
{
if(word[i]=="")
{Y=i;break;}
}
return Y;
} //随机产生种子函数结束
//随机测试英文模块
int test3 (int sin) //随机测试英文模块开始
{ read();
string chinese;
for(int i=0;i<=1;)
{if(word[sin]=="") go();
else
{cout<<"*"<<word[sin]<<"*"<<" ";
cout<<"请输入此单词的中文意思:"<<endl;
cin>>chinese;
if(chinese==word[sin+1])
cout<<"you are great!"<<endl;
if(chinese!=word[sin+1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)random();
if(n==k) go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();}}}
return 0;
}
//随机测试英文模块结束
//随机测试英文模块
//随机的是中文单词模块
int test4(int cos) //随机中文单词测试开始
{ read();
string english;
for(int i=0;i<=1;)
{ if(word[cos]=="") go();
else {
cout<<"*"<<word[cos]<<"*"<<" ";
cout<<"请输入此单词的英文意思:"<<endl;
cin>>english;
if(english==word[cos-1])
cout<<"you are great!"<<endl;
if(english!=word[cos-1])
cout<<"sorry,you are wrong!"<<endl;
cout<<"请输入你的选择:[1]:继续进行测试;[2]返回主菜单。";
int m=1,n,k=2;
cin>>n;
system("cls");
if(n==m)random();
if(n==k)go();
if((m!=n)&&(k!=n))
{cout<<"sorry!you are wrong!"<<endl;
cout<<"please,make your choice again!"<<endl;
go();} }}
return 0;
}
//随机中文单词模块测试结束
//随机模块结束
void exit()
{
Q=3;
W=(char)Q;
cout<<" "<<"本次程序即要结束,如有漏洞,请给出宝贵的意见!!"<<endl;
cout<<" "<<"请按任意键退出"<<W<<"记忆王"<<W<<"程序"<<endl;
exit(1);
}
相关文章推荐
- 记忆英语单词的方法
- 用艾宾浩斯曲线记忆周期来背单词是否有理论依据?
- 2011-7-13单词记忆
- 记忆网络之Dynamic Memory Networks模型介绍及代码实现
- 日语二级能力考试单词记忆的方法
- 面试题:单词翻转(代码简洁&效率)
- 简单的单词个数统计的mapreduce 的代码实现
- 一个单词的记忆之旅
- php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
- 代码写作怎么样记忆深刻
- 将一句话中的单词进行倒置c++代码实例及运行结果
- 将一句话中的单词进行倒置c++代码实例及运行结果
- 有趣的研究表明单词也是靠形象记忆
- 【字符串处理算法】将输入字符串中的各个单词反序的算法设计及C代码实现
- Sublime——让SublimeText换行的时候不拆散一个单词或者代码
- VBA分割单词代码尝试
- 从Android代码中来记忆23种设计模式
- 从英文小说文件提取每一个单词的程序代码
- 如何记忆日语单词
- (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); (2)编写单元测试进行测试; (3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。