版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大学计算机学院毕业实习成绩鉴定表姓名班级学号实习时间学生实际实习内容:在本次实训中,我们学习到了很多的知识,包括shell编程、文件10、Linux网络编程、sqlite数据库等众多的知识点。最后以项目网络电子词典贯穿整 个知识点,把我们所学的内容都应用起来。达到了活学活用的效果。出勤情 况迟到次早退次旷工天病假天事假天全勤天实习单位鉴定意见:单位(盖章):年月日指导教师评定实习报告成绩:签名:年月日评阅教师评定实习成绩:签名:年月日计算机科学与技术学院2011级学生毕业实习报告专 业:班 级:姓 名:指导教师:实习单位:实习时间:网络电子词典项目编写时间:作者:版本: 亠、实验目的1.1引言
2、二十世界后半叶,伴随着社会的迅速发展与进步,以电子计算机为代表的现代科学技术获得了突飞猛进的发展并迅速和人们的日常生活结合在一起。计算机技术的发展和进步也使电子词典的诞生变得可能。虽然只有十来年的历史,电子 词典却已经迅速发展壮大,成为词典家族中具有生命力的一员。本系统是一个网络电子词典,主要功能是为用户提供一个能实现查询用户注 册,用户登陆和查询单词机查询历史记录等功能。本文从项目的角度进行了简单 的描述。该系统是基于Linux系统下里利用了网络的基本知识,及 sqlite 数据 库的相关知识。1.2背景任何一种词语,使用频率高了,就会成为公共词汇。英语作为一种国际通用 性语言,部分单词已成
3、为公共词汇,并且直接应用到汉语中来。因其表达简洁, 准确而受到人们青睐。但是,这些新引入或者比较专业词汇,对于较少关注新闻, 接触网络的群体而言,就会造成阅读困难。传统的纸质英汉词典因为更新周期久, 携带不便,价格相对昂贵而不能广泛应用。方便,高效,快捷的电子词典才能满 足现代人的需要。1.3参考资料名称作者出版社Unix网络编程W.Richard Steve ns Bill Fe nnerAn drew M.RudoffTCP/IP协议详解Gary.Wrigh W.Richard Steve ns机械工业出版社Unix高级环境编程William Richard Steve ns人民邮电出版社
4、二、系统概述我们的这套系统采用的是tcp协议的并发服务器设计,可以满足多用户同时 登录,用户登录后可以查询单词及历史记录,对于数据的存储我们采用的是sql数据库技术,查找快速,保密性好!具体功能能如下:1主界面(1) 用户登录(2) 用户注册(3) 用户退出在线辞典本者能版作仍= 2jk1 登录2 注册3 退由:用户只有登录成功垢才龊进入查单词界面2登陆成功后界面(1) 查询单词(2) 查询历史(3) 退出在銭辞典查询本能版作功:日上池:巧K1查询单词Z查询场史3退出1、拓扑结构如下客户端1客户端2并发服务器Sql数据库四、详细设计4.1消息类型设计宏名设计说明USER_REGISTER用户注
5、册USER_LOGIN用户登陆USER_WORD用户查询单词USER_SUCCESS操作成功UNAME_ERROR无此用户PASSWD_ERROR密码错误USER_FAILURE操作失败4.2结构体的设计注:_attribute_(_packed_表示取消结构体对齐 typedef structchar _username25; /用户名char _word25;/ 密码 _attribute_(_packed_)user_t;typedef structint typed;int size;unionchar _word100;/客户端填词,服务端填写单词解释#defi ne wordcon
6、ten t._word#defi ne user namecon te nt.ui nfo._username#defi ne passwordconten t. uin fo._passwd_attribute_(_packed_)mhead_t;#defi ne EXEC_SQL(db,sql,errmsg) do if(sqlite3_exec(db,sql,NULL,NULL,&merrmsg) 0)fprintf(stderr, “sqlite exec %serror : %sn”,sql,errmsg); exit(EXIT_FAILURE);while(0);4.3数据库设计表
7、名字段user_tableNAMEPASSWORDdict_tablewordexpla in4.4部分核心代码1)服务器端登陆处理函数int do_log in (i nt sockfd,sqlite3*pdb,char*_user name,char*_password) char *errmsg;char buf1024;char *dbresult;int nrow,n colu mn;char sql1024 = 0;mhead_t *head = (mhead_t *)buf;/const char*sql=select * from user_table where NAME=%
8、s and PASSWORD=%s;spri ntf(sql,select * from user_table where NAME=%s and PASSWORD=%s;,_username,_password);if(sqlite3_get_table(pdb,sql,&dbresult,&n row,&n colum n,&errmsg)!=SQLITE_O K)fprin tf(stderr,sqlite3 get table error : %s.n,errmsg); exit(EXIT_FAILURE);if(nrowtype = USER_FAILURE; if(send(soc
9、kfd,buf,sizeof(mhead_t),0) type = USER_LOGIN; if(send(sockfd,buf,sizeof(mhead_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 sql10
10、24=0;mhead_t *head=(mhead_t*)danci;int i = 0,j = 0;sprintf(sql,select* 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
11、 = 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( 没有查处此单词 );elseif(send(sockfd,danci,sizeof(mhead_t),0)0)perror(Fail to send);exit(EXIT_FAILURE);sqlite3_free_table(dbr
12、esult);return 0;绑定套接字,连接 IP 端口int init_tcp(char *ip,char *port)int sockfd;struct sockaddr_in server_addr;if(sockfd = socket(AF_INET,SOCK_STREAM,0) 0) perror(Fail to socket);exit(EXIT_FAILURE);bzero(&server_addr,sizeof(server_addr);server_addr.sin_family = AF_INET;server_addr.sin_port = = inet_addr(i
13、p);if(bind(sockfd,(struct sockaddr *)&server_addr,sizeof(server_addr) type = USER_LOGIN;head-size = sizeof(mhead_t);printf(Input username : );fgets(head-username,sizeof(head-username),stdin); head-usernamestrlen(head-username) - 1 = 0;printf(Input password : ); fgets(head-password,sizeof(head-passwo
14、rd),stdin); head-passwordstrlen(head-password) - 1 = 0; if(send(sockfd,buf,sizeof(mhead_t),0) 0)perror(Fail to send);exit(EXIT_FAILURE);bzero(&buf,sizeof(buf);while(1)n = recv(sockfd,buf + count,sizeof(mhead_t) - count,0);if(n type = USER_LOGIN)printf(n 恭喜您,登陆成功 !n);return 0;elseprintf(n 很遗憾,登录失败,请重
15、新登陆 n);/printf(n);return -1;return 0;单词查询函数int do_query(int sockfd) int n=0,count=0;char buf1024;/ char yisi1024;Jint i = 0;printf(n 请输入你要查询的单词 );mhead_t *head=(mhead_t *)buf;fp=fopen(log.txt,a+);if(fp = NULL)fprintf(stderr,Fail to open : %sn,strerror(errno);exit(EXIT_FAILURE);int line=get_line(fp);
16、time_t t;可能需要加头文件struct tm *ptm;t=time(NULL);ptm=localtime(&t);/printf(%sn,head-word);/fprintf(fp,%d,%sn,+line,head-word); head-type=USER_WORD; head-size=sizeof(mhead_t);fgets(head-word,sizeof(head-word),stdin);head-wordstrlen(head-word)-1=0; fprintf(fp,%d ,%s: ,+line,head-word); if(send(sockfd,buf,
17、sizeof(mhead_t),0)0) perror(Fail to send); exit(EXIT_FAILURE);bzero(buf,sizeof(buf); n=recv(sockfd,buf,sizeof(mhead_t),0);if(nword,ptm-tm_year+1900,ptm-tm_ mon,ptm-tm_mday,ptm-tm_hour,ptm-tm_min,ptm-tm_sec);fflush(fp);fclose(fp);/printf(len : %dn,strlen(buf);printf( 单词的意思是 :);printf(%sn,head-word);d
18、o_word(sockfd);return 0;记录查询函数int do_history(int sockfd)int n=0,count=0;char jilu1024;Jmhead_t *head=(mhead_t*)jilu;head-type=USER_WORD;head-type=sizeof(mhead_t);head-wordstrlen(head-word)-1=0;printf( 历史记录为: n);fp=fopen(log.txt,a+);if(fp=NULL)perror(Fail to read);exit(EXIT_FAILURE);/ system(clear);w
19、hile(fgets(jilu,sizeof(jilu),fp)!=NULL)printf(%sn,jilu);fclose(fp);/printf(%sn,head-word); do_word(sockfd);return 0;通过这次实习,我对计算机专业在行业 实践 中面临问题及解决办法有了一个较为全面的认识。巩固专 业知识的同时也增加了 责任感,实习的日子里也加深了同学 友谊 ,锻炼了团队精神。大学生活让我对计算 机理论知识有了一定的了解,但真正操作起来就没有那么容易。纸上得来终觉浅,绝知此事要躬行。经过 过去三周的实习,我对自己有了新的认识及前进的方向。在信息时代,学习是不断地汲取新
20、信息,获得事业进步的动力。现在通过实习总感觉自己学的不够, 要用到知识时总感觉脑袋是空白的。 为了能更好的适应工作, 只能自己去努力学习。尽量空闲时间多看书、 多实践,希望能弥补不足,但也不能失去自信。对给自己点信心,多给自己点赞赏,多给自己鼓鼓劲。相 信总会走出一条宽敞大道的。实习中,基于 Linux 的网络编程,老师将 Linux 基本命令交给我们,让我们熟悉 Linux 下的操作。 初期,对与 Windows 下不同,大量命令式操作,让我很不适应,但熟悉后,感觉很有意思。后来到进程、 消息等, 顿时觉得对系统的运行有了更深的了解。 接着, 学习关于通过本次试验使我了解了在linux 环境
21、下,等服务器的构建,以及它们的工作原理。学会了如何通过命令方式对,等服务器进行配置,对一些配 置文 件得到了 了解,例如 : etc/dns的配置文件 named.conf , www 服务 器的配置文件usr/local/apache2/conf/httpd.conf , ftp 的 配 置 文 件 etc/vs. , dhcp 的 配 置 文 件 etc/dhcpd.conf. 。 2. 在配置 dns 服务器时老是实现不了,检查 named.conf 文件时并未查出语法 方面的错误, 检查 var/ ,文件时也没发现语法或是配置错误 , 在 httpd.conf文件中也进行了 serve
22、rname 的配置。怎么就不行呢?百思不得其解,最后百度了一下,原来是 resolv.conf 文件中没有配 servername ,再加上 servername 后就可以使用了。使我意识到在配命 令的时候一定要注意先后顺序以及细节问题,只有这样开有可能保证万无一失。3. Apache 的配置文件在阅读的时候需要细心,里面有许多东西虽然这次试验用不 到,但我们亦应该了解它的含义以及它的用处。4. 在配置 dhcp 服务器是,用另一台电脑查看 dhcp 服务器配置是否正确时,输入 ipconfig 时,电脑的网卡并没有使用 linux 下的 dhcp 服务器,检查配置文件没有错误,最后发 现是虚
23、拟机的网卡没有连接,连接好网卡后在另一台电脑就可以访问到 linux 的 dhcp 服务器了。实习,是开端也是结束。在书本上学过很多理论,但从未付诸实践过,也许等到真正运用时,才会体 会到难度有多大。在今后的工作和生活中,自己需要更加努力的奋斗下去。实习也让我了解到了自己的不 足,我会继续努力,完善自我。对于学校的精心安排和指导老师的用心辅导非常感谢 。按照老师的安排,我制定了相应的实习计划。注重在实习阶段对所学知识的巩固和提高,以期达到根据理论知识,指导日常 的工作实践的目的。收到了较好的效果。在做实验前 , 我以为不会难做 , 就像以前做物理实验一样 , 做完实验 , 然后两下子就将实验报
24、告做完 . 直到做完测试实验时 , 我才知道其实并不容易做 , 但学到的知识与难度成正比 , 使我受益匪浅 .在做实验前 , 一定要将课本上的知识吃透 , 因为这是做实验的基础 , 否则 , 在老师讲解时就会听不懂 , 这将使你在做实验时的难度加大 , 浪费做实验的宝贵时间 . 比如做光伏的实验 , 你要清楚光伏的各种接法 , 如果你不清楚 , 在做实验时才去摸索 , 这将使你极大地浪费时间 , 使你事倍功半 . 做实验时 , 一定要亲力亲为 务必要将每个步骤 , 每个细节弄清楚 ,弄明白,实验后,还要复习,思考,这样,你的印象才深刻 , 记得才牢固 否则,过后不久你就会忘得一干二净 ,这还不如不做 .做实验时 ,老师还会根据自己的亲身体会 ,将一些课本 上没有的知识教给我们 , 拓宽我们的眼界 , 使我们认识到这门课程在生活中的应用是那么的广泛 .通过这次测试技术的实验 ,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024设备购销合同格式
- 2024沥青路面施工合同范本
- 2024工业品买卖合同范本(详细版)
- 工矿产品采购简单合同(18篇)
- 北京市二手房购房合同范本
- 牙体牙髓病学英文
- 实际出口合同范本
- 工艺管道承包合同范本
- 中国二甲基二硫行业研究报告:市场规模、供需态势、发展前景预测
- 热水保养合同范本
- 我与班集体共成长主题班会
- 注册资本金代缴协议书范本
- 机加车间工作思路
- 2024年大学英语四六级考试大纲词汇
- 国家自然科学基金项目申报建议
- 人教版八年级数学上册第15章《分式》全部教案(共12课时)
- 2024-2030年中国抗菌肽行业市场发展分析及发展趋势与投资前景研究报告
- 人教精通版(2024)三年级上册英语全册教学设计
- 三高共管六病同防医防融合管理制度
- 人教新课标一年级数学上册 5.5 《加减混合》说课稿
- DL-T 438-2023 火力发电厂金属技术监督规程
评论
0/150
提交评论