快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

使用C语言怎么实现单词小助手

本篇文章为大家展示了使用C语言怎么实现单词小助手,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的做网站、网站设计质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式网络营销推广需求,让再小的品牌网站制作也能产生价值!

一.题目分析

单词小助手,要求完成以下任务:

1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。

2.将单词测试中的功能完善,可针对做错的单词重复记忆。

3.查询单词的功能添加英文词查询,中文查询的功能完善(考虑如何显示同样中文意义,不同的英文单词)

提高要求:

可将程序中的不足(如数据验证,排名功能)等根据自己的能力与理解完成。

二.算法构造(新增函数)

流程图

(1)总流程图

使用C语言怎么实现单词小助手

(2)search()函数流程图

使用C语言怎么实现单词小助手

(3)repeat()函数流程图

使用C语言怎么实现单词小助手

三.程序实现

#include 
#include 
#include 
#define MAX_CHAR 20 // 最大字符
#define MAX_NUM 200 // 单词的最大个数
struct word
//单词的结构体
{
 char en[MAX_CHAR]; // 英文形式
 char ch[MAX_CHAR]; //中文形式
} 
s[MAX_NUM]; //单词数组
int num; //单词个数
int select=1;//select 为是否退出系统的标记
int d=0,c=0;//c为答错的次数,d为答对的次数
//帮助
void help()
{
 printf("\n本系统主要实现英语单词学习的功能。用户可对词典文件中的单词进行预览,增删改查。");
 printf("\n同时还可进行中英、英中测试。本系统还提供了测试成绩的显示功能。");
}

//从文件中读取单词的信息
void readfile()
{
 FILE *fp;
 int i=0;
 fp=fopen("E:\\data.txt","r");
 if(!fp)
 {
  printf("\n打开文件data.txt失败!");

 }
 while(fscanf(fp,"%s %s ",s[i].en,s[i].ch)==2)
 {
  i++;
 }
 num=i;
 if(i==0)
  printf("\n文件为空,请选择词典维护增加词条!");
 else
  printf("\n");
 fclose(fp);//关闭文件

}
//向文件中写入单词
void writefile()
{
 FILE *fp;
 int i=0;
 fp=fopen("E:\\data.txt","w");
 if(!fp)
 {
  printf("\n打开文件data.txt失败!");

 }
 for(i=0;ii;j--)
   if(strcmp(s[j-1].en,s[j].en)>0)
   {
    strcpy(temp,s[j-1].en);
    strcpy(s[j-1].en,s[j].en);
    strcpy(s[j].en,temp);
    strcpy(temp,s[j-1].ch);
    strcpy(s[j-1].ch,s[j].ch);
    strcpy(s[j].ch,temp);

   }
 }
} 
//定义记忆文件函数,用来记忆背诵错误的单词,将背诵过程中错误的单词写入Repeat文件
void readRepeatfile()
{
 FILE *fp;
 int i=0;
 fp=fopen("E:\\Repeat.txt","r");//增强记忆文件
 if(!fp)
 {
  printf("\n打开文件失败");
 }
 while(fscanf(fp,"%s %s",s[i].en,s[i].ch)==2)
 {
  i++;
 }
 num=i;
 if(i==0)//没有错题
  printf("\n没有错题");
 else
  printf("\n");
 fclose(fp);
}
//添加单词信息
void add()
{
 int i=num,j,flag=1;
 int a=0,k=0;
 printf("你想添加几个单词:");
 scanf("%d",&a);
 while(flag)
 { 
 for(k=0;k

四.经验归纳

这次的上机实验很有趣,但是也很高级,老师一开始就给了一个基本框架了,我只需要往里面增添,修改一些些就好了。

(1)首先,我把主界面的选择序号改了一点点,因为以我个人而言,我用不惯从0开始。也在里面根据我自己的理解,加了些注释。

(2)在search()函数中,因为一个相同的中文意思可能会有多个英语单词与之对应,原来的代码进行遍历之后就break了循环,自然只能查询到一个英文单词,我做的是遍历整个数组,同时用一个下标index = -1 进行标记,同时打印该单词的中英文,下标index的值改为当前数组的下标i ,继续遍历打印,同时标记,遍历完整个数组就可以打印多个拥有相同中文解释的不同的英文单词. 而index的作用就是,如果遍历完整个数组index仍等于-1,那么就说明没有查到该单词,可以进行查询为空的判断.

(3)在add()函数中,我添加了一个for循环,是录入单词变得更简洁了。

(4)我也加入了错题功能,在测试中,回答错误的单词会被加入在repeat.txt文件中,然后用随机数,抽取出来,再次回答,在这里,我改了一下下计分,在错题库的中出来重新回答的题目,答对不加分,答错还是会扣分,所以,还是最好有了没记住的单词 就赶快记下它哦。

(5)调试中发现我在search()中把s[i].en和s[i].ch给弄反了。

C语言是什么

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器。

上述内容就是使用C语言怎么实现单词小助手,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


网站题目:使用C语言怎么实现单词小助手
本文路径:http://6mz.cn/article/gpjjgh.html

其他资讯