网络电子词典实习报告

上传人:F****n 文档编号:100121386 上传时间:2019-09-22 格式:DOC 页数:14 大小:105KB
返回 下载 相关 举报
网络电子词典实习报告_第1页
第1页 / 共14页
网络电子词典实习报告_第2页
第2页 / 共14页
网络电子词典实习报告_第3页
第3页 / 共14页
网络电子词典实习报告_第4页
第4页 / 共14页
网络电子词典实习报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《网络电子词典实习报告》由会员分享,可在线阅读,更多相关《网络电子词典实习报告(14页珍藏版)》请在金锄头文库上搜索。

1、大学计算机学院毕业实习成绩鉴定表姓 名班级学号实习时间学生实际实习内容:在本次实训中,我们学习到了很多的知识,包括shell编程、文件IO、Linux网络编程、sqlite数据库等众多的知识点。最后以项目网络电子词典贯穿整个知识点,把我们所学的内容都应用起来。达到了活学活用的效果。出勤情况迟到次早退次旷工天病假天事假天全勤天实习单位鉴定意见:单位(盖章): 年 月 日指导教师评定实习报告成绩:签名: 年 月 日评阅教师评定实习成绩: 签名: 年 月 日计算机科学与技术学院2011级学生毕业实习报告专 业: 班 级: 姓 名: 指导教师: 实习单位: 实习时间: 网络电子词典项目编写时间:作者:

2、版本:v-1.0.0一、实验目的1.1引言二十世界后半叶,伴随着社会的迅速发展与进步,以电子计算机为代表的现代科学技术获得了突飞猛进的发展并迅速和人们的日常生活结合在一起。计算机技术的发展和进步也使电子词典的诞生变得可能。虽然只有十来年的历史,电子词典却已经迅速发展壮大,成为词典家族中具有生命力的一员。本系统是一个网络电子词典,主要功能是为用户提供一个能实现查询用户注册,用户登陆和查询单词机查询历史记录等功能。本文从项目的角度进行了简单的描述。该系统是基于Linux系统下里利用了网络的基本知识,及sqlite数据库的相关知识。1.2背景 任何一种词语,使用频率高了,就会成为公共词汇。英语作为一

3、种国际通用性语言,部分单词已成为公共词汇,并且直接应用到汉语中来。因其表达简洁,准确而受到人们青睐。但是,这些新引入或者比较专业词汇,对于较少关注新闻,接触网络的群体而言,就会造成阅读困难。传统的纸质英汉词典因为更新周期久,携带不便,价格相对昂贵而不能广泛应用。方便,高效,快捷的电子词典才能满足现代人的需要。1.3参考资料名称作者出版社Unix网络编程W.Richard Stevens Bill FennerAndrew M.RudoffTCP/IP协议详解Gary.WrighW.Richard Stevens机械工业出版社Unix高级环境编程William Richard Stevens人民

4、邮电出版社二、系统概述我们的这套系统采用的是tcp协议的并发服务器设计,可以满足多用户同时登录,用户登录后可以查询单词及历史记录,对于数据的存储我们采用的是sql数据库技术,查找快速,保密性好!具体功能能如下:主界面 (1) 用户登录 (2) 用户注册 (3) 用户退出登陆成功后界面 (1) 查询单词 (2) 查询历史 (3) 退出三、拓扑结构如下客户端1 并发服务器客户端2Sql数据库4、 详细设计4.1消息类型设计宏名设计说明USER_REGISTER用户注册USER_LOGIN用户登陆USER_WORD用户查询单词USER_SUCCESS操作成功UNAME_ERROR无此用户PASSWD

5、_ERROR密码错误USER_FAILURE操作失败4.2结构体的设计注:_attribute_(_packed_)表示取消结构体对齐typedef structchar _username25; /用户名char _word25; /密码 _attribute_(_packed_)user_t; typedef structint typed;int size;unionuser_t uinfo; /用户信息char _word100;/客户端填词,服务端填写单词解释#define word content._word#define username content.uinfo._usern

6、ame#define password content.uinfo._passwd_attribute_(_packed_)mhead_t;#define EXEC_SQL(db,sql,errmsg) doif(sqlite3_exec(db,sql,NULL,NULL,&merrmsg) 0)fprintf(stderr,“sqlite exec %serror : %sn”,sql,errmsg);exit(EXIT_FAILURE);while(0);4.3 数据库设计表名字段user_tableNAMEPASSWORDdict_tablewordexplain4.4部分核心代码1)服

7、务器端登陆处理函数int do_login(int sockfd,sqlite3*pdb,char*_username,char*_password)char *errmsg;char buf1024;char *dbresult;int nrow,ncolumn;char sql1024 = 0;mhead_t *head = (mhead_t *)buf; /const char*sql=select * from user_table where NAME=%s and PASSWORD=%s;sprintf(sql,select * from user_table where NAME

8、=%s and PASSWORD=%s;,_username,_password);if(sqlite3_get_table(pdb,sql,&dbresult,&nrow,&ncolumn,&errmsg)!=SQLITE_OK)fprintf(stderr,sqlite3 get table error : %s.n,errmsg);exit(EXIT_FAILURE);if(nrowtype = USER_FAILURE;if(send(sockfd,buf,sizeof(mhead_t),0) type = USER_LOGIN;if(send(sockfd,buf,sizeof(mh

9、ead_t),0) 0)perror(Fail to send);exit(EXIT_FAILURE); /printf(?n);sqlite3_free_table(dbresult);return 0;单词查询函数int do_query(int sockfd,sqlite3* pdb,char*_word) char*errmsg; char danci1024; char*dbresult; int nrow,ncolumn; char sql1024=0; mhead_t *head=(mhead_t*)danci; int i = 0,j = 0; sprintf(sql,sele

10、ct* from dict_table where word=%s;,_word); if(sqlite3_get_table(pdb,sql,&dbresult,&nrow,&ncolumn,&errmsg)!=SQLITE_OK) fprintf(stderr,sqlite3 get table error:%sn,errmsg); exit(EXIT_FAILURE); int index = ncolumn; for(i = 0;i nrow;i+) for(j = 0;j word,%s,dbresult3); printf(result : %sn,head-word);if(nrow = 0) bzero(sql,sizeof(sql); if(send(sockfd,danci,sizeof(mhead_t),0)0) perror(Fail to send); exit(EXIT_FAILURE); printf(没有查处此

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号