《计算机毕业论文33176.doc》由会员分享,可在线阅读,更多相关《计算机毕业论文33176.doc(17页珍藏版)》请在三一办公上搜索。
1、聊天室论文目 录目 录11.1 ASP简介2第二章 需求分析42.1 功能需求42.2 性能需求5第三章 总体设计73.1 软件的运行环境设计73.2 系统模块设计73.2.1用户登陆模块设计83.2.2 聊天者发言模块设计113.2.3 显示发言信息模块设计143.2.4 显示在线用户模块设计163.3 数据库结构设计16参考文献18第一章 引言随着Internet的普及和宽带技术的成熟,越来越多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。与此同时,一个新型的Web应用程序为网民之间提供了一个实时互通信息的功能和场所,这就是聊天
2、室。相信经常上网的朋友对聊天室一定不陌生。它早在网络早期就开始盛行了,不论是BBS、IRC都有类似的网上聊天机制。聊天室为网友提供了实时性对话的管道,是网络上极为流行的一项服务。聊天室适用于网上会议或闲聊的场合。聊天室为网友提供了较好的交友环境,网友之间互相以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是“网上交友”之所以如此热门的原因。 1.1 ASP简介Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之中 , 通过 ASP 我们可以结合 HTML
3、 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 ASP技术的出现,使动态交互式Web主页设计成为一件轻松愉快的工作。只要几行脚本语句,就能将后台的数据库信息发布到Internet/Intranet上,在编程和网页脚本的可读性方面大大优于传统的技术方案。ASP是SQL Server(动态服务器主页)的
4、缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。ASP 可以胜任基于微软Web 服务器的各种动态数据发布。 把信息系统纳入Internet/Intranet的框架之后,首先要解决的问题是通过网页访问后台数据库信息。所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求Web 站点具有很强的动态数据发布能力。 然而,目前Web 的服务,仍以提供“静态”主页内容为主。所谓“静态”,指的就是站点的主页内容是“固定不变”的,无法根据用户的需求和实际情况做出相应的变化。当浏览器通过Internet 的H
5、TTP 协议 向站点的Web服务器申请主页时,站点服务器就会将已 设计好的静态的HTML文件传送给浏览器。若要更新主页的内容,只能用非在线的手动方式更新HTML的文件数 据。 ASP所设计出的是动态主页,可接收用户提交的信息并做出反应,其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。例如:当在浏览器上填好表单并提交HTTP请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件。该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以HTML的格式传送给浏览器。数据库的数据可以随时变化,而服务器上
6、执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。在结构关系上,ASP是通过ODBC与数据库打交道。因此,向上层可兼容各类数据库系统。而对于下层,ASP产生的HTML对客户端的浏览器又有广泛的适应性。 从软件的技术层面看,ASP有如下的特点:1.无需编译ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。2.易于生成使用常规文本编辑器(如WINDOWS下的记事本),即可进行*.asp页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的Visual InterDev。3.独立于浏览器用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主
7、页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观察*.asp主页,在浏览器端见不到正确的页面内容。4.面向对象在ASP脚本中可以方便地引用系统组件和ASP 的内置组件,还能通过定制SQL Server来扩充功能。5.源程序码不会外漏ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。从应用的层面看,ASP有如下的功能: 1.处理由浏览器传送到站点服务器的表单输入。2.访问和编辑服务器端的数据库表。使用浏览器即可输入、更新和删除站点服务器的数据库中的数据。3.读写站
8、点服务器的文件,实现访客计数器等功能。4.提供广告轮播器、取得浏览器信息、URL表管理等内置功能。5.由cookies读写用户端的硬盘文件,以记录用户的数据。6.可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。第二章 需求分析2.1 功能需求通过聊天室,用户可以自定义个人的数据,可以以各种不同的身份实时发送聊天信息,可以指定聊天的对象,发送的信息也可以进行各种设置,甚至还可以设置聊天的表情和贴图。功能更为强大的聊天室不仅提供了普通的文字功能,还支持视频和音频聊天、传送文件等功能。聊天室的特点就是要求能够实时心事出聊天者所谈的内容。所谓“实时”就是指在同一个聊天室的使用者,可以在短时
9、间内立刻看到其它人的发言,这与网络上常见的留言板和讨论区有很大的不同。那么自己设计一个具有聊天服务的网页是不是很难呢?在ASP没有得到广泛应用之前,聊天室大多是用CGI程序或者用JAVA开发的Applet维护的,要开发一个聊天室程序是很费时费力的。但现在用ASP可以快速、简便的设计出一个可以互相对话的典型聊天室程序,几十行的HTML代码加上ASP程序,就可以快速的构建出最基本的聊天室了。但是想让聊天室功能更强大,吸引更多的网友,还是需要花一番心思的。网上聊天室作为用户最喜欢的Web应用程序,其特点就是强调信息的实时性和信息发布方式的多样性。从功能上讲,网上聊天室系统与论坛的系统非常相似,但聊天
10、室系统有自己的特点,它强调信息的实时性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所谈的内容。2.2 性能需求开发一个完整的聊天室要用到很多知识。在开发以前首先要知道自己开发的程序要满足哪些要求及实现的功能是什么。设计一个功能完善的聊天室系统,工作量是非常庞大的,但设计时一般有以下几个问题需要特别注意。1. 系统需要解决的主要问题在规划设计一个聊天室时,首先要确定好谈话内容存储方式,即在客户机上显示实时谈话内容应以什么方式存储在服务器中.ASP可以用三种形式实现聊天内容的存取:1)用全局变量Application和Session对象实现.这种形式速度快、效果好,但系统资源消耗太大。2)
11、用读写数据库方式实现。这种方法就相对比较简明,但服务器频繁读写数据库负担很重。3)用读写文本文件完成。这种方法适合简单的聊天室。由于ASP对文本文件操作的指令远不如ADO提供的对数据库操作的指令多,所以利用ADO,ASP能灵活地操作数据库,如插入、删除、更新、查询等。本设计选择了SQL数据库来存储用户信息。聊天室设计性能好坏的另一个重要的标志就是聊天室成员的动态刷新。因为许多用户在退出聊天室的时候,并不是标准的退出,也就是说并不是从“退出”链接退出的,这样就会带来很多的麻烦,因为服务器并不知道用户已经离开了。因此需要建立一个在线用户数据库,每隔一段时间检查一次,确定用户是否最后一次发言已经超时
12、,如果超时就自动将该用户删除。但是每次用户发言的时候,必须把发言时间写入数据库。2、系统具备的功能考虑到聊天室制作的复杂性和毕业设计的时间问题,本次设计的聊天室主要实现了以下的功能:用户登录聊天室聊天者把注册信息写入数据库修改聊天语句的颜色设置发言人的表情浏览器不断的对数据库进行刷新、读取实时更新在线的用户第三章 总体设计聊天室制作的总体设计包括:软件的运行环境设计系统模块设计数据库设计3.1 软件的运行环境设计 为了保证系统运行的效率和可靠性,服务器应具有较高的软硬件配置,客户端的要求不需要太高,此应用程序可广泛运行于Internet,也适用于内部的局域网。运行要求如下:1、 软件环境服务器
13、端: Windows2003,IIS 5.0及其以上版本.数据库: 采用SQL 数据库,运行于服务器端.2、 硬件环境服务器: CPU要求PIII800以上,内存2G以上.客户机: CPU要求200 MMX以上,内存64 MB以上.3.2 系统模块设计根据需求分析和性能分析,对系统各功能进行集中、分块,按照结构化程序设计的要求,本功能的系统功能模块图如图所示。详细设计与系统实现详细设计是整个设计过程中,最重要的步骤之一。下面就分以下几个部分对系统进行详细设计:用户登陆模块设计聊天者发言模块设计显示发言信息模块设计显示在线用户模块设计3.2.1用户登陆模块设计用户只有使用合法的用户名和密码登陆才
14、能进入本网站,假设用户设定的虚拟目录别名为chat,打开IE浏览器,在地址栏中输入http;/192.168.8.115:8080/LTS/indext.asp,进入登陆界面,如图所示。输入用户姓名和用户密码,按登陆按钮,如果输入正确便可进入系统主界面页面选择你要登陆的聊天室,可以看到聊天室画面中显示欢迎信息,并且在当前在线用户中显示刚才登陆的当前用户的名字,如图所示。系统的主界面页面是一个框架页面indext.asp,定义如下:化院聊天室 frame src=main.asp?act=login&ntime= name=main marginwidth=0 noresizeframe src
15、=chatform.asp?ntime= name=chatform scrolling=no marginwidth=0 marginheight=0此框架页面由3个部分组成:右边下面的框架,实现聊天者发送信息,打开的网页文件为main.asp。左边框架的左边部分,用来显示在线聊天用户的信息,打开的网页文件为right.asp。右边上面框架的右边部分,用来显示聊天者发言的信息。3.2.2 聊天者发言模块设计该模块的主要作用是实现聊天者一各种表情、各种身份、不同颜色的文字对不同的用户发送聊天信息,实现发言功能的程序也是botom.asp。当用户以正确的用户名和密码登陆后就可以通过聊天者发言的功
16、能,发送聊天信息。1聊天者以默认的设置发言聊天室默认的发言设置是:字体:黑色字体发言对象:大家表情:微笑1. 以用户自定义的方式发言使用用户自定义的方式发言可以定义的功能如下:发言文字的颜色:下拉列表选择发言对象:下拉列表中选择发言的表情:下拉列表中选择(1) 发言文字颜色的设置用户发言前可以从颜色的下拉列表中选择某种颜色后,再进行发言,将来网页中显示的发言内容的颜色即为用户选择的颜色,。在botom.asp程序中,用于实现用户自定义发言字体颜色的程序段如下所示: 颜色: 。(2)
17、 发言表情的设置用户发言前可以从表情下拉列表中选择某个表情后,再进行发言,将来网页中显示的发言人的表情就是用户选择的表情。在botom.asp程序中,用于实现用户自定义发言表情的程序段如下所示:表情: 坦克 pk 跳舞 体重 现摆肌肉造反锻炼肌肉道歉惊讶迥讨厌逗乐闭夸奖爷们带劲为什.在本程序中只设置了发言对象的功能,而发言字体颜色和发言表情设置。用户根据实际需要,参考发言对象,来设计发言字体颜色和发言表情2. 发言提交和复原功能设计当用户自定义了发言文字的颜色、发言的表情、发言的对象并输入了发言内容后,用户就可以点击提交按钮将发言的内容以记录的形式提交到服务器,或者点击重置按钮取消本次发言。3
18、. 用户离开聊天室的设计当用户离开聊天室的时候,除了让页面中显示相应地离开信息,还应当实现将用户从聊天室的在线名单中删除。例如,用户“12”准备离开聊天室,点击安全推出按钮,用户可以直接推出,并且更新在线用户的名单。用于实现用户离开聊天室的程序段如下所示:这里比较关键的一个技术就是,当用户离开聊天室后怎样动态地更新显示聊天室中在线的名单。程序中谁了一个session(“user”)对象,用于存储用户的姓名信息。当用户没有退出聊天室之前,其中一直存储用户的姓名信息。如果用户点击了离开聊天室按钮,首先执行SQL删除命令将当前用户从在线用户表中删除。当删除了当前用户在在线用户表中的记录后,将sess
19、ion(“user”)对象的值清空,以便将来动态地更新聊天室中在线的名单。3.2.3 显示发言信息模块设计 把上面的程序保存在具有执行权限的服务器目录中,在客户端用浏览器打开时,屏幕显示出聊天室的用户登陆界面。用户输入用户名及密码正确登陆后即可进行聊天,按发送按钮时,用户的发言便会将用户发言文字的颜色、发言的表情、以及发言的内容一起写入聊天表中。 接下来,用户设计所关心的就是怎样将发言的信息显示在浏览器中,而且还要实现自动刷新最新的聊天内容。1.显示发言信息模块与聊天者发言信息模块的关系 需要注意的是,发言之后,用户可以实现发言的内容并不是立即出现在屏幕上的,而是在很短暂的是延迟后才能看到发言
20、的内容。聊天室还需要一个重要的程序,这个程序自动地、不断地读取最新的记录,并把这些记录显示在所有用户的浏览器上。这个程序唯一的任务是读取聊天表中的数据,把数据都显示出来。无论客户是否发言,无论客户对谁说话,无论客户选择什么表情与颜色,即使这个聊天室没有一个用户说话,这个程序也是不段的读取聊天表中的数据,每N秒钟刷新一次,这个N是由编程者决定的。 由此可知,登陆、发言部分与自动刷新部分本身并没有任何联系,二者之间的数据传递是通过写数据库和读数据库操作实现的。2.实现聊天信息显示的关键技术 (1)记录的显示顺序程序将发言信息写入数据库的时候,记录是不断往数据表的尾部增加的。因此,用户必须知道哪一句
21、话是最新的,哪一句话是在前面说的。在聊天表中,有一个自动编号的字段ID,这个字段非常有用。ID最大的记录是最新输入的记录,每添加一个记录,ID自动加1。由此,用户可通过ID来对用户发言的信息进行从新到旧的、一句一句的排序输出。在SQL的Select语句中有一个Order By子句,功能是按一列或多列对查询结果进行升序或降序排序。Select查询语句如果不用Order By子句,那么默认为升序输出,于是用户就会看到最旧的发言总是在前面显示,而最新的则跑到最后面显示,这当然不 是设计着所希望看到的。 (2)设置显示最新记录的范围由于用户的聊天信息不断的向聊天表追加新的内容,数据库将会变得越来越大。
22、为了获得较快的信息读取和显示 速度,用户不可能也不必要读取全部的聊天信息并将这些信息显示出来,秩序要设计看到最新的N句话,比如最新的50句话就够了。 (3)聊天信息的自动刷新功能的代码如下:这是一条最简单的页面自动刷新脚本,是HTML脚本,而不是ASP脚本。设置合理的刷新是很重要,刷新时间过短,屏幕则晃动厉害;刷新时间过长,会导致等待是太长、速度太慢。 当用户输入聊天信息并点击发言按钮后,在很短暂的时间延迟后就能看到发言的内容.3.2.4 显示在线用户模块设计每当一个新的用户进入聊天室后,系统应当将用户显示在在线聊天室名单中,并将当前用户的颜色以不同于其他用户的颜色显示。实现显示在线用户功能的
23、程序是online.asp。 在本程序中最为关键的就是怎样实现将当前用户的颜色以不同于其他用户的颜色显示,这里是通过将在在线用户表中的名字字段和session(“user”)获得的用户名进行比较,在比较的循环中,如果某个记录的名字和当前用户的名字一致时,就将该用户在在线名单中以红色表示,而其他的用户以黑色表示。由于在线用户也需要不断的自动刷新,所以程序中同样也设置了自动刷新的功能。3.3 数据库结构设计 数据库在一个信息管理系统中占有非常重要的地位,数据设计的优势将直接对应用系统的效率以及实现的效果产生影响。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。
24、本系统设计采用了SQL 数据库设计。设计了一个数据库QQdb.mdb,用来存储用户的信息以及在线用户的信息。本系统的数据库连接采用了DB数据库连接字符串的显示定义,这样做的好处在于,使用DSN 数据源实现对数据库的访问要经过额外的软件层来完成,而使用连接字符串可以直接实现这种连接,代码如下:3) 定义数据库打开的方法如下;Conn.open Connstr其中 Connstr 确定了数据库文件的路径和数据库连接使用的驱动程序;Conn的含义是定义了一个变量用来存放数据库连接所创建的对象;Conn.open Connstr语句则真正实现了数据库的连接。第四章 结束语 经过了三个多月的学习和工作,
25、我终于完成了化院聊天室的论文。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对ASP,ADO等相关技术懵懂的状态,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。 虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。 参考文献1网页设计实用教程网络0911班尹海文