您的位置:首页 > 编程语言

单词记忆王源代码

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);
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息