在线词典是传统词典与现代信息网络技术的结合,它以快速性、媒体表现形式多样性、交互性功能强大等特点,突破了传统词典只能写在纸上的固有空间,越来越受到人们的青睐,而且爆炸式的信息会让更多人利用查询软件来查找自己所需要的信息,可以预见,作为一种适应时代发展需要的工具,在线词典的发展潜力不可估量
2 总体设计方案
在线词典的实现主要分为客户端和服务端,客户端主要是给用户来使用的,用户在客户端可以进行用户的注册、登录、查询单词、查询历史记录、删除历史记录、注销用户、退出登录等操作;服务器端提供了各种资源,将用户的注册和查询信息都存到数据库当中,同时提供所有单词的资源单词库,这个单词库是可以添加和删除的,方便添加新词,系统框图如下:
当服务器启动后,再启动客户端,这时会弹出初始命令页面,里面有一系列命令的对话框,如果用户只是想查一下单词,可以选择直接查询的命令,客户端就会将命令发到服务器上面,服务器端接收到客户端的命令后,就会到资源单词库中去查找,如果有的话,将结果返回给用户,否则返回“Can’t find the word !”;用户还可以选择注册命令选项后,输入用户名和密码,为了规范化,我们可以选择如果名称小于5个字符的话,我们就提示用户“name is too short !”;注册成功后进入登录选项,登录后,就会进入功能页面2,此时处于用户登录模式,用户的操作都会被记录下来,用户在此界面可以选择查词、看历史记录、删除记录、退出登录、注消用户和退出等,客户端通过命令不断的将请求发给服务器,服务器则查找客户端需求的信息并将查询结果返回给客户端。
3 平台的搭建
整个软件的实现要使用Linux操作系统,所以我们选择安装VMware Workstation虚拟机,这样我们就可以在windows系统下同时操作Linux系统,使用unbuntu10.04版本,因为我们要对数据库进行操作,所以我们得在终端下安装sqlites3数据库,然后我们就可以在Vim编辑器里面进行各种程序代码的编写
4 各子功能模块的实现
4.1客户端的设计
客户端模块继续采取分块的思想,主要实现功能界面的生成,同时需要分别针对各个功能函数编写相应的程序。
4.1.1功能界面的实现
当用户没注册时,用户只能查询单词,查询记录等不会被保存,当用户注册后,服务器将用户的注册信息和查询信息保存起来,并且在需要的时候可以随时读取。客户端模块的程序分为直接查询单词块、注册块、登录块、登录后查词块、查询历史记录块、删除历史记录块、注消用户块、退出块等,启动客户端时,主动进入初始命令页面1,包括:直接查词、注册块、登录快和退出块,若登录成功后,就会进入命令页面2,包括:登录后查词块、查询历史记录块、删除历史记录块、退出登录块、注消用户块和和退出块。
4.1.2各函数模块功能的实现
客户端负责接收用户输入的命令,然后将命令发给服务器,服务器接收到命令并处理好后,再将结果发回客户端,客户端接收后将结果显示在客户端界面上。
//未登录查询单词
int f_check_word(int sockfd, MSG *msg) {
msg->type = F;
while(getchar() != '\n')
continue;
while ( 1 ){
printf("input (# to quit) > ");
fgets(msg->data, N, stdin);
if (msg->data[0] == '\n') //判断用户是否输入要查询的单词
continue;
if (strncmp(msg->data, "#", 1) == 0) //输入#则退出 Linux下在线词典的实现(2):http://www.751com.cn/jisuanji/lunwen_56755.html