单词助手

该程序包含了单词修改,单词考核(汉译英及英译汉)和成绩查询,单词添加,删除,显示所有单词的功能。
//**单词助手
//  汪强
// 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;




}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值