<<\中英文的删除 $\\n\ <<\中英文的修改 $\\n\ <<\中英文的翻译 $\\n\ <<\返回上一层菜单 $\\n\ <<\退出 $\\n\ <<\ while(1) { cout<<\请选择操作方式:\ cin>>A; if(strlen(A)==1) { for(i='0';i<='5';i++) { b=i; if(b==A[0]) return b; } } cout<<\输入有误!\\n\ k++; }
if(k>4) { cout<<\错误输入超过5次!\\n\ exit(-1); }
}
和server2()
Char user::server2() { char A[10]; char b; char i; int k=0; system(\ cout<<\ <<\ <<\单词游戏 $\\n\ <<\给出英文选中文 $\\n\ <<\给出中文写英文 $\\n\ <<\查看错词本 $\\n\ <<\查找错误单词 $\\n\ <<\返回上一层菜单 $\\n\ <<\退出 $\\n\ <<\ while(1) { cout<<\请选择操作方式:\ cin>>A; if(strlen(A)==1) { for(i='0';i<='5';i++) { b=i; if(b==A[0]) return b; } } cout<<\输入有误!\\n\
}
k++; }
if(k>4) { cout<<\错误输入超过5次!\\n\ exit(-1); }
分别对应着其他二个模块;server1()界面对应着单词的增删改及翻译模块通过类words来实现,有单词的增加、单词的删除、单词的修改及单词的翻译功能;单词的增加通过words_add()
void words::words_add() {
char en[20],ch[40];
cout<<\请输入要添加的英文单词和中文意思\ cin>>en>>ch;
words_get(en,ch); ofstream llw;
if(words_seek(english)==-1) { llw.open(\ llw.write(english,strlen(english)); llw.put(' '); llw.write(chinese,strlen(chinese)); llw.put('\\n'); llw.close(); cout<<\单词添加成功\ } else cout<<\要添加的英文单词已存在,单词添加失败!\}
把用户输入的要添加的英文单词及中文意思存入ciku.txt文件中,单词的删除通过words_delete()
void words::words_delete() //删除单词 { //long z=0; //int j=0; char ch[40]; struct word *head,*p1,*p2;
cout<<\请输入要删除的中英文单词\ cin>>ch;
head=creat(); p2=p1=head; if(strcmp(p1->yw,ch)==0||strcmp(p1->zw,ch)==0) head=p1->next; while(p1!=NULL) { if(strcmp(p1->yw,ch)==0||strcmp(p1->zw,ch)==0) { cout<
}
break; } else { p2=p1; p1=p1->next; } }
if(p1==NULL) cout<<\您要删除的单词找不到!\
把用户要删除的单词先通过调用友元函数creat()
struct word *creat()//创建链表并把单词放入链表中 { int i=0; long z=0; char ch; n=0; struct word *head; word *p1=new struct word; p1->next=NULL; struct word *p2; p2=p1; fstream llw; llw.open(\ if(!llw) cout<<\ i=words_long(z,' '); llw.read(p1->yw,i); p1->yw[i]='\\0'; z=z+i+1; i=words_long(z,'\\n'); llw.seekg(z,ios::beg); llw.read(p1->zw,i); p1->zw[i]='\\0'; z=z+i+1; z++; while(llw.get(ch)) { n++; if(n==1)head=p1; else p2->next=p1; word *p1=new struct word; p1->next=NULL; p2->next=p1; p2=p1; i=words_long(z,' '); llw.seekg(z,ios::beg); llw.read(p1->yw,i); p1->yw[i]='\\0'; z=z+i+1; i=words_long(z,'\\n'); llw.seekg(z,ios::beg); llw.read(p1->zw,i); p1->zw[i]='\\0'; z=z+i+1; z++; llw.seekg(z,ios::beg); }
}
p2->next=NULL; return head;
创建一个链表并把ciku.txt文件里的数据全存进链表里再从表里找到它删除该单词所在结点最后再通过调用writefile(struct word * )
void writefile(struct word *head) { struct word *p; ofstream llw(\ p=head; while(p!=NULL) { llw.write(p->yw,strlen(p->yw)); llw.put(' '); llw.write(p->zw,strlen(p->zw)); llw.put('\\n'); p=p->next; } delete p,head; }
把新链表写入ciku.txt文件中保存来完成,单词的修改通过成员函数words_revise()
void words::words_revise() { long z=0; int k=0; char en[40],ch[40]; struct word *head,*p1;
cout<<\请先输入要修改的单词再输入要改为的单词\ cin>>en>>ch;
//words_get(en,ch); head=creat(); p1=head; while(p1!=NULL) { if(strcmp(p1->yw,en)==0||strcmp(p1->zw,en)==0) { if(strcmp(p1->yw,en)==0) { cout<
把用户输入的要修改的单词通过调用友元创建链表把
ciku.txt里的数据存进链表中再通过对链表的操作查找找到它并把它改为用户需要改为的单词再通过调用友元函数writefile()再把链表写回ciku.txt文件中来完成;单词翻译words_translate()
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<
有三种翻译方式:中英文单词一翻译、单独翻译中文单词和单独翻译英文单词。它根据用户的选择和输入通过调用友元words_seek()直接在文件ciku.txt中