一、实验目的
- 明确结构化程序设计的基本结构
- 通过对问题的分析,设计合理的结构化程序解决问题;
二、实验内容
单词小助手,要求完成以下任务:
1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。
2.将单词测试中的功能完善,可针对做错的单词重复记忆
3.查询单词的功能添加英文词查询,中文查询的功能完善(考虑如何显示同样中文意义,不同的英文单词)
提高要求:可将程序中的不足(如数据验证,排名功能)等根据自己的能力与理解完成。
三、功能实现
1.词库维护
2.单词预览
3.单词背诵(中英)
4.单词背诵(英中)
5.查询成绩
6.帮助
7.增强记忆(中英)
8.增强记忆(英中)
9.退出系统
其中词库维护包括
1.增加单词
2.修改单词
3.删除单词
4.查询单词(已知中文)
5.查询单词(已知英文)
6.退出本菜单
四、流程图
五、程序实现
#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]; //单词数组
int num; //单词个数
int select=1;//select 为是否退出系统的标记
int d=0,c=0;
int in;
//帮助
void help()
{
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++;
}
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);
}
printf("\n");
fclose(fp);
}
//从增强记忆文件中读取单词
void readRemeberfile()
{
FILE *fp;
int i=0;
fp=fopen("Remeberdata.txt"