#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct
{
char en[40];
char ch1[40];
char ch2[40];
}Word;
Word wo[100];
int meau()
{
char c;
do{
system("cls");
printf("\t\t\t *******背单词******* \n");
printf("\t\t\t┏━━━━━━━━━━┓ \n");
printf("\t\t\t┃ 1. 单词添加 ┃ \n");
printf("\t\t\t┃ 2. 单词浏览 ┃ \n");
printf("\t\t\t┃ 3. 单词测试 ┃ \n");
printf("\t\t\t┃ 4. 单词删除 ┃ \n");
printf("\t\t\t┃ 5. 单词另存 ┃ \n");
printf("\t\t\t┃ 0. 退出程序 ┃ \n");
printf("\t\t\t┃ ┃ \n");
printf("\t\t\t┗━━━━━━━━━━┛ \n");
printf("\t\t请您选择想要运行的功能\n\t\t提示:\n\t\t\t请输入数字(0-3):\n\n\t\t选择实现功能:");
scanf("%c",&c);
}while(c<'0'||c>'5');
return(c-'0');
}
int add(Word wo[],int n)
{
char signs[10];
int i=0;
system("cls");
printf("\n\n\n\n\n\n\t\t请添加你认为很重要但是不怎么熟悉的单词");
do
{
printf("\n\n\t请添加第%d个单词 ",n+i+1);
scanf("%s",wo[n+i].en);
printf("\t请输入该单词的第一个汉语意思 ");
scanf("%s",wo[n+i].ch1);
printf("\t请输入该单词的第二个汉语意思 ");
scanf("%s",wo[n+i].ch2);
i++;
printf("\n\n\t是否继续添加??\n\t提示\n\t输入no不继续,其他单词继续");
scanf("%s",signs);
}while(strcmp(signs,"no")!=0);
return (n+i);
}
void test(Word wo[],int n)
{
printf("\n\t\t此次测试是百分制,大侠多多努力");
int m,i,sum=0,s=0;
char signs[40];
printf("\n\t┏━━━━━━━━┓");
printf("\n\t┃ 测试的方式 ┃");
printf("\n\t┃ 1.英译汉 ┃");
printf("\n\t┃ 2.汉译英 ┃");
printf("\n\t┗━━━━━━━━┛");
printf("\t\t 请选择测试的方式");
scanf("%d",&m);
system("cls");
if(m==1)
{
for(i=0;i<n;i++)
{
printf("\n\t单词为%s\n\t其汉语意思为???(只写一个意思即得分)",wo[i].en);
scanf("%s",signs);
if((strcmp(wo[i].ch1,signs)==0)||(strcmp(wo[i].ch2,signs)==0))
{
printf("\n\t好厉害!!!!!\n\n");
s=s+1;
}
}
sum=(s/n)*100;
printf("\n\t\t您的最后得分是 %f",sum);
}
if(m==2)
{
for(i=0;i<n;i++)
{
printf("单词的汉语意思为%s %s则该单词是???",wo[i].ch1,wo[i].ch2);
scanf("%s",signs);
if(strcmp(wo[i].en,signs)==0)
{
printf("\n\t好厉害!!!!!\n\n");
s=s+1;
}
}
sum=(s/n)*100;
printf("\n\t\t您的最后得分是 %f",sum);
}
}
void look(Word wo[],int n)
{
int i;
printf("\n┏━━━━━━━┳━━━━━━━━┳━━━━━━┓");
printf("\n┃ 单词 ┃ 汉语意思1 ┃ 汉语意思2┃");
printf("\n┗━━━━━━━┻━━━━━━━━┻━━━━━━┛");
for(i=0;i<n;i++)
{
printf("\n %s\t\t\t%s\t\t%s",wo[i].en,wo[i].ch1,wo[i].ch2);
if(i%3==0)
printf("\n━━━━━━━━━━━━━━━━━━━━━━━");
}
printf("\n┗━━━━━━━━━━━━━━━━━━━━━━━┛");
}
int Dele(Word wo[],int n)
{
int i,j;
char signs[30];
printf("\n\t请输入想要斩尽,不想要再见到的单词\n");
scanf("%s",signs);
for (i=0;i<n;i++)
{
if(strcmp(wo[i].en,signs)==0)
{
for(j=i;j<n-1;j++)
{
strcpy(wo[j].en,wo[j].en);
strcpy(wo[j].ch1,wo[j].ch1);
strcpy(wo[j].ch2,wo[j].ch2);
}
break;
}
else
if(i==(n-1))
printf("\n\t单词库内无此单词\n");
}
return (n-1);
}
void save(Word wo[],int n)
{
int i=0;
FILE *fp;
char filename[20];
printf("\n\t\t文件名输入提示:\n\t\t尽量在文件名的最后加后缀,决定文件的格式\n\t请输入所保存的文件名:");
scanf("\t%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("\t无法打开文件\n");
system("pause");
return;
}
fprintf(fp,"*****************单词本********************\n");
fprintf(fp," 单词 汉语意思1 汉语意思2 \n");
fprintf(fp,"------------------------------------------------------\n");
while(i<n)
{
fprintf(fp,"\n\t%s\t\t%s\t\t%s",wo[i].en,wo[i].ch1,wo[i].ch2);
i++;
}
fprintf(fp,"----------------------------------------------------\n");
fprintf(fp,"*********************共有%d条记录*********************\n",n);
fclose(fp);
printf("保存成功!\n");
}
void main()
{
int n=0;
printf("\n\n\n\n\n\n\n\n\t\t\t 欢迎使背单词程序\n\n\n\n\n\t\t\t 希望大侠此次多多斩尽与单词间的纠纷\n\n\n\n\n\n\n\n\n");
system("pause");
for(;;)
{
switch(meau())
{
case 1:
printf("\n\t单词添加\n");
n=add(wo,n);
break;
case 2:
printf("\n\t\t\t 单词浏览\n");
look(wo,n);
system("pause");
break;
case 3:
printf("\n\t单词测试\n");
test(wo,n);
printf("\t");
system("pause");
break;
case 4:
printf("\n\t单词删除\n");
n=Dele(wo,n);
printf("\t");
break;
case 5:
printf("\n\t单词另存");
save(wo,n);
printf("\t");
break;
case 0:
printf("\n\t\t谢谢使用,再见!\n");
printf("\n\t\t");
system("pause");
exit(0);
}
}
}