该程序包含了单词修改,单词考核(汉译英及英译汉)和成绩查询,单词添加,删除,显示所有单词的功能。
//**单词助手
// 汪强
// 2017年3月14日
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 10//单词中字母的最大个数
#define MAX1 100//单词最大个数
int i;
int j;
int h,p;
int s=1;
struct word//建立单词结构体
{
char en[MAX];
char ch[MAX];
}word1[MAX1];
void file1()//向文件中存入单词和单词的汉语意思
{
FILE *p;
if((p=fopen("file1.dat","w"))==NULL)
{
printf("无法打开此文件!\n");
exit(0);
}
for(j=0;j<i;j++)
{
fprintf(p,"%s %s ",word1[j].en,word1[j].ch);
}
fclose(p);
}
void file2()//从文件中读取单词的信息
{
FILE *q;
if((q=fopen("file1.dat","r"))==NULL)
{
printf("无法打开此文件!\n");
exit(0);
}
j=0;i=0;
do
{
fscanf(q,"%s%s",word1[i].en,word1[i].ch);
i++;
}
while(fscanf(q,"%s %s ",word1[i].en,word1[i].ch)==2);
fclose(q);
}
void add()//添加单词及其汉语意思
{
int flag=1;
while(flag)
{
flag=0;
printf("\n请输入单词的英文形式:");
scanf("%s",word1[i].en);
for(j=0;j<i;j++)
if(word1[j].en==word1[i].en)
{
printf("\n单词重复请重新输入:");
flag=1;
break;
}
}
printf("请输入单词的中文形式:");
scanf("%s",word1[i].ch);
i++;
}
void revise()//修改单词信息
{
char en[MAX];
printf("\n请输入要修改单词的英文形式:");
scanf("%s",en);
for(j=0;j<i;j++)
{
if(strcmp(word1[j].en,en)==0)
{
printf("\n请输入修改后的单词和汉语意思:");
scanf("%s %s",word1[j].en,word1[j].ch);
break;
}
}
printf("\n修改成功");
file1();
}
void del()//删除单词
{
int k;
char en[MAX];
printf("\n请输入要删除单词的英文形式:");
scanf("%s",en);
for(j=0;j<i;j++)
{
if(strcmp(word1[j].en,en)==0)
{ for(k=j;k<i;k++)
word1[k]=word1[k+1];
break;
}
}
i--;
printf("\n删除成功");
file1();
}
void entext()//英译汉测试
{
char a[10];
int choose=1;
int n,z;
while(choose)
{
n=rand()%i;
printf("\n%s 请输入单词的汉语意思:",word1[n].en);
scanf("%s",a);
for(z=0;strcmp(a,word1[n].ch)!=0;z=z)
{printf("\n回答错误,减十分");p=p+1;break;}
for(z=0;strcmp(a,word1[n].ch)==0;z=z) {printf("\n回答正确,加十分");h=h+1;break;}
printf("\n继续测试请选1,返回上一级请选0:");
scanf("%d",&choose);
if(choose==0) return;
}
}
void chtext()//汉译英测试
{
char b[10];
int choose=1;
int n,z;
while(choose)
{
n=rand()%i;
printf("\n%s 请输入单词的英文形式:",word1[n].ch);
scanf("%s",b);
for(z=0;strcmp(b,word1[n].en)!=0;z=z)
{printf("\n回答错误,减十分");p=p+1;break;}
for(z=0;strcmp(b,word1[n].en)==0;z=z) {printf("\n回答正确,加十分");h=h+1;break;}
printf("\n继续测试请选1,返回上一级请选0:");
scanf("%d",&choose);
if(choose==0) return;
}
}
void grade()//成绩查询
{
int sum;
printf("\n回答错误%d个",h);
printf("\n回答正确%d个",p);
printf("\n总得分为%d",sum=10*p-10*h);
}
void all()
{
printf("\n显示所有单词及其汉语意思: ");
for(j=0;j<i;j++)
{
printf(" %s %s",word1[j].en,word1[j].ch);
}
}
void mainten()//词库维护
{
int choose;
int flag=1;
printf("********************\n");
printf("** 1.添加单词 **\n");
printf("** 2.修改单词 **\n");
printf("** 3.删除单词 **\n");
printf("** 4.返回上一层 **\n");
printf("********************\n");
while(flag)
{
printf(" \n请输入功能编号:");
scanf("%d",&choose);
switch(choose)
{
case 1:add();file1();break;
case 2:file2();revise();break;
case 3:file2();del();break;
case 4:return;
default:printf("\n输入有误!");
}
flag=0;
}
}
void boundary()//主界面函数
{
int temp;
printf("\n");
printf("\t\t\t**********************************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 0.词库维护 1.单词考核(英汉)*\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 2.单词考核(汉英) 3.成绩查询 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 4.查看所有单词 5.退出系统 *\n");
printf("\t\t\t**********************************************\n");
printf("\n");
printf("\n请选择序号:");
scanf("%d",&temp);
switch(temp)
{
case 0:mainten();break;
case 1:file2();entext();break;
case 2:file2();chtext();break;
case 3:grade();break;
case 4:file2();all();break;
case 5:s=0;break;
default:printf("\n输入有误!");
}
}
int main()//主函数
{
while(s)
{
boundary();
}
system("pause");
return 0;
}
单词助手
最新推荐文章于 2025-04-22 10:57:55 发布