基于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 聊天界面

相关推荐
泛凡(Linyongui)12 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
暴走约伯13 小时前
【VFX工具链源码拆解 02】告别机械劳动(上):一键统改百个子粒子颜色与批量重命名
3d·unity·c#·材质
信息安全失业大专人员15 小时前
每日了解一个智能体-WorkBuddy
开发语言·ai·c#·智能体
呆呆敲代码的小Y15 小时前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
淡海水16 小时前
09-01-内存-Unity资源生命周期全景
unity·c#·游戏引擎·.netcore·gc
椒颜皮皮虾྅19 小时前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda
昂好的day20 小时前
C# 同步异步与多线程:Thread / Task / 线程池一次讲透(上篇)
开发语言·windows·c#
吃一碗粉只付一碗钱1 天前
12-给SPA友好的401和403响应
c#·状态模式
caimouse1 天前
MonoDevelop 编译用户应用程序时调用的是哪个编译器
c#
will_net2 天前
apollo 站点部署&C#接入
开发语言·c#·apollo