首页 > 技术文章 > 关于简易单词本的实现

unbelievablecj 2017-01-13 14:07 原文

在上一篇博文中我提到了单词本,这里做一个简单介绍。单词本的功能是我在用过百词斩后,心想能不能用C来实现一个简易的版本,于是就用C的文件操作写了一个。

按照我的设想,单词本可以理解为一个数据库,因此基本的增删查改是首要的功能,实际上我目前也只实现了这四个功能。

增加单词的功能,原本我是想存在一个文件中的,但因对文件内的读取比较麻烦,因此我采取的方式是新建一个文件来存储单个的单词,这个方法是我在看C的文件操作一章中关于FILE的"w"想到的。在书中讲到,在用 f=fopen("filename","w") 打开文件来输出时,若文件不存在则新建一个文件,因此可以用此命令来新建一个以单词为名的文件,如 f=fopen("naive","w") 然后在文件内存储中文,具体的实现细节可以参看Github的method.h内的add函数。

删除就比较好实现了,通过百度,可以查到C的文件操作中有一个 remove 函数,通过 remove("filename") 来删除当前文件夹内的文件。具体可参看method.h内的del函数。

查的功能比较麻烦,查单个单词的功能可以通过fopen很容易就实现了,但如果列出所有的单词就比较难实现,因为我是将单词存储为一个文件,如果是存储在一个文件内的话就可以直接打印输出。不过麻烦就是要被解决的,我想到C可以执行Windows的命令,那么就可以联想到Windows下的dir命令,事实上,作为一个操作系统,列出文件夹内的文件是一个非常基本的功能,然后据此可以将内容输出到一个取名为list的文件,再读取list内的内容进行处理就可以输出所有的单词了,输出所有的单词的功能是,method.h内的list函数。

改的功能我实现的比较的粗暴,通过删除再添加一个新的文件来实现改的功能。

最后

增删查改是做一个单词本最基本的功能,我还准备加入像百词斩一样的背单词功能,当然这是另一个大的工程了,恐怕短期内是做不完了。

当然各位同学要是有兴趣完善的话可以pull request

推荐阅读