基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc

上传人:laozhun 文档编号:2385251 上传时间:2023-02-17 格式:DOC 页数:29 大小:1.09MB
返回 下载 相关 举报
基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc_第1页
第1页 / 共29页
基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc_第2页
第2页 / 共29页
基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc_第3页
第3页 / 共29页
基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc_第4页
第4页 / 共29页
基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于ASP.NET的网上聊天系统的设计与实现毕业论文.doc(29页珍藏版)》请在三一办公上搜索。

1、河北工业大学毕业设计说明书(论文) 作 者: 学 号: 104588 系 : 计算机系 专 业: 计算机网络技术 题 目:基于ASP.NET的网上聊天系统的设计与实现 指导者: 毕业设计(论文)中文摘要基于ASP.NET的网上聊天系统的设计与实现摘要:随着网络的出现,信息资源的实时共享成为现实,更重要的是它提供了一种极为直接的交互方式,当然这种交互不单是指数据、信息之间的传递,也包括人与人之间的互相交流,各种聊天软件和在线聊天室正是承载这类交互的媒介。本设计基于ASP.NET,使用vs2008和SQL2008工具制作,同时也应用到Ajax的无刷新技术实现即时刷新聊天记录。本系统中用户可以注册新

2、账号,进行登录。进入聊天页面后,用户可以跟所有在线用户聊天,也可以跟特定人聊天。同时,用户可以添加好友和删除好友。用户还可以在留言板上进行留言。如果用户忘记密码,可以在登录页面上点击重置密码进行密码重置。管理员可以管理用户、留言板和聊天记录。关键词: ASP.NET 群聊 私聊 留言 毕业设计(论文)外文摘要Title Design and Implementation of Chat Online System Based on ASP.NET AbstractWith the emergence of network, the real-time sharing of informatio

3、n resources to become a reality, it is more important is that it provides a very direct way of interaction, of course, this interaction is not only index according to, the information transfer between, also including between people communicate with each other, all kinds of chat software and online c

4、hat is bearing this kind of interactive media.Design is based on ASP.NET, using vs2008 and SQL2008 tools production, at the same time also applies to the Ajax refresh technique with instant chat refresh record. Users can register the new account, in this system to log in. After entering the chat pag

5、e, users can chat with all online users, can also chat with someone. At the same time, users can add friends and remove buddy. Users can also leave a message on the message board. If the user forgot password, can click on the login page to reset the password for the password reset. The administrator

6、 can manage users, message boards and chat records.Key words:ASP.NET group chat private chat message目 次 1 引言11.1 课题开发背景11.2 课题开发的意义12 系统开发技术简介22.1 开发环境22.2 ASP.NET技术22.3 SQL2008技术33 系统分析43.1 需求分析43.2 可行性分析44 系统设计54.1 数据库设计54.2 系统概要设计75 系统功能模块的实现85.1 用户登录功能模块实现85.2 用户注册功能模块实现105.3 重置密码功能模块实现115.4 用户聊

7、天功能模块实现145.5 管理员功能模块实现176 功能测试与维护186.1 测试方法186.2 测试范围186.3 测试结果196.4 系统维护19结论21参考文献22致谢231 引言1.1 课题开发背景 随着Internet在中国的迅速发展,人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。在众多Internet关联功能中,有一项新的业务正成为所有用户所津津乐道的交流方式,这就是网上聊天。作为操作简便也是出现最早的网上聊天方式, 聊天室聊天又是其中最普及的一种。聊天室的主要发展趋势是大型化和专业化, 目前比较有效的途径, 一是向实用性方向发展, 将聊天室互动的技术特性充分发

8、挥, 满足远程交流需要。提供大众需要的内容, 例如进入在线学习领域、专家在线辅导、聊友之间进行讨论。聊天室是当今广泛应用的一种网络服务,它为广大网民提供了一种方便快捷的沟通方式, 在线聊天是上网的重要活动之一。第十六次 CNNIC 调查结果显示: 在网络用户经常使用的网络服务/功能调查中, 网上聊天( 聊天室、QQ、ICQ 等) 占被调查人群的 42.6%, 处于第四位。 1.2 课题开发的意义 随着计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面,使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系和交流方式

9、,使得人们可以在远隔千里遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。网上聊天系统是为人们进行交流和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人与人之间交流和联系的目的。2 系统开发技术简介2.1 开发环境系统开发平台:Microsoft Visual Studio 2008数据库:SQL Server 2008运行平台:Windows XP/Windows 2000/Windows 2003/Windows 7分辨率:最佳效果1024768像素2.2 ASP.NET技术ASP是Active Server Page的缩写,意为“动态服务器页面”。AS

10、P是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。ASP网页特点:ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点: (1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术; (2)ASP文件是包含在HTML代码所组成的

11、文件中的,易于修改和测试;(3)服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页; (4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息; (5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等。 (6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始

12、程序代码,可防止ASP程序代码被窃取。 ASP-工作原理当在Web站点中融入ASP功能后,将发生以下事情: 1、用户向浏览器地址栏输入网址,默认页面的扩展名是.asp。 2、浏览器向服务器发出请求。 3、服务器引擎开始运行ASP程序。 4、ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。 5、页面信息发送到浏览器。2.2.1 AJAX技术AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax应用与传统的Web应用的区别主要在3个地方:(1) 不刷新整个页面

13、,在页面内与服务器通信。(2) 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。(3) 大部分交互在页面之内完成,不需要切换整个页面。2.3 SQL2008技术SQL Server 2008 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2008 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL SERVER 的优点:(1) 真正的客户机/服务器体系结构。(2) 图形化用户界面,使系统管理和数据库管理更加直观、简单。(3) 丰富的编程接

14、口工具,为用户进行程序设计提供了更大的选择余地。(4) SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。(5) 具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2008的大型多处理器等多种平台使用。3 系统分析3.1 需求分析通过了解聊天室的开发背景和目的,可以将本系统功能分为5个模块,各模块功能如下: (1)用户登录模块:用户输入正确的账号和密码才可以进入聊天室。(2)用户注册模块:没有账号的用户要先进行注

15、册,不允许没有登录直接进入聊天室。(3)重置密码模块:用户忘记密码后,可以重置密码。(4)用户聊天模块:用户可以与特定人聊天,也可以跟所有在线用户聊天。用户可以留言和加好友。(5)管理员模块: 管理员可以管理用户、留言板和聊天记录。只有完成上述功能,本聊天室才能作为一个可以进行聊天的工具。3.2 可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、法律的方面进行分析和研究。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方

16、面的内容。3.2.1 经济可行性主要是对项目的经济效益进行评价,本系统开发几乎没有什么经费,但开发后可以被广发使用,带来用户,可以带来广告方面的效益。所以本系统在经济上是可行的。3.2.2 技术上的可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该管理系统采用了当前新兴的Browser/Server模式进行开发。三层的Browser/Server体系结构具有许多传统Client/Server体系结构不具备的优点,而且又紧密的结合了Internet技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器选用Microsoft S

17、QL数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。3.2.3 法律可行性目前,网络已经遍布全球,人们与人们之间的竞争日趋激烈,人们与人们之间的竞争已经上到一个新的高度,那就是信息化战争。最新的信息就是最好的竞争手段的实力,网上聊天系统就是获取最新信息的一个好途径。因此,建立一个网上聊天系统是事在必行。 综上所述,此系统开发目标已明确,在技术和经济等

18、方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。4 系统设计4.1 数据库设计 数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。数据库是通过数据库管理系统(DBMS-DATA BASE MANAGEMENT SYSTEM)软件来实现数据的存储、

19、管理与使用。数据库是一个共享的、集成的计算机结构,它包括最终用户数据和元数据。一个好的数据库并不是随意产生的,其内容结构必须经过精心设计。设计优良的数据库会使数据管理变得容易,并产生有价值的信息;而设计糟糕的数据库则会成为冗余数据的滋生地。冗余数据经常会造成难以跟踪的错误。规范化是给实体分配属性的过程。它能够减少数据冗余,有助于进一步消除由于冗余引起的数据异常。规范化不能够消除数据冗余;相反,它通过生成有控制的冗余来连接数据库表。规范化通过一系列称为范式的阶段来完成。数据表规范化的程度越高,数据冗余就越少,同时造成人为错误的可能性就越少;同时,规范化的程度越高,在查询检索时需要做的关联等工作就

20、越多,数据库在操作过程中需要访问的数据表以及之间的关联也就越多。因此,在数据库设计的规范化过程中,要根据数据库需求的实际情况,选择一个折中的规范化程度。4.1.1 表设计本设计数据库采用SQL数据库。该系统用到4个数据表:用户表(T_user)、 好友表(T_haoyou)、留言板表(T_liuyanban)和聊天记录表(T_liaotianjilu)。用户表用来存储用户的账号、密码等资料,好友表用来存储用户账号和该账号的好友,留言板用来存储各个用户的留言,聊天记录表用来存储所有用户的聊天记录。用户表结构:表4.1 用户表列名数据类型是否为空是否为主键备注Numbervchar(50)否是账号

21、Passwordvchar(50)否否密码Questionvchar(50)否否安全问题Answervchar(50)否否答案Stateint是否状态好友表结构:表4.2 好友表列名数据类型是否为空是否为主键备注idint否是编号z_zhanghaovchar(50)是否主账号z_haoyouvchar(50)是否主账号好友留言板表结构:表4.3 留言板表列名数据类型是否为空是否为主键备注idint否是编号f_whovchar(50)是否留言者账号f_timedatetime是否留言时间f_neirongvchar(50)是否留言内容聊天记录表结构:表4.4 聊天记录表列名数据类型是否为空是否

22、为主键备注idint否是编号jiluvchar(MAX)是否聊天记录4.2 系统概要设计 根据系统功能,得到系统功能图:用户注册账号重置密码群聊、私聊留言添加、删除好友管理员管理用户管理留言板管理聊天记录图4-1 系统功能图各功能说明如下:注册账号:在注册账号时,用户的账号必须是未被使用的,而且密码必须是6位,且用户必须填上安全问题和答案,方便在后边的重置密码中,输入账号和问题、答案,重置密码。重置密码:在重置密码中,用户必须输入账号,并输入注册该账号时,填写的问题和答案,只有这些都符合,用户才可以重置密码成功。群聊、私聊:用户可以跟所有人聊天和也可以跟特定人聊天。用户退出时,必须点退出,将用

23、户状态改为 “0“,否则,下次登录时,会提示该用户已经登录。用户也可以修改自己的资料。留言:用户可以在留言板上发表留言,通过再次登录便可以查看。添加、删除好友:用户可以添加好友,但该好友的账号必须存在,同时也不允许用户重复添加同一账号为好友。用户也可以删除好友。管理员:管理员管理着用户、聊天记录和留言板。5 系统功能模块的实现5.1 用户登录功能模块实现用户首先进入login.aspx页面,进行登录。如图5-1: 图5-1 login.aspx文件的设计界面用户在登录时,应该为分以下几种情况:还没注册的用户:没有经过注册的用户,不可以直接进入聊天界面。所以要先注册,再登录。已经注册的用户:已经

24、注册的用户,不允许还没登录就直接进入聊天界面。如果用户输入的账号不正确,会弹出账号错误或不存在的提示。如果密码输入错误,会弹出密码错误的提示。如果该用户在上次聊天后,没有注销,会提示已经登录。登录成功后,会根据账号进入管理员页面或聊天界面。代码:String strConn= System.Configuration.ConfigurationManager.ConnectionStringsConnectionString.ToString();SqlConnection conn = new SqlConnection(strConn);conn.Open(); /连接数据库string

25、str = select * from T_user where number=+tb_number .Text +;SqlCommand comm = new SqlCommand(str,conn);SqlDataReader dr = comm.ExecuteReader();/判断该用户是否存在/存在if (dr.Read()/密码正确且未登录 if (drpassword.ToString() = tb_psword.Text&drstate.ToString ()!=1) dr.Close(); SqlCommand comm1 = new SqlCommand(update T_

26、user set state=1 where number= + tb_number.Text + , conn); comm1.ExecuteNonQuery(); conn.Close(); Sessionname = tb_number.Text; if (tb_number .Text =gly) Response.Redirect(guanliyuanjiemian.aspx); else Response.Redirect(Chat1.aspx); if (drpassword.ToString() =b_psword.Text&drstate.ToString()=1) Resp

27、onse.Write(alert(该账号已登录); if (drpassword.ToString() != tb_psword.Text & drstate.ToString() = 0) conn.Close(); Response.Write (alert(密码错误,登录失败); /不存在 else conn.Close(); Response.Write (alert(用户名不存在或错误); 5.2 用户注册功能模块实现如果是新用户,点击登录页面的“注册用户”,则跳转到AddNewUser.aspx进行新用户的注册。如图5-2所示: 图5-2 AddNewUser.aspx文件的设计界

28、面当表单提交后,将在AddNewUser.aspx 文件中处理表单提交的数据。在这个过程,首先判断用户输入信息的有效性,然后将输入的信息保存到数据库中。在用户注册页面中,用户注册的账号必须是未被使用的,所以在点击注册时,首先要判断该账号是否已经被使用。再者,为了安全起见,密码必须是6位,通过使用验证控件完成。而且密码和确认密码也必须一致,也使用验证控件完成。对于安全问题和答案,没有任何约束,但是必须要填的。代码如下:string strConn = System.Configuration.ConfigurationManager.ConnectionStringsConnectionStri

29、ng.ToString();SqlConnection conn = new SqlConnection(strConn);conn.Open(); /连接数据库/ 判断用户是否已经注册或该账号已被使用try SqlCommand comm = new SqlCommand(insert into T_user values( + tb_zh.Text.ToString() + , + tb_mm.Text.ToString() + , + tb_aqwt.Text.ToString() + , + tb_da.Text.ToString() +,0), conn); comm.Execute

30、NonQuery(); Response.Write(alert(注册成功);window.location.href =Login.aspx); catch Response.Write(alert(该账号已存在!); finally conn.Close(); 5.3 重置密码功能模块实现重置密码页面是在用户忘记密码时,通过回答注册时的安全问题,进行密码的重置,这样可以方便用户在忘记密码后,设置一个更加容易记忆的密码。点击登录页面的“重置密码”,进入GetPassword.aspx界面,在该页面中采用MultiView控件,分为三个步骤。如下图:图5-3 输入用户账号图5-4 回答安全问题

31、图5-5 设置新密码完成这些步骤后,可直接进入登录界面。如下图:图5-6 修改密码成功对于重置密码页面,使用MultiView控件,在该控件中,添加三个View控件,在输入账号的View控件中,点击下一步之前要判断该用户输入的账号是否存在。点击第二个View控件中的下一步时,要验证输入的问题和答案是否跟该账号注册时相匹配。代码如下:string str = select * from T_user where number=+TextBox1.Text +;SqlCommand comm = new SqlCommand(str,conn);SqlDataReader dr = comm.Ex

32、ecuteReader();dr.Read();if(drquestion.ToString()=TextBox2.Text&dranswer.ToString()=TextBox3.Text) MultiView1.ActiveViewIndex = 2; if(drquestion.ToString()!=TextBox2.Text&dranswer.ToString()=TextBox3.Text) Response.Write(alert(问题错误); if(drquestion.ToString()=TextBox2.Text&dranswer.ToString()!=TextBox

33、3.Text) Response.Write(alert(答案错误); if(drquestion.ToString()!=TextBox2.Text&dranswer.ToString()!=TextBox3.Text) Response.Write(alert(问题和密码都错误); conn.Close();最后,输入密码和确认密码后,重置成功,直接进入登录页面。5.4 用户聊天功能模块实现聊天室主界面chat1.aspx是一个多窗口的页面。该页面分为:在线用户列表、我的好友、留言板、添加好友和聊天这几个部分。聊天室主界面布局如下图所示:图5-7 用户聊天界面(1)在线好友的显示,是通过用

34、户登录后,修改用户表里state的值为“1”,然后把state为“1”的用户账号信息绑定到GridView中显示出来。(2)我的好友的显示,是通过在好友表里,把主账号为该用户账号的好友列绑定到GridView中显示出来。(3)留言板的实现比较简单,就是执行一个插入语句。代码为:string strConn = System.Configuration.ConfigurationManager.ConnectionStringsConnectionString.ToString();SqlConnection conn = new SqlConnection(strConn);conn.Open

35、();string str = insert into T_liuyanban values( + Sessionname.ToString() + , + DateTime.Now.ToString () + ,+TextBox2 .Text +);SqlCommand comm = new SqlCommand(str, conn);comm.ExecuteNonQuery();TextBox2.Text = null;conn.Close();(4)聊天分为跟所有人聊天和跟特定人的聊天,如果跟特定的人聊天需要在在线用户列表里选中用户,单击“密谈”复选框,就可以进行特定聊天。跟所有人聊天,

36、只需要在文本框里输入内容,然后点击“发送“按钮,即可。代码如下:/连接数据库 string strConn = System.Configuration.ConfigurationManager.ConnectionStringsConnectionString.ToString();SqlConnection conn = new SqlConnection(strConn);conn.Open();string str=;/所有人聊天if (CheckBox1.Checked = false) str=Sessionname.ToString() + 对所有人说: + DateTime.N

37、ow.ToLongTimeString() + + TextBox1.Text + ; Applicationmessage += str; /对某个人说if (CheckBox1.Checked = true & GridView1.SelectedRow != null) str = Sessionname.ToString() + 对 + GridView1.SelectedRow.Cells0.Text.ToString() + 说: + DateTime.Now.ToLongTimeString() + + TextBox1.Text + ; Applicationmessage +

38、= str; /插入到聊天数据库 SqlCommand comm = new SqlCommand(insert into T_liaotianjilu values(+str+), conn); comm.ExecuteNonQuery(); conn.Close(); /更新label Label1.Text = Applicationmessage.ToString(); TextBox1.Text = ;(5)在添加好友中,首先要判断添加的用户账号是否存在,不存在要弹出“该账户不存在“的提示,然后,判断添加的这个账号是否已经是登录账户的好友,如果不是,弹出”添加成功“的消息框,否则,弹

39、出”该账号已经是你的好友“的提示框。代码如下:string strConn = System.Configuration.ConfigurationManager.ConnectionStringsConnectionString.ToString();SqlConnection conn = new SqlConnection(strConn);conn.Open();/连接数据库string str = select * from T_user where number= + TextBox3.Text + ;SqlCommand comm = new SqlCommand(str, co

40、nn);SqlDataReader dr = comm.ExecuteReader();/判断该用户是否存在 if (dr.Read() /该用户存在 dr.Close(); string str2 = select z_haoyou from T_haoyou where z_zhanghao= + Sessionname.ToString() + ; SqlCommand comm1 = new SqlCommand(str2, conn); SqlDataReader dr1 = comm1.ExecuteReader ();/判断该用户是否已经为我的好友 while(dr1.Read

41、() if (dr1z_haoyou.ToString() = TextBox3.Text) Response.Write(alert(该账号已经是你的好友!); TextBox3.Text = null; return; dr1.Close();/添加好友 string str1 = insert into T_haoyou values( + Sessionname.ToString() + , + TextBox3.Text + ); SqlCommand com = new SqlCommand(str1, conn); com.ExecuteNonQuery(); TextBox3.Text = null; Response.Write(scr

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号