基于C#+MySQL实现(WinForm)个人聊天室软件

♻️ 资源

大小: 15.5MB

➡️ 资源下载: https://download.csdn.net/download/s1t16/87484808https://download.csdn.net/download/s1t16/87484808

个人聊天室软件

需求分析与概要设计

1. 项目说明

1.1. 项目目标:

本项目目标完成一个可以实现多个不同主题的在线聊天室的桌面应用,用户可以在不同的聊天室中交流不同的话题。用户在登录后可以选择聊天室、查看聊天室人数以及选择用户私聊等。

1.2. 软硬件环境需求

软件是基于.net framework 4.7.2 开发,数据库为 Mysql8.0.24

1.3. 使用的关键技术:

软件基于 Socket 编程,C/S 架构风格开发。客户端通过发送指令得到服务器的返回信息。

2. 需求分析

2.1. 系统用例

图 1 系统用例图

(1) 登录

参与者:普通用户、管理员

基本事件流:用户或者管理员在登录的时候先选择登录身份。输入账号和密码后核验其账户是否存在以及密码是否匹配,若匹配则用户登录进入用户主界面,管理员登录进入管理主界面,否则提示用户不存在或者密码错误。

(2) 创建聊天室

参与者:普通用户、管理员

基本事件流:用户和管理员在创建聊天室的时候需要标明此聊天室的主题以便于有不同兴趣爱好的用户进行交流。

(3) 选择聊天室聊天

参与者:普通用户

基本事件流:用户登录后进入主界面可以浏览各个聊天室的主题以及在线人数,然后根据用户个人的兴趣爱好选择进入聊天室。进入聊天室用户可以在公共聊天室发消息也可以选择用户私聊。

(4) 禁言

参与者:管理员

基本事件流:管理员对个别发表引战、谩骂攻击、违法等言论的用户实施禁言以管理应用,具体禁言时间根据具体情况而定。

(2) 删除聊天室

参与者:管理员

基本事件流:部分公共聊天室的主题可能存在违法乱纪的行为以及可能存在聊天室成员公开讨论违禁话题,需要管理员对此类聊天室进行查封删除。

2.2. 业务流程

图 2 用户使用流程图

3. 概要设计

3.1. 功能模块设计

图 3 功能模块图

(1) 用户注册

功能概述:用户可以申请注册账号并设置密码,然后应用将其信息存入到数据库中。而管理者的账号和密码由开发者统一分配。二者存储在同一数据库中,并设置标志标记此账号信息是普通用户还是管理者账户。

(2) 用户登录

输入:账号和密码

输出:是否匹配

功能概述:用户或者管理者登录时输入账户和密码,然后和数据库中的信息作对比,如果对比成功就显示登录成功进入主界面,否则将提示账号不存在或者密码错误。

(3) 禁言违规用户

输入:用户登录的套接字

结果:被禁言用户在一定时间内无法发送信息

功能概述:由于存在发表引战言论、谩骂攻击以及其他违法乱纪行为的用户,管理员需要对该用户进行禁言。禁言的方式为根据违法言论者的套接字找到对应的用户,标记该用户为禁言。

(4) 创建聊天室

输入:聊天室主题、服务器套接字

结果:新建一个聊天室

功能概述:每一个聊天室需要一个服务器的端口进行监听信息,因此每次创建一个聊天室都需要查找并打开服务器中的空闲端口进行监听。此外,新建聊天室后,将聊天室的信息存储到数据库中。

(5) 删除违规聊天室

输入:违规聊天室的 id

结果:违规聊天室被删除

功能概述:在数据库中查找到违规聊天室 id 对应的聊天室信息,得到该聊天室的服务器端口后,将该聊天室信息移除出数据库,最后释放该聊天室的端口。

(6) 消息提醒

功能概述:客户端在监听捕获来自服务端的消息后,对用户进行提醒。

(7) 查看消息记录

输入:聊天室的 id

输出:该聊天室的消息记录

功能概述:客户端监听到的信息会被自动存储到本地数据库以方便用户查看,通过聊天室的 id 可以查询到信息的发送用户和发送时间。

3.2. 核心类图

图 4 核心类图

4. 界面设计

图 5 服务端界面

图 6 登录界面

图 7 客户端主界面

图 8 聊天界面

相关推荐
kybs19914 小时前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
Polevne9 小时前
C# SFTP客户端实现文件传输
c#·ssh
samble9 小时前
从零搭建灌装监控系统(四):深色主题与样式系统,ResourceDictionary 统一管理
c#·wpf·mvvm·样式·工业控制
cjp56010 小时前
024 . WPF MVVM类封装优化
c#
淡海水21 小时前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
asdzx671 天前
如何使用 C# 提取 PPT 文本与图片
c#·ppt·提取文本
2501_930707781 天前
使用C#代码使用条件格式为 Excel 隔行设置颜色
c#·excel
何以解忧唯有撸码1 天前
【开源】c#造个轮子-日程安排工具
c#·自定义控件
周杰伦fans1 天前
CAD菜单栏和工具栏都不见了,怎么显示?
其他·c#