大学
计算机工程学院
《Linux 程序设计》
验收报告
选题名称: 基于线程通信技术聊天室的设计与实现
姓 名: 学 号:
专业班级:
系 (院): 计算机工程学院
设计时间:
指导教师评语:
签名:
年 月 日
成绩:
班级:软件 4213 学号:2021140764 姓名: 李晓鹏 日期:2022 年 11 月 5 日
第 - 1 - 页 共 13 页
1.题目:基于线程通信技术聊天室的设计与实现
学号: 分工:编写需求分析、设计服务器端代码
学号: 分工:编写设计内容、设计客户端代码
学号: 分工:编写总体设计、设计连接服务器与客户端代码
2.设计内容:
项目意义:在如今的社会环境下,人与人之间的沟通交流越来越广泛,信息之间的交流沟通也越来
越多,所以聊天软件作为人与人之间交流的重要工具也很正常,而且具有着重要的意义和必要性。现在
这个时代已经出现了许多用来信息沟通的网站和软件,人们已经习惯于使用互联网广域网进行沟通,但
局域网内的交流依然存在且必要。但是由于互联网的范围太大,安全系数低,所以局域网小型网络,安
全性很高,在当前社会中人们对于隐私的保密需求越来越高,信息的安全性便显得尤为重要,所以也很
受大家欢迎。
主要功能:该项目是基于线程的通信技术聊天室,启动服务器后用户可以在客户端连接登录,取名
后加入群聊聊天,加入群聊后用户可以自由发言,此项目满足多个用户聊天的需求,同时,当用户的好
友上线时可以提示用户好友已上线,当好友下线的时候,用户也可以第一时间知道。
3.课程设计目的:
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《Linux 程序设计》
课程后进行的一次全面的综合练习。本课程设计的目的和任务:
(1)巩固和加深学生对 Linux 程序设计课程的基本知识的理解和掌握;
(2)掌握基于 Linux 的软件开发过程中编程和程序调试的基本技能;
(3)利用 Linux 系统提供的 API 进行简单软件设计的基本思路和方法;
(4)提高在 Linux 环境下解决实际问题的能力;
(5)掌握书写程序设计说明文档的能力。
本次课程设计利用《Linux 程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和
工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,使学生能够独立完成所布置的任务。
4.设计要求:
1) 设计题目、设计要求以及系统功能需求分析;
2) 总体设计:包括模块说明、模块结构图和系统流程图;
3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;
4) 源程序代码及设计成果:完整源程序清单和设计成果;
5) 总结: 调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程中存在问题的思考
(列出主要问题的出错现象、出错原因、解决方法及效果等)包括设计过程中的学习体会与收获、对本
班级:软件 4213 学号:2021140764 姓名: 李晓鹏 日期:2022 年 11 月 5 日
第 - 2 - 页 共 13 页
次课程的认识等内容;
5.设计详细说明
(1)需求分析
A.应用需求分析:本软件简单易用,并且占用资源少,包含局域网聊天软件的主要功能。根据局域网
聊天软件的特点,该软件主要需要实现的就是即时通讯功能,其需要体现出用户的用户名,IP 地址,当
前状态等信息,主要功能就是实现服务器端与客户端之间的通信,并能实时更新用户的信息。
B.运行需求分析:硬件条件:主频 1.7GHzCPU、1G RAM、10G ROM、具有局域网的 PC 计算机;软件条
件: Windows 10。
C.功能性需求:本项目的主要功能如下:
(1)用户注册
a.用户在客户端注册自己的昵称,登陆 ID;
b.客户端将数据发送至服务器;
c.服务器将数据保存至服务器的数据库中;
(2)用户聊天
a.连接服务器;
b.进入群聊;
c.即时聊天;
(3)服务器消息广播
服务器可以对局域网内所有在线的用户发送自定义的广播消息。
(4)保存聊天记录
用户聊天时,会将聊天记录保存至本地,以供随时查看。
D.产品非功能性需求
(1)界面美观,简洁,易操作。
(2)系统容易维护,稳定。
(3)平台配置要求较低。
E.产品可添加的功能
若时间允许,可能添加的功能如下:
(1)界面美观
(2)聊天字体的改变
(3)用户资料修改
(4)好友分组
(5)产品主题界面的更改
班级:软件 4213 学号:2021140764 姓名: 李晓鹏 日期:2022 年 11 月 5 日
第 - 3 - 页 共 13 页
(6)好友消息的查看
(7)视频聊天
(8)语音聊天
F.其他需求分析:
(1)可实现跨平台操作。
(2)设备产品应当遵循的标准和规范。
(3)产品遵循微软软件设计模范标准。
(4)代码遵循 C++代码标准模范。
(5)该系统具备的条件有可维护性、可靠性、可理解性、效率等。方便使用者的认识和操作。可维护
性包括可读性、可测试性等。可靠性包括正确性和健壮性等。在开发过程中,应克服不利因素与限制的
条件(费用、时间、适合的软、硬件资源等),尽量满足以上各方面需求。
(2)总体设计
本次课程设计是在 Linux 环境下基于 Socket 进行开发的。聊天室应该由系统服务器和客户端组成。
服务端程序通过共享存储区存储聊天数据,并发送给每个连接的客户端。通过多路复用的子进程实现服
务端与多个客户端之间的数据发送与接收。可以在单机上将两个该接口分别运行客户、服务器的程序。
经 linux 下的 gcc 调试成功,就可以实现简单的群聊效果。
该程序分为客户端和服务器。客户端和服务器通讯方式是通过 QTcpSocket 类和 QTcpSocket 类完成。
客户端提供用户界面,有注册、登录、聊天三个功能。
服务器也提供简单的用户界面,方便管理员查看每个用户的信息。服务器主要的功能监听客户端发
来的请求并进行客户端相应模块的处理后进行响应,服务器在初始化时还需要连接数据库,用来记录用
户的信息。
以下分别是该系统的系统结构图、发送信息流程图、发送方流程图以及接收方流程图。
图 1 系统结构图