当前位置:首页 > (完整版)基于NET的在线聊天系统毕业论文
第4章 系统分析与设计
4.1 系统功能模块设计
按系统的功能需求分析,将系统功能模块分为两大模块:客户端功能模块和服务器端功能模块。
客户端功能模块包括:用户登录模块、用户注册模块、软件版权模块、显示好友模块、在线聊天模块、添加好友模块、删除好友模块;
服务器功能模块包括:服务器登录模块。
根据系统功能模块设计,系统的整体功能结构图如图4.1所示:
图4.1 系统整体功能结构图
4.2 系统模块详细设计
4.2.1 客户端功能模块设计
(1)用户注册。设计流程如下:输入要注册的用户名和密码,系统会检查用户名是否已经存在,如果不存在,就允许注册新用户并发回数据库自动生成的用户ID。模块流程图如图4.2所示:
图4.2 用户注册流程图
(2)用户登录。设计流程如下:首先判断服务器的端口号是否配置正确,然后判断输入的用户名和密码是否正确,正确就用户登录。模块流程图如图4.3所示:
图4.3 用户登录流程图
(3)滚动和通知区域图标。设计流程如下:在登录成功后,生成窗体的NotifyIcon图标和一个滚动的欢迎图标。
(4)显示好友。设计流程如下:在登录成功后,服务器将为用户对数据库的表进行映射获得在线好友的列表和离线好友的列表通过Socket套接字发送过去,显示好友模块在显示面板上显示好友。
(5)在线聊天。设计流程如下:先判断好友是否在线,进入聊天界面中写入发送的信息,通过服务器监听到发送好友消息在转发给好友,进行在线聊天,其还整合发送震动框提示功能、头像闪烁提示以及声音提示功能。模块流程图如图4.4所示:
图4.4 在线聊天模块流程图
(6)添加好友。设计流程如下:首先通过进行查询操作判断用户是否已经加过其好友,然后进行添加好友关系。模块流程图如图4.5所示:
图4.5 添加好友模块流程图
(7)删除好友。设计流程如下:首先通过进行查询操作判断用户是否是在操作自己的好友关系,然后判断是否是好友关系,如果是就删除好友关系。模块流程图如图4.6所示:
图4.6 删除好友模块流程图
4.2.2 服务器端功能模块设计
服务器端功能模块就是服务器监听模块:
服务器监听模块。设计流程如下:首先判断服务器的端口是否更该,配置好端口号开启服务器开始监听,监听到用户登录消息,客户端进行操作数据库验证,正确就建立Socket连接,并读取其在线好友列表和离线好友列表发送给客户端,当监听客户端进行各种操作,服务器端调用自身的监听处理方法进行处理并将结果或信息通过Socket发送给客户端。服务器监听模块流程图如图4.7所示:
图4.7 服务器监听模块流程图
4.3 系统整体流程图
在聊天系统的流程是用户在客户端登录,若用户名不存在,则需先注册用户信息,在注册完用户信息后,用户输入自己的帐号及密码登录系统,在用户登录成功后服务器端监听客户端发来的登陆消息,进行登录处理,验证数据库表中的数据进行对比以及该用户当前的状态,如果用户的账号和密码比对无错,再比对在线用户Hash表中是否已经登录,如果没有登录则建立Socket连接并更新在线用户Hash表,建立线程处理与用户的Socket连接操作,同时发送登录用户的在线好友列表和离线好友列表,用户成功登录后,进入好友显示模块,在在线好友界面中点击好友头像进入聊天界面,用户发送信息给在线好友,服务器监听到客户端通过Socket发过来的对好友进行聊天的消息,并截取Socket传输的数据流中的发送者要传输给接收者的消息,通过与接收者建立Socket连接,将数据写入其Socket传输数据中,实现数据的转发,同时用户对好友进行发颤抖框操作都是服务器接受其操作消息标识参数,在发给好友操作标识参数,然后其客户端就会调用其自身定义的该标识参数下的方法,聊天完毕,用户发送离线消息,服务器接受到其消息,关闭与其的Socket连接,更新在线用户Hash表以及在线用户的在线好友列表。
客户机服务器模式在操作过程中采取的是主动请示方式,首先服务器方要先启动,并根据请示提供相应服务:(过程如下)
1、服务器
(1)、打开一通信端口并告知本地主机,它愿意在某一个公认地址上接收客户请求。 (2)、等待客户请求到达该端口。
(3)、接收到重复服务请求,处理该请求并发送应答信号。 (4)、返回第二步,等待另一客户请求。 (5)、关闭服务器。 2、客户方:
(1)、打开一通信通道,并连接到服务器所在主机的特定端口。
(2)、向服务器发送服务请求报文,等待并接收应答;继续提出请求…… (3)、请求结束后关闭通信通道并终止。 聊天系统的系统流程图如图4.8所示:
图4.8系统整体流程图 图4.9 系统分布流程图
第5章 数据库设计
5.1 概述
数据库设计是指根据用户需求研制数据库结构并应用数据库的过程。一般,数据库的设计过程大致可分数据库设计为5个步骤:
1、需求分析:调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。
2、概念设计:对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。
3、逻辑设计:主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。 4、物理设计:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。
5、验证设计:在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修 改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。
5.2 数据库概念结构设计
数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这阶段可用的工具很多。用的最多的是E-R图(Entity-Relation,实体-关系图),另外还有许多计算机辅助工具(Computer
共分享92篇相关文档