本文题目要求:C语言实现单词小帮手,供大家参考,具体内容如下
一、题目分析
实验内容:单词小助手,要求完成以下任务:
1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。
2.将单词测试中的功能完善,可针对做错的单词重复记忆。
3.查询单词的功能添加英文词查询,中文查询的功能完善(考虑如何显示同样中文意义,不同的英文单词)
提高要求:
可将程序中的不足(如数据验证,排名功能)等根据自己的能力与理解完成。
实验目的:
1、明确结构化程序设计的基本结构。
2、通过对问题的分析,设计合理的结构化程序解决问题;
二、关键算法构造
三、程序实现
#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;i
{
fprintf(fp,"\n%s %s ",s[i].en,s[i].ch);
}
printf("\n");
fclose(fp);
}
//从背错单词文件中读取单词
void wrongwordfile()
{
FILE *fp;
int i=0;
fp=fopen("wrongword.txt","r");
if(!fp)
{
printf("\n打开文件wrongword.txt失败!");
}
while(fscanf(fp,"%s %s ",r[i].en,r[i].ch)==2)
{
i++;
}
num1=i;
if(0==i)
printf("\n背单词暂时无错误!你很优秀!");
else
printf