{
printf(\输入重复,要重新添加吗(y/n)?\\n\ do
{ yes_no=getch();
}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); putchar('\\n'); break; }
if(p==record+n) {*p=temp;break;} }while (yes_no=='y'||yes_no=='Y'); fp=fopen(\ if(fp==NULL)
{ printf(\打开文件失败!\\n\
return; }
for(p=record; p fprintf(fp,\fclose(fp); } void mydelete() /*定义删除函数*/ { int n=0; char tempw[10]=\ struct word *p,*k,record[N]; FILE*fp; fp=fopen(\ if(fp==NULL) { printf(\打开文件失败!\\n\ p=record; while(feof(fp)==0) { fscanf(fp,\ printf(\n++;p++; } fclose(fp); printf(\请输入要删除的单词:\getchar(); gets(tempw); //puts(tempw); puts(tempw); for(k=record;k < record +n;k++) if(strcmp(tempw,k->w )==0) {break;} if(k < record +n) for(p=k;p< k+n-1;p++) - 31 - *p=*(p+1); else printf(\无此词,无法删除!\\n\fp=fopen(\if(fp==NULL) { printf(\打开文件失败!\\n\ return; } for(p=record;p fprintf(fp,\ fclose(fp); } void mymodify() /*定义修改函数*/ { int n=0; char yes_no; char tempw[10]; struct word *p,*find; struct word temp,record[N]; FILE *fp; fp=fopen(\ if(fp==NULL) { printf(\打开文件失败!\\n\ return; } p=record; while(feof(fp)==0) { fscanf(fp,\ printf(\ p++; n++; } fclose(fp); if (n==0) {printf(\文件中无记录!\\n\ printf(\请输入要修改的单词:\ getchar(); gets(tempw); for(p=record;p { printf(\ puts(tempw); find=p; break; } if(p==record+n) {printf(\文件中无此词!\\n\ do - 32 - { printf(\请输入正确的单词:\ printf(\请输入正确的解释:\ printf(\请输入正确的词性:\ printf(\请输入正确的译法:\ for(p=record;p if((strcmp(temp.w,p->w)==0)&&(p!=find)) { printf(\单词重复,要重新输入吗?(y/n)\\n\do { yes_no=getche(); }while (yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); putchar('\\n'); break; } if(p==record+n) { *find=temp; break; } }while(yes_no=='Y'||yes_no=='y'); fp=fopen(\ if(fp==NULL) { printf(\打开文件失败!\\n\ return; } for(p=record;p fprintf(fp,\ fclose(fp); } void mysearch() /*定义查找生词函数*/ { int flag=0,n=0; char tempw[10]=\ struct word temp; FILE *fp=NULL; fp=fopen(\ if(fp==NULL) {printf(\打开文件失败!\\n\printf(\请输入要查找的英(中)文: \gets(tempw); while(feof(fp)==0) { fscanf(fp,\ - 33 - if(strcmp(tempw,temp.w)==0) { if(flag==0) printf(\单词 解释 词性 \\n\ printf(\ flag=1; } n++; } if(n==0) printf(\文件中无记录!\\n \if(flag==0) printf(\查无此词!\\n\} void mysort() { char choose,yes_no; do { sortmenu(); printf(\ choose=getch(); switch(choose) { case '1': myget1();break; case '2': myget2();break; case '3': myget3();break; case '4': myget4();break; case '0': exit(0); default:printf(\为非法选项!\\n\ } printf(\要继续选择吗(Y/N)?\\n\ do { yes_no=getch(); } while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='y'||yes_no=='Y'); } void sortmenu() { system(\ printf(\ printf(\请输入选项编号(0~4): |\\n\ printf(\ printf(\显示名词 |\\n\printf(\显示动词 |\\n\printf(\显示副词 |\\n\printf(\显示形容词 |\\n\printf(\退出 |\\n\ printf(\} - 34 - void myget1() { int n=0; char a[5]=\ struct word temp; FILE *fp; fp=fopen(\ if(fp==NULL) { printf(\打开文件失败!\\n\ return; } system(\ printf(\所有名词 \\n\ while(feof(fp)==0) { fscanf(fp,\ if(strcmp(temp.s,a)==0) { printf(\ n++;} } if(n==0) printf(\文件中无记录!\\n\ else printf(\文件中有%d条记录!\\n\ fclose(fp); } void myget2() { int n=0; char b[5]=\ struct word temp; FILE *fp; fp=fopen(\ if(fp==NULL) { printf(\打开文件失败!\\n\ return; } system(\ printf(\所有动词 \\n\ while(feof(fp)==0) { fscanf(fp,\ if(strcmp(temp.s,b)==0) {printf(\ n++;} } if(n==0) printf(\文件中无记录!\\n\ else printf(\文件中有%d条记录!\\n\ - 35 -