c语言单词小助手

c语言版的单词小助手

说明:

此次是在被人的基础上做的改动,加了些功能,本人并非原作者

改动如下:

1.将程序为了具有良好的程序风格(文档注释,函数注释,语句注释)。
2.对部分功能做了完善完善,针对做错的单词重复记忆,列出了 错词表这一栏,用户可以查看错词表重复记忆,也可以删除错词表中的某些单词。
3.完善了查询单词的功能,支持英文查询以及中文查询。中文查询时,具有相同中文含义的英文单词,也会一一列举出来。
4.增加排行榜功能。

源代码

//*********英语单词小助手***********
//作者:仅做出修改
//版本:v1.2
//创建时间:2018年九月

//************************************


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_CHAR  20  // 最大字符
#define MAX_NUM  200  // 单词的最大个数
 struct word//单词的结构体
{
   char  en[MAX_CHAR]; // 英文形式
   char  ch[MAX_CHAR];   //中文形式
} s[MAX_NUM]; //单词数组

struct sco//用户的结构体
{
   char  id[MAX_CHAR]; // 英文形式
   int  sc;   //中文形式
} user[MAX_CHAR]; //单词数组
struct word w[MAX_NUM];//定义一个错误单词的结构体数组
int   m;
int   num; //单词个数
int   wnum;//记录错误单词的总数
int   unum;//记录用户的个数
int select=1;//select 为是否退出系统的标记
int d=0,c=0;//声明全局变量,记录用户答对以及回答错误的单词个数,以便计算分数
//帮助查询函数
void help()
{
    printf("\n本系统主要实现英语单词学习的功能。用户可对词典文件中的单词进行预览,增删改查。");
    printf("\n同时还可进行中英、英中测试。本系统还提供了测试成绩的显示功能。");
    printf("\n主要功能:。");
    printf("\n1.词库维护:可以增加、删除、修改和中文查询单词,英文查询单词。");
    printf("\n2.单词预览:将文件中的单词在屏幕上显示中英文词义。");
    printf("\n3.单词背诵(中英):随机显示中文,用户需输入英文,正确得十分,错误扣十分。"); 
    printf("\n4.单词背诵(英中):随机显示英文,用户需输入中文,正确可得十分,错误扣十分。");
    printf("\n5.成绩查询:显示中英、英中单词检测的成绩与总成绩。");
    printf("\n6.写错的词存入错词本,用户可以查看加强记忆,也可以将答错的词可以从单词本删除");
    printf("\n同时还可进行中英、英中测试。本系统还提供了测试成绩的显示功能。");
    printf("\n");
    printf("\n");

}

//从单词库文件中读取单词的信息
void  readfile()
{
   FILE *fp;//声明文件
   int i=0;//定义变量
   fp=fopen("data.txt","r");//打开存放单词的·文件库
   if(!fp)//如果文件不存在
   {
       printf("\n打开文件data.txt失败!");

   }
   while(fscanf(fp,"%s %s ",s[i].en,s[i].ch)==2)//读取下一个单词
   {
       i++;//计数器+1
   }
   num=i;//记录单词总数
   if(0==i)
       printf("\n文件为空,请选择词典维护增加词条!");
   else
       printf("\n");
   fclose(fp);//关闭文件

}

//向文件写入单词的函数
void  writefile()
{
   FILE *fp;//声明文件
   int i=0;//定义变量
   fp=fopen("data.txt","w");//打开文件
   if(!fp)//如果文件不存在
   {
       printf("\n打开文件data.txt失败!");

   }
   for(i=0;i<num;i++)//循环遍历写入单词
   {
       fprintf(fp,"\n%s %s ",s[i].en,s[i].ch);//fprintf(可以从一个文件流中格式化写入数据)
   }
   printf("\n");
   fclose(fp);//关闭文件
}

//向用户文件写入用户信息的函数
void writeuserfile(){
       FILE *fp;//声明文件
       fp=fopen("rank.txt","user");//打开文件
       if(fp)//如果文件不存在
   {
       fprintf(fp,"\n%s %d ",user[unum].id,user[unum].sc);//fprintf(可以从一个文件流中格式化写入数据)
       printf("\n");
       fclose(fp);//关闭文件
   }

        printf("\n打开文件data.txt失败!");

}


//读取错题库文件
void  readwrongfile()
{
   FILE *fp;//声明文件
   int i=0;//定义变量
   fp=fopen("wrongword.txt","r");//打开存放记错单词文件库
   if(!fp)//如果文件不存在
   {
       printf("\n打开文件wrongword.txtt失败!");

   }
   while(fscanf(fp,"%s %s ",w[i].en,w[i].ch)==2)//读取下一个单词
   {
       i++;//计数器+1
   }
   wnum=i;//记录单词总数
   if(0==i)
      // printf("\n文件为空,棒棒哒,你还没有记错单词哟");
      printf("\n");
   else
       printf("\n");
   fclose(fp);//关闭文件
}

/
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值