毕业论文-小型聊天系统--用户信息管理模块设计.doc

上传人:韩长文 文档编号:3941633 上传时间:2019-10-10 格式:DOC 页数:24 大小:539.50KB
返回 下载 相关 举报
毕业论文-小型聊天系统--用户信息管理模块设计.doc_第1页
第1页 / 共24页
毕业论文-小型聊天系统--用户信息管理模块设计.doc_第2页
第2页 / 共24页
毕业论文-小型聊天系统--用户信息管理模块设计.doc_第3页
第3页 / 共24页
毕业论文-小型聊天系统--用户信息管理模块设计.doc_第4页
第4页 / 共24页
毕业论文-小型聊天系统--用户信息管理模块设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《毕业论文-小型聊天系统--用户信息管理模块设计.doc》由会员分享,可在线阅读,更多相关《毕业论文-小型聊天系统--用户信息管理模块设计.doc(24页珍藏版)》请在三一文库上搜索。

1、淮北师范大学2012届学士学位论文小型聊天系统 用户信息管理模块设计学 院 计算机科学与技术 专 业 计算机科学与技术 研 究 方 向 软件开发 学 生 姓 名 学 号 指导教师姓名 指导教师职称 副 教 授 2012年4月20日- 17 -小型聊天系统 用户信息管理模块设计计算机科学与技术2012届毕业生指导教师摘 要:随着计算机科学和Internet的飞速发展, 网上聊天已成为人们相互交流的一种方式, 与E-mail、电话相比, 聊天服务更具有实时性和有效性。本论文提出一个运行于.NET平台上的局域网聊天软件的解决方案。该聊天软件包括服务器端和客户端两个模块。客户端之间通过服务端进行通信。

2、服务端模块主要实现了服务器的配置、数据的传递、用户注册、部门的添加与删除、系统日志的查看等功能。该聊天系统软件采用的是异步套接字的阻塞模式。该软件能够帮助企业在局域网内搭建己的聊天平台,避免企业内部员工使用类似QQ等互联网聊天软件泄露企业内部信息。本文首先对聊天工具的发展现状、并对其进行可行性分析,对开发环境和开发语言进行了简单介绍,并对该聊天系统进行了进一步的分析和功能模块的划分,设计出了小型聊天软件的开发方案,主要功能包括服务端设计、客户端设计、用户信息管理模块设计、数据库设计等。同时介绍了小型聊天软件的部分功能,即服务端设计、用户信息管理设计、数据库设计等模块。通过小组的共同努力,研发出

3、的一个功能相对完善的局域网的聊天软件,达到预期目标,基本满足要求。通过运行、调试显示出该局域网聊天软件运行稳定、可靠,具有较高的使用价值。关键字:局域网;聊天系统;异步嵌套字LAN-based communication system design chat User Information Management Module DesignLi QiangSchool of Computer Science & Technology 2012 Graduatesof Huaibei Normal UniversitySupervised by ZHANG PENGFEI, Associate

4、ProfessorAbstract:With the high-speed development of the computer science and the Internet, chatting online has been an important method in peoples communication. Comparing with E-mail and telephone, chatting service is more real-time and effective.This paper presents a solution to a chatting softwa

5、re operated under the . NET platform. The chatting software includes two modules: the server and the client. Clients communicate through server-side. The server module achieves the functions like the configuration of the server, data transfer, user registration, the adding and deletion of department

6、s, check of systematic logs. The chatting system software uses the mode of Asynchronous Socket Blocking. The software can help companies build their own chatting platform, avoid the staff giving away the internal information of the company by using other softwares like QQ. This paper firstly introdu

7、ces the development status and feasibility analysis of the chatting tool, then further analyses the chatting system, divides the function modes, then designs the development program of the small-sized chatting software, including the main functions of server-side design, client design, management an

8、d design of users information, database design, etc. Also introduces partial functions, i.e. server-side design, management and design of users information, database design and other modules. Through the joint efforts of the group, this chatting system is a LAN chatting software which owns certain c

9、omplete functions , achieves the expected objects, basically meets the requirements. Through the operation and test, it shows that the LAN chatting software operates stably and reliably, also owns relatively high using values.Key words:LAN; Chatting; Asynchronous Socket目 录1 引言11.1 现状分析11.2 可行性分析12 关

10、键技术22.1 .NET平台22.2 Socket通信22.3 XML技术22.2 数据库技术23 系统设计与分析33.1 系统主要功能33.2 总体设计43.2.1 用户信息管理43.2.2 服务器端53.3 数据库的设计53.3.1 数据库设计53.3.2 Access数据库74 详细设计84.1 用户信息管理84.2 服务端设计与实现114.3 建立连接设计124.4 查看系统日志135 系统测试155.1 软件测试的方法155.2 软件测试15结论16参考文献17致谢181 引言1.1 现状分析小型聊天软件系统是基于局域网的即时通信软件。即在没有接入互联网,用户也可以实时的传送信息。即

11、时通信服务的特点是能让用户可以选择性地接受或拒绝某人的信息,也可以同一时间与多人进行交流。在当前中国无线互联网呈现出爆发式的增长趋势,移动互联网渐成趋势,即时通信技术已经从PC机向手机媒体渗透 。一直以来,空间上的距离都是人们彼此相互交流的最大障碍。缩短彼此之间空间上的距离,就成了人们迫切的愿望。随着计算机网络技术的发展能够满足我们实时交换消息的即时通信技术应运而生,它是电子邮件发明以来迅速崛起的在线通讯方式,为网络用户提供一个实时交流聊天的平台。然而由于在线聊天系统在传输的过程中有一定的几率泄露公司的核心机密,继而需要只能在本地局域网中使用的聊天软件。在企业市场中,即时通信的普遍化应用对企业

12、重视的统一通信和在线协同已经产生重要的影响,因此即时通信技术的应用将越来越广泛,越来越普遍。1.2 可行性分析即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。如今的即时通信服务已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。当前即时通信技术和其他技术的关系越来越密切,同时,随着手机互联网的快速发展,即时通信的各个功能逐渐从PC渗透到手机媒体。2 关键技术简介2.1 .NET平台C#是微软公司为.NET1平台量身定做的编程语言,它是一种现代程序设计语言,使程序员能够快速地在.NET平台上开发种类丰富的应用程序,它继

13、承了C+和Java的语法,去掉了C+中的许多复杂和容易引起问题的东西(比如指针),比起Java。它又多了一些简洁优美的特性。可以说C#是最适合开发.NET应用系统的程序语言。基于此原因,本系统采用C#进行编程开发。2.2 Socket通信本系统基本上采用基于Sockets2的C/S通信系统。在服务器和客户机之间通过TCP/IP协议通信。为了与客户机通信,客户端与服务端需要进行三个步骤,即首先服务端监听并且分配一个监听端口用于监测是否有服务请求,第二步客户端向服务端发送建立连接的请求,第三步服务端响应并且客户端确认连接。2.3 XML技术在.NET中提供了一个Dataset类,通过该类的方法能够

14、实现将关系型数据写入一个XML文档3,.Net中的Dataset类能够绑定关系型数据库的数据表,通过调用DataSet类的WriteXml方法,可以将数据库中的表写入到一个XML文档中进行保存,并由服务器通过传送XML文件至客户端达到用户与数据库相互交互的目的。2.4 数据库技术Microsoft Access Basic4提供了一个丰富的开发环境。这个开发环境具有足够的灵活性和对Microsoft Windows应用程序接口的控制,同时免遭用高级或低级语言开发环境开发时所碰到的各种麻烦。Access数据库的优点:存储方式简单,易于维护管理;面向对象;支持广泛,易于扩展,弹性较大。3 系统设计

15、与分析3.1 系统主要功能小型聊天软件系统的总目标是用户依靠局域网络服务器提供的服务实现实时聊天,方便人与人之间相互交流。图3-1是系统的总体框架图。小型的聊天系统服务器端客户端开启服务器关闭服务器用户信息管理用户登录在线聊天查看好友资料创建会议室系统日志图3-1 总体框架图服务器端5:包括开启服务、关闭服务、用户信息管理的功能。同时服务端能够实时显示在线用户的用户名、IP地址以及服务器端口。在用户登录或者退出、聊天等活动时会在服务端系统运行日志中显示。在服务端注册的流程图如下:注册成功输入用户注册信息开始验证数据合法性注册失败数据合法数据不合法图3-2 用户注册流程图3.2 总体设计3.2.

16、1 用户信息管理用户信息管理6包括用户注册,查看好友资料,用户信息更改,用户组的添加和删除。1、用户注册:用户可以在服务端注册,不允许用户随便注册,用户注册时可以填入自己的基本信息以及所在的部门等。2、查看好友资料:在聊天的主界面上右击好友选择查看好友信息,可以看到好友的基本信息。3、用户信息更改:只允许用户在登陆后才可以更改自己的信息。4、用户组的添加和删除:这个功能不允许所有的用户更改,只允许管理员更改。3.2.2 服务器端小型聊天软件系统主要分为两个功能模块:服务器端和客户端。服务器端的作用是从数据库中获取用户信息并向客户端7服务,管理员可以开启、关闭服务器,并对服务器进行设置。服务器端

17、连接数据库生成用户好友列表在线用户信息接受与发送在线好友记录操作登录验证开启服务关闭服务成员管理查看好友修改信息添加好友数据处理添加会议更新分组删除分组图3-3 服务器模块图服务器开启服务后,随时侦听指定端口是否有客户端发送过来的信息,根据相应的信息与数据库交互进行数据的处理。3.3 数据库的设计3.3.1数据库设计本次设计使用的是Access数据库9,Access数据库是Microsoft开发的一种面向对象的数据库工具。1、E-R图分组用户部门用户名密码性别头像年龄邮箱电话部门包含nm图3-4 E-R图2、建立数据库打开Access选择新建来建立表或者报表等。图3-5 新建数据库3、系统主要

18、涉及到两张表group和users。其中表group的主键为ID,表users的主键为user_name。表中的关系如下。表3-1 users表的设计表3-2 group表的设计3.3.2 Access数据库1、Access数据库10包括2张表:表3-3 用户数据库表2、 好友分组信息表表3-4 分组表4 详细设计4.1 用户信息管理1、用户注册和部门添加用户只能在客户端注册,这样就避免了用户不断的注册,而又不知道该用户的真实信息,方便管理。用户想添加分组或注册账号则需在服务端“开启服务”“用户信息管理”“成员管理”。关键代码: if (str_name != & str_pwd != & s

19、tr_pwd = tbx_repwd.Text)/判断用户名、密码是否为空和两次输入的密码是否相同 usersTableAdapter.Insert(str_name, str_pwd, int_faceId, str_sex, int_age, int_group, str_tel, str_email); usersTableAdapter.Update(databaseDataSet.users);/若用户名、密码不为为空并且两次输入的密码相同,则注册成功更新到数据库中 MessageBox.Show(注册成功); foreach (TreeNode node in treeView1.

20、Nodes)/用foreach遍布节点为新用户分配节点 if (node.Level = 0 & node.Text = comboBox1.Text) TreeNode childnode = new TreeNode(str_name); node.Nodes.Add(childnode); /通过添加节点来添加分组TreeNode newnode = new TreeNode(tbx_group.Text); treeView1.Nodes.Add(newnode) 用户注册界面如图4-1所示:图4-1 用户添加分组或注册2、更改分组更改分组即更改公司相应的部门,这个功能只能在客户端由管

21、理员来实现。管理员可以更改分组的名称“开启服务”“用户信息管理”“成员管理”。关键代码:/更新数据库中的内容 updata_gruop(tbx_group_old.Text)界面如图4-2所示:图4-2 用户更改组名3、查看好友资料 关键代码:/向客户端回应发送的查询好友请求!Info _Info = iq.SelectSingleElement(typeof(Info) as Info; DataTable dt = usersTableAdapter.selectUser_byname(_Info.Name); DataTable dt_group = groupTableAdapter.

22、select_group(); iq.SwitchDirection(); iq.Type = IqType.result;图4-3 查看好友资料4、修改资料 关键代码:/向客户端回应发送的修改个人信息请求! DatabaseDataSet databaseDataSet = new DatabaseDataSet(); usersTableAdapter.Update_userInfo(setInfo.Pwd, setInfo.FaceId, setInfo.Sex, setInfo.Age, setInfo.Tel, setInfo.Email, setInfo.Name); usersT

23、ableAdapter.Update(databaseDataSet.users);图4-4 修改资料界面4.2 服务端设计与实现1、 服务端主界面图4-5 服务端主界面2、 开启服务(StartServer) 开启服务端功能是聊天系统能否建立连接的第一步,在用户打开服务端点击开启服务按钮时服务端开启监听并分配一个端口来监听。关键代码: ThreadStart myThreadDelegate = new ThreadStart(Listen); myThread = new Thread(myThreadDelegate);/实例化一个类 myThread.Start(); /开始监听进程

24、toolStripStatusLabel1.Text = 服务开启,监听端口+localEndPoint.Port;3、 停止服务(StopServer)停止服务时用户将无法联机,所有的用户将出现连接服务器失败。停止一切活动监听与数据传输。关键代码: try listener.Close();/关闭监听 myThread.Abort();/线程停止 myThread = null; catch (Exception ex) MessageBox.Show(ex.Message); finally Application.Exit(); /判断关闭进程时是否可以关闭,如可以执行try语句,否则执

25、行Catch语句4.3 建立连接设计1、登录 判断用户在客户端登陆时能否与服务器进行连接。准备输入账号和密码发送登录信息到服务器验证数据合法性进入用户主界面加载好友列表数据不合法数据合法图4-6 与服务器连接流程图关键代码:服务端:tryDataTable dt_auth = usersTableAdapter.selectUser_byname(auth.Username);string str = util.Hash.Sha1Hash(this.SessionId + dt_auth.Rows01.ToString();if (auth.Digest = str) bool flag =

26、false;/表示不存在foreach (XmppSeverConnection con in Online.onlineuser)/用foreach遍布数据库中节点判断是否存在该用户及密码是否正确4.4 查看系统日志在客户端运行时管理员可以在服务端查看系统运行日志,管理员可以看到在每一段时间内,所有的用户之间所做的一切的活动。包括登陆、聊天内容等。图4-7 系统运行日志管理员也可以查看系统的安全日志、应用程序日志和系统日志。包括了该软件的修改时间、何时出现过错误以及现在程序是否正常。图4-8 系统日志5 系统测试5.1 软件测试的方法软件测试常用的方法有两种:如果已经知道了产品应该具有的功能

27、,可以通过测试来验证是否每个功能都能正常使用,这种方法称为黑盒测试;如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行,这种方法称为白盒测试。软件测试要求尽可能的多地发现并排除软件中潜藏的错误,最终把一个质量较高的软件系统交给用户使用。5.2 软件测试功能描述服务端服务端与客户端连接测试目的测试客户端与用户端是否能连接正常前提条件服务器端程序处于运行状态输入/动作期望的情况实际情况1:开启服务,打开客户端,输入用户名和密码用户成功登陆,关闭登陆窗体,弹出客户端主界面与期望输出相同2:不开启服务,只打开客户端连接服务器失败与期望输出相同表5-1 测试用例表结

28、论通过这几个月查看大量参考资料,所设计的小型聊天系统基本上满足了运行稳定、可用性高等要求。实现了服务端提供网络服务;用户通过客户端软件实现聊天、文件传输等。在设计的过程中,为了确保每一个功能模块能够尽量少出现系统缺陷甚至没有系统缺陷我们进行了一次又一次的测试、只有多方位的测试才能保证系统的功能尽可能的完善,但是由于我们的开发经验不足,系统还是有不少缺点。在系统的开发的过程中,使我学到了很多大学课堂上学不到的知识,积累了一些开发经验和教训。深刻的了解到开发软件必须严格按照软件开发的原则,逐步地进行开发。首先要做好的是需求分析和功能模块的划分。不能急于编写代码,否则会显得自己写的代码过于冗余而且也

29、有可能会出现大量的系统缺陷甚至会造成系统软件的崩溃。对于数据库的设计必须引起足够的重视,因为一个设计不良的数据库会产生浪费存储空间、数据读取速度慢、不易维护等潜在的问题。在毕业设计过程中,我得到了难得的实践机会,提高了个人的实际工作能力。亲身感到了软件开发必须从用户角度着想,尽可能的满足用户的需求。另外,我在设计中找到了自己的不足,培养了我的编程思想,为以后我的工作和学习积累了宝贵的经验。参考文献1刘晓华.NET核心技术原理与架构M.北京:电子工业出版社,20022张莹,于重重,刘杰.基于.Net Socket局域网多机校时的设计与实现J微计算机信息.2007:145-1463郝俊寿,丁艳会.

30、 XML程序设计案例教程M.北京:机械工业出版社,2013.34卢湘鸿.数据库Access 2003 应用教程M.北京:人民邮电出版社,2007.85张跃廷,许文武,王小科C数据库系统开发完全手册M北京:人民邮电出版社,20076王超,潘杨,张维维.Visual C#通用范例开发金典M北京:电子工业出版社,2008:559-5637李师贤,李文军,周晓聪等.面向对象程序设计基础M.北京:高等教育出版社, 2005.38张虹.软件工程与软件开发工具M.北京:清华大学出版社,2004.99黄国平C#实用开发参考大全M北京:电子工业出版社,200810姜继红.谭宝军.Access2003中文版基础教

31、程M.北京:人民邮电出版社,2011.8致谢经过这几个月的忙碌和工作,毕业设计即将结束,将迎来有一个重要的事情论文答辩,作为一个大学生的毕业设计任务,由于实践经验的匮乏,中途出现了许多考虑不周全的地方,如果没有指导老师的督促指导和同学们的帮助,想要圆满完成这次毕业设计是困难是难以想象的。本次毕业设计是在张鹏飞老师的精心指导下完成的。老师严谨的治学态度,对学生严格要求的求实精神给了我很大触动,使我获得宝贵的精神财富。他循循善诱的教导和不拘一格的思路,更给予了我无尽的启迪。在老师的悉心教导下,我阅读并学习了许多课外教材来完成本设计。这不仅开拓了我的视野,更重要的是提高了我的学习和综合运用知识的能力,这次毕业设计使我受益匪浅。所以我要衷心感谢老师,感谢他对我毕业设计的指导。在本次毕业设计过程中,我也得到了很多热心同学的帮助,同时也要感谢所有给予过我帮助的同学。他们热心的帮助,使我更加坚定了本次毕业设计任务。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1