寻找用户输入的单词,再根据word_seek()的返回值输出用户需要的翻译来实现单词的翻译 等功能的;
Server2()界面对应着单词游戏模块通过类wordsgame来实现,有单词选择题(给出英文选中文)game_abc()
int wordsgame::game_abc() {
int k; int en;
char abczw[3][40],abcyw[3][20]; struct word *p; int i=1,j=0,l=0; p=creat(); n=n+1;
k=suiji(n-2);
while(i<=k+2) { if(i
}
l=suiji(3);
cout<
if(en>=1&&en<=3) {
if(en==l) cout<<\选择正确\ else cout<<\选择错误!\ } else cout<<\输入错误\ delete p; return l; }
通过调用随机函数产生随机数来输出随机数在链表结点中对应的三个单词再根据判断用户输入的正确与否
来实现单词的选择,给出中文写英文game_tran()
int wordsgame::game_tran() {
int i=0,k,m; char en[20]; struct word *p; char abc[2][40]; p=creat(); m=n+1; k=suiji(m); while(p!=NULL) { i++; if(i==k) { strcpy(abc[0],p->yw); strcpy(abc[1],p->zw); break; p=p->next; } else p=p->next; }
cout<
通过调用随机函数来随机的读取链表结点中的中文单词再判断用户的输入与否,若否则把错误和对应的正确中英文单词一起存入错词本wrongwords.txt中,查看错词本game_examine()
void wordsgame::wrongwords_examine() { struct wrongword *p; p=wrongwords_creat(); while(p!=NULL) {
cout<
delete p; }
通调用wrongwords_creat()
struct wrongword * wordsgame::wrongwords_creat() { char hh; long z=0; int r=0,k=0;
wrongword *p1=new struct wrongword; struct wrongword *head,*p2; p2=p1; ifstream llw(\ if(!llw) cout<<\ llw.seekg(z,ios::beg); k=wrongwords_long(z,' '); llw.read(p1->en,k); p1->en[k]='\\0'; z=z+k+1; llw.seekg(z,ios::beg); k=wrongwords_long(z,' '); llw.read(p1->ch,k); p1->ch[k]='\\0'; z=z+k+1; llw.seekg(z,ios::beg); k=wrongwords_long(z,'\\n'); llw.read(p1->wrong,k); p1->wrong[k]='\\0'; z=z+k+2; while(llw.get(hh)) { r++; llw.seekg(z,ios::beg); if(r==1) head=p1; wrongword *p1=new struct wrongword; p1->next=NULL; p2->next=p1; p2=p1; k=wrongwords_long(z,' '); llw.read(p1->en,k); p1->en[k]='\\0'; z=z+k+1; llw.seekg(z,ios::beg); k=wrongwords_long(z,' '); llw.read(p1->ch,k); p1->ch[k]='\\0'; z=z+k+1; llw.seekg(z,ios::beg); k=wrongwords_long(z,'\\n'); llw.read(p1->wrong,k); p1->wrong[k]='\\0'; z=z+k+2; llw.seekg(z,ios::beg); } p2->next=NULL; llw.close(); return head; }
创建一个链表并把错词本中的数据存入其中再读取链表中的数据输出到屏幕上,查找错误单词wrongwords_serach()
void wordsgame::wrongwords_search() { char en[20]; char ch[40]; char wr[20][20]; long z=0; struct wrongword *p; p=wrongwords_creat(); cout<<\请输入要差找的单词\ cin>>en; while(p!=NULL) { if(strcmp(p->en,en)==0) { strcpy(ch,p->ch); strcpy(wr[z],p->wrong); z++; } p=p->next; } cout<<\查找完毕!\ if(z!=0) { cout< 通过调用wrongwords_creat()创建链表读取错词本wrongwords.txt中全部数据根据用户的输入单词与链表中的每个结点中的英文单词一个个对比是否相同,是就输出该结点等功能。 调试分析: 调试过程中经常会应为程序太长,找不出错误在哪里,后我我学会了把程序分割成成一个个小函数再调出来调试,虽然可能你觉得这方法很复杂化,但是只要你掌握了分割技巧就会觉得简单而且效率高,百分百的能找到出错的地方。 先在f:\\目录下创建三个txt文件分别为user.txt、ciku.txt、wrongwords.txt 至于内容可以把附录里面的内容输进去,注意:内容末尾必须有且只有一个换行不然查找会出错,然后可以打开exe应用程序先注册再登入,进入后自然会用。 用户使用说明:测试结果:
c++单词学习软件课程设计报告(内附程序源代码)



