程序使用结构链表实现。
由于我写的函数已经自动识别中英文输入,中英文翻译功能其实可以合并成一个选项(3,4选项),但你题目既然要求2项目,所以没合并。
根据题目,创建字典是覆盖性,既每次创建输入,都会覆盖掉原文件,但考虑后期扩展,我的函数writeFile可以不覆盖,在原文件后新增,具体看备注。
菜单显示是利用递归函数,如果你想新增功能,参照我选项改。
(另外所有函数异常,我都是采取抛出,没有处理,你想处理根据我的函数返回值写处理吧!)
#include
#include
#include
#define FPATH "C:\\keyWord.txt"
typedef struct keyWord
{
char kwCN[20];// 中文名
char kwEN[10];// 英文名
struct keyWord *next;
}KW;
void freeKWS(KW *kwsHead);//释放链表内存
int createDictionary(char *path);//创建字典。成功返回1 失败返回0
int writeFile(char *path,KW *kwsHead,int flag);//写入文件。成功返回1,失败返回0。flag:0新增;1修改或删除
KW *readFile(char *path);//读取文件。成功返回头节点,失败返回NULL。
int isCN(char *strCN);//判断字符串是否是全中文,是返回1,否返回0
void showKWS(char *path,char*keyCN,char *keyEN);//参数全部传NULL打印整个链表。keyCN!=NULL打印对应英文,keyZN!=NULL打印对应中文
void showMenu(int n);//递归函数打印菜单,第一次调用传值-1
void selectByKey(char *keyN);//输入中文输出英文,输入英文输出中,自动识别中英文关键字
int main()
{
//createDictionary("C:\\keyWord.txt");
//showKWS(NULL,NULL);
showMenu(-1);
}
void showMenu(int n)//打印菜单
{
ch