C语言实现单词小帮手

本文题目要求:C语言实现单词小帮手,供大家参考,具体内容如下

为新化等地区用户提供了全套网页设计制作服务,及新化网站建设行业解决方案。主营业务为成都做网站、成都网站设计、新化网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

一、题目分析

实验内容:单词小助手,要求完成以下任务:

1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。
2.将单词测试中的功能完善,可针对做错的单词重复记忆。
3.查询单词的功能添加英文词查询,中文查询的功能完善(考虑如何显示同样中文意义,不同的英文单词)

提高要求:

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

实验目的:

1、明确结构化程序设计的基本结构。
2、通过对问题的分析,设计合理的结构化程序解决问题;

二、关键算法构造

C语言实现单词小帮手
C语言实现单词小帮手
C语言实现单词小帮手
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],r[MAX_NUM]; //单词数组
int num;   //单词个数
int num1; //背错单词个数 
int select=1;//select 为是否退出系统的标记
int d=0,c=0;//定义两个数,用于计算成绩 
//帮助
void help()
{
 printf("\n本系统主要实现英语单词学习的功能。用户可对词典文件中的单词进行预览,增删改查。");
 printf("\n同时还可进行中英、英中测试。本系统还提供了测试成绩的显示功能。\n");
}

//从文件中读取单词的信息
void readfile()
{
 FILE *fp;
 int i=0;
 fp=fopen("data.txt","r");
 if(!fp)//如果没有data.txt这个文件,则返回打开失败 
 {
  printf("\n打开文件data.txt失败!");

 }
 while(fscanf(fp,"%s %s ",s[i].en,s[i].ch)==2)//当数据增加一时,数据的总数i增加一 
 {
  i++;
 }
 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)//如果没有data。txt这个文件,则返回打开失败 
 {
  printf("\n打开文件data.txt失败!");

 }
 for(i=0;ii;j--)//运用冒泡排序 
   if(strcmp(s[j-1].en,s[j].en)>0)//strcmp(s1,s2) 判断两个字符串s1和s2是否相同,相同返回true ,不同返回false 
   {
    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);

   }
 }
} 
//添加单词信息
void add()
{
 int i=num,j,flag=1;
 while(flag)
 {
  flag=0;
  printf("\n请输入单词的英文形式:");
  scanf("%s",s[i].en);
  for(j=0;j\n      (直至输入0~8的数字为止)\n");

 for(m=0;;m++)
 {
 n=0;
 input=scanf("%d",&item);
 while((t=getchar())!='\n'&& t!=EOF) n++;
 if(input==1 && n==0) break;
 }
 printf("\n");
 readfile();
 switch(item)
 {
  case 0:
    maintain();break;
  case 1:
    show();break; 
  case 2:
    zytest();break;
  case 3:
    yztest(); break;
  case 4:
    list();break;
  case 5:
    help();break;
  case 6:
    wrongwordfile();zyRetest();break;
  case 7:
   wrongwordfile();yzRetest();break; 
  case 8:
   select =0;break;
  default:
  printf("请在0-8之间选择\n");
  }
}
int main()
{ 
 while(select)
 {
  menu();
  system("pause");//暂停 
  system ("cls");//在每次执行完一次命令后刷新屏幕 
 }
 system("pause");
 return 0;
} 

四、调试、测试及运行结果

1)单词预览

C语言实现单词小帮手

2)添加单词

C语言实现单词小帮手

3)单词修改

C语言实现单词小帮手

4)单词查询

C语言实现单词小帮手

5)单词背诵英中和中英

C语言实现单词小帮手
C语言实现单词小帮手

6)成绩查询

C语言实现单词小帮手

7)错词复习中英和英中

C语言实现单词小帮手
C语言实现单词小帮手

五、经验总结

1、复习了C语言对于文件的相关操作,如文件的输入与输出;并且复习了结构体的相关操作,这次建立了一个结构体的数组对单词进行增删改查;

2、这是我第一次建立一个完整的项目,这次的作业使我对完整的程序有了新的认识;

3、学习到了strcmp函数的相关操作;

Ps:strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。

4、学习到了有关system函数的 使用,这次作业中使用了system(“cls”)来对每次使用编号后清空屏幕,对需要显示的数据使用system(“pause”)使其能够显示;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


本文名称:C语言实现单词小帮手
本文路径:http://myzitong.com/article/jscjdo.html