优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

局域网信息发布程序的设计与实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

目   录
摘要 .........................................................3
英文摘要 ......................................................4
一、绪论 ......................................................5
(一) 背景介绍 ...........................................5
(二) 相关知识..............................................5
二、需求分析 ...................................................9
(一) 可行性分析:...........................................9
(二) 系统综合要求: ........................................9
(三) 系统数据要求: ........................................10
三、总体设计 ..................................................12
(一) 层次图 ...............................................12
(二) 系统构架图...........................................13
(三) IPO图 ...............................................14
四、详细设计 ..................................................16

think58.com [来源:http://www.think58.com]


(一) 服务器端设计方案  ...................................16
(二) 模块流程图 ........................................17
(三) 数据库设计...........................................20
(四) 共享数据结构设计.....................................20
五、关键代码分析 ...............................................22
(一) 编码规则 ...........................................22
(二) 多进程编程  ........................................22
(三) 多线程技术..........................................23
(四) 主要设计源代码介绍 …...............................23
六、测试 ......................................................31
(一) 测试的目标和方法 .................................31
(二) 软件测试情况 ....................................31
(三) 界面与功能测试情况.................................32
七、总结 ......................................................35
参考文献 ......................................................36

think58好,好think58 [资料来源:THINK58.com]


  think58好,好think58 [资料来源:http://think58.com]

摘  要 copyright think58

[资料来源:THINK58.com]

本次毕业设计的题目是《局域网信息发布程序的实现》,是采用RedHat Linux 作为开发平台,以MySQL为数据载体,以VC语言为主要开发语言的一套包括发送消息及附件为主,并提供及时聊天功能的一个综合性软件。主要的功能是基于TCP/IP网络通信技术实现了面向连接的用户与服务器间点对点的通信传输功能,并且应用了多线程以及共享数据结构技术,使网络服务器具有了多用户数据转发的功能,进而解决了局域网多用户间的信息发送的问题。在客户端,用户通过注册/登陆机制进行身份验证并通过通信服务器转发信息以及附件。
对于一般采用TCP/IP协议的应用程序只实现了单用户与服务器间点对点的连接,而本文在VC6.0的环境下,运用了多线程以及共享数据结构技术,不仅实现了多用户与服务器间的连接,而且解决了多用户间信息交换问题。 think58好,好think58

[资料来源:http://think58.com]

关键词:   Linux   MySQL  socket  多线程  共享数据结构  信息发送 think58好,好think58 [资料来源:THINK58.com]

二、需求分析 内容来自think58 [版权所有:http://think58.com]

(一) 可行性分析

[来源:http://www.think58.com]

可行性分析的目的是为了用最小代价在最短时间内确定问题是否能够解决。可行性分析的实质就是要进行一次压缩简化系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程[1]。
(1)技术可行性:这个软件通用,可行。
(2)经济可行性:这个软件的经济效益会远大于开发成本,可行。
(3)操作可行性:Linux系统/Windows系统和MySql为大家所熟知,比较易于操作,这个软件也易于使用,可行。 [资料来源:THINK58.com]

(二) 系统综合要求 内容来自think58 [来源:http://www.think58.com]

需求分析的基本任务是准确的回答“系统必须做什么?”[1]这个问题。这一阶段是对系统认识最为全面、准确、清晰、得体的一个比较关键的时期。
需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证,为下一步的总体设计打好基础。 [来源:http://www.think58.com]

2.1 、系统功能要求 think58.com [版权所有:http://think58.com]

需求分析的基本任务是准确的回答“系统必须做什么?” 功能:
1)  注册会员于登录服务器,并把相关会员信息写入数据库中,在登陆时要进行身份验证。
2)  建立多用户间的通信连接。
3)  用户间消息和文件的传送和接收。
4)  附件与文字同时发送。

think58 [资料来源:www.THINK58.com]

[来源:http://www.think58.com]

2.2、 系统性能要求
时间性能要求:在实际应用中可能需要多用户间信息互发的问题,客户端的大量频繁的访问,服务器响应时间应该尽可能缩短,对于有特殊需求的应用,还要求达到实时响应。
存储性能要求:根据应用中的实际情况配置适当容量的存储设备。
稳定性安全性要求:要求软件尽可能的稳定,对于一般的应用系统,对安全
性要求不高,对于特殊的应用,还需要在安全性方面加以保证,所以要相应提高服务器端的配置。 copyright think58 [资料来源:www.THINK58.com]

2.3、  系统运行要求

think58好,好think58 [资料来源:THINK58.com]

[资料来源:http://THINK58.com]

服务器端: Linux系统和MySQL服务器。Server:用于接收/转发数据,连接数据库及应用程序。
客户端:  多个PC机,通信用,作为数据发生器。 本文来自think58 [来源:http://www.think58.com]

2.4、  将来可能提出的要求 think58 [资料来源:www.THINK58.com]

在实际应用中,用户的要求随时可能发生变化,如需要更改数据库信息,改变通信参数,增加访问量以及需要提高系统的性能要求等等。为了减少软件改写的难度,提高软件的可维护性,在设计时要考虑到以上的种种可能性,提高程序的可读性和易扩充性。 [资料来源:http://THINK58.com]

(三) 系统数据要求 内容来自think58

[资料来源:http://think58.com]

数据流图是描绘系统的逻辑模型,描绘信息在系统中流动和处理的情况。数据流图是逻辑系统的图形表示,非常容易理解,所以是极好的通信工具,同时,设计数据流图只需要考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点[1]。
下面是我们设计的数据流图:
    copyright think58

[来源:http://think58.com]


 图2-1数据流图 think58好,好think58 [资料来源:THINK58.com]

因为数据流图是描绘信息在系统中流动和处理的情况,所以首先说明一下这个数据流图的作用:局域网信息发布的起点与终点都是用户自己本身,也就是发起者与接收者都是用户自己。进入我们的程序后,首先用户要自己判断是这册用户还是登录用户,想成为会员首先就要注册成为会员,这样就进入了注册信息这个阶段,填写注册用户的基本信息,详细信息。判断该信息是否有人注册,如果注册信息成功,则把用户的注册信息写入在数据库中,也就是更新我们的数据库信息并保存数据,反馈给用户注册成功的信息,用户就进入登录界面进行登录,进入到客户端后,用户可根据相应的要求发送信息、附件等给用户。并且这些信息与附件相应的通过通信服务器转发,并保存[2]。
上面就是这个数据流图的过程,用户与用户之间的联系,用户与服务器的联系,都表现了出来。 内容来自think58

[来源:http://www.think58.com]


 

think58.com

[来源:http://www.think58.com]

[资料来源:THINK58.com]

三、  总体设计 [来源:http://think58.com]

经过了需求分析阶段的工作,系统必须“做什么”的问题已经清楚了,现在是决定“怎么做”的时候了。总体设计的基本目的就是回答“概括得说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作,将划分出组成系统的各个物理要素——程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后进行详细设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系[1]。 本文来自think58 [资料来源:http://www.THINK58.com]

(一)层次图 think58好,好think58 [资料来源:http://www.THINK58.com]

层次图用来描绘软件的层次结构,通过它我们可以更清晰的看到软件的模块组成情况。
根据我们这个题目的设计,我们相应的把设计划分成下面几个大的模块[5]。
一个模块是注册登录服务器,它包括用户注册、登录以及数据库管理这三个功能,启动注册登录服务器,判断用户是注册还是登录,注册则进入注册部分,并保存数据于数据库中,登录则直接从数据库调出数据,登录进入客户端通信。
另一个模块是通信服务器模块,它负责完成数据转发以及共享数据结构的管理;主要是用户之间信息发送的转发问题,服务器接收到用户端发来的消息后,提取消息的一部分与共享数据结构存储的内容进行比较,确定所要转发的对象,最后通过多线程及其通信机制完成数据转发。
客户端这个模块,它的主要功能就是用户的注册,登陆,信息发送与附件的发送。
数据库模块,它记录了用户注册的基本信息,详细信息,并通过它来反馈给注册登陆服务器,验证用户是否已经注册,以及提取正确的信息;还有就是保存了用户间发送的信息与附件。

think58

[版权所有:http://think58.com]

[资料来源:THINK58.com]

                                           
图3-1层次图

think58

[版权所有:http://think58.com]

[资料来源:http://www.THINK58.com]

(二) 系统构架图 [资料来源:THINK58.com]

系统构架图是整个程序的关键所在,也是整个程序的灵魂,我们的设计就是按照这个整个的系统构架图所做的,它有着很重要的作用[6]。
下面这个就是我们设计的系统构架图:
  
图3-2系统构架图
用户进入程序后,启动注册/登录服务器,注册/登陆服务器接收到用户端的信息后,首先判断是注册信息还是登陆信息;应为用户首先必须要注册才能使用这个软件,所以启动注册界面,进入注册界面后,填写用户的基本信息,详细信息,通过注册登录服务器把数据传给数据库,如果注册成功则把数据存储到数据库中,如果注册不成功则给用户返回失败的消息框(期间有任何异常产生,服务器都会返回注册失败消息,提示用户重新注册),数据库要判断用户注册信息是否重复、是否符合标准,如成功,数据库更新数据库的内容并反馈给用户注册成功的消息,这样用户就可以根据刚才注册的信息到登录界面登陆进入到客户端的主界面,通过主界面用户可以通过通信服务器给相应的用户发送信息与附件。用户的信息发送是通信服务期通过访问共享数据结构,由共享数据结构控制转发用户所发的信息。 copyright think58

[资料来源:http://think58.com]

(三) IPO图 think58 [版权所有:http://think58.com]

IPO图是输入/处理/输出图的简称,它是美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据的关系,有了它,模块间的相互关系就显而易见了[1]。

think58.com [来源:http://www.think58.com]

[来源:http://www.think58.com]

输入                  处理                    输出
 图3-3 IPO图 [来源:http://www.think58.com]

就是输入用户注册信息,发送的信息与附件,登录信息等,写入数据库中,初始化数据与网络后,即初始化响应后,判断注册或登录,如信息发送则通过通信服务器转发用户发送的信息或附件,保存进入数据库中。

[版权所有:http://think58.com]

五、关键代码分析

[资料来源:http://think58.com]

完成总体设计和详细设计之后,我们需要把前面设计的“蓝图”用程序语言表示出来,这样才可以交付计算机进行执行。作为软件工程的一个环节,编程是设计的自然结果,因此,程序的质量主要取决于软件设计的质量。但是,程序设计语言的特性和编码途径也会对程序的可靠性、可读性、可维护性、可预测性产生深远的影响。 think58

[来源:http://www.think58.com]

(一)编码规则 [来源:http://think58.com]

源程序代码的逻辑简明清晰、易读易懂是程序好坏的一个重要标准,为了做到这一点,应该遵循下述规则:
1. 简单性原则,不要写一些过于灵活,不易理解的函数;
2. 适当的注释:这对于提高程序的可读写、可维护性非常有益,将大大减轻后继开发的压力;
3. 语句构造:每个语句都应该简单而直接,不能为了提高效率而是程序变得过分复杂。
4. 在设计和编写程序是因该仔细考虑输入/输出的方面。
5. 不要牺牲程序的清晰性和可读性来提高效率。 copyright think58

[来源:http://www.think58.com]

(二)多进程编程 [资料来源:http://THINK58.com]

多进程编程是UNIX的一个特点,并且多进程有很多的优点,下面就是多进程编程的一些优点:
1.并行化 ;
2.简单有序 ;
3.互不干扰 ;
4.事务化 。
(三)多线程技术
  
 我的代码设计涉及到了多线程技术,是通过多线程来实现我们这次的毕业设计,我们可以把线程看成是一个进程中的一个执行点,每个进程在任何给定时刻可能有若干个线程在运行。一个进程中的所有线程共享该进程中同样的地址空间,同样的数据和代码,以及同样的资源。进程中每个线程都有自己独立的栈空间,和其它线程分离,并且不可互相访问。
    在我们的设计里运用多线程技术就可以实现对多用户的支持。即在服务器端,使接收来自用户端的连接请求这步无限循环,每接收一个用户请求,产生两个线程(接收线程和发送线程),并且接收线程在创建后处于可执行状态,而发送线程则阻塞,等待服务器将其唤醒。这两个线程都执行一个无限循环的过程,只有当通信出现异常或用户端关闭连接时,线程才被自身所结束,并且,这两个线程一定是同时生成,同时结束的,也就是说必须是同步的。很显然,每个连接产生两个线程,使得数据转发变的简单,但同时又使得服务器的任务加重。 think58.com [来源:http://think58.com]

参 考 文 献

内容来自think58

[来源:http://think58.com]

[来源:http://www.think58.com]

[1]    海藩著,软件工程导论(第三版),出版单位:清华大学出版社,1998.1
[2]   Pavid J.Kruglinski 著 潘爱民 王国印译 VC++技术内幕(第四版)
    出版单位:清华大学出版社
[3]   侯俊杰著 深入浅出MFC(第二版),出版单位:华中科技大学出版社
[4]   萨师煊 王珊著,数据库系统理论(第三版) 出版单位:高等教育出版社 think58.com [资料来源:www.THINK58.com]