C++可视化-----QQ群聊系统

目  录

第二章       概要设计 

第三章       详细设计 

第四章       测试报告 

第五章       安装及使用   

第六章       项目总结 

  1. 需求分析

写这个是看着视频写出来的,项目完全出于兴趣,这个项目可以模拟我们日常生活中使用的QQ聊天室,此外还新增了更换字体等功能。

  1. 概要设计

利用QT实现简易版QQ群聊系统,程序由两个界面组成:好友列表以及聊天室。

C++可视化-----QQ群聊系统_第1张图片

 

C++可视化-----QQ群聊系统_第2张图片

 

  1. 详细设计

主要功能包括:

群聊功能、在线人数更新、用户上下线提示、变换不同的字体效果:不同的字体、字号以及加粗、倾斜、下划线、改颜色、保存聊天记录、清空聊天记录。

核心功能群聊功能的实现是利用UDP,绑定端口号、绑定模式、共享地址,断线重连

 

对于信息的发送与接收,都是将信息分成三段处理:类型、用户名、具体内容。其中的类型是创建了三个枚举型分三种不同的情况:正常发送消息、新用户加入消息、用户离开消息。

 

对于发送消息有以下代码实现:

C++可视化-----QQ群聊系统_第3张图片

 

首先创建QByteArray型变量承接信息,然后用QDataStream流发送前两段消息。接着判断类型,如果是正常发送消息,首先要判断用户是否输入内容,若为空,发出警告,若不空,将消息加入到流中。另外两种情况在发送端时没有操作。

对于接收消息有以下代码实现

C++可视化-----QQ群聊系统_第4张图片

 

接收消息将消息解析成三段,即类型、用户名、内容,根据不同类型作出不同的处理。对于普通聊天,将用户名和内容写入流中然后追加到聊天记录记录。对于新用户加入或用户离开,先将用户名加入流中,然后分别利用usrEnter和usrLeft两个函数进行处理。

C++可视化-----QQ群聊系统_第5张图片

 

处理新用户加入:首先更新右侧TableWidget然后追加聊天记录、更新在线人数,最后把自身信息广播出去,最后一步很重要,没有最后一步会出现一端显示新用户加入信息而另一端不显示的情况。

C++可视化-----QQ群聊系统_第6张图片

 

处理用户的离开同样是更新右侧TableWidget然后追加聊天记录、更新在线人数。

除了核心功能群聊的实现,还有一些小功能:

C++可视化-----QQ群聊系统_第7张图片

C++可视化-----QQ群聊系统_第8张图片 

 

  1. 测试报告

经过多次的调试修改代码,程序能够顺利实现预期的功能。

【填写说明:包括测试报告和技术指标。为了保证作品质量,建议多进行测试,并将测试用例、测试过程、测试结果、修正过程或结果形成文档,也可以将本标题修改为主要测试,撰写主要测试过程结果及其修正;根据测试结果,形成多维度技术指标,包括:运行速度、安全性、扩展性、部署方便性和可用性等。本部分简要说明即可,减少常识性内容。】

  1. 安装及使用

点击运行即可

  1. 项目总结

第一次学着做项目,一路学着做下来很累但是很充实,收获了很多,不只是新知识,还有改bug的能力(狗头)。让我对编程学习有了进一步的了解和更深层次的理解。后续如果有时间,我会进一步完善项目,比如增加一个qq登录界面等等。

你可能感兴趣的:(c++,开发语言)