Linux 大作业
局域网聊天室
项目组成员列表
课序号学号姓名班级任务分工
组员02201192网1103客户端代码,详细设计02201192软1113引言需求分析概要设计,界面代码02201192软1113服务器,客户端代码,总结02201192软1113文档参与
大连理工大学
Dalian University of Technology
目录
引言4
4
1.2 项目目标4
1.3与同类产品的比较4
1.4 开发工具及环境4
需求分析5
2.1功能需求5
一:登录功能需求5
二:聊天功能需求5
三:异常提示5
2.2非功能需求5
一:响应时间需求5
二:界面友好需求6
三:占用内存大小需求6
2.3系统设计6
一:数据流图6
三:用例图7
概要设计7
3.1登录模块7
一:设计目标及实现点7
二:模块结构设计8
三:流程及接口设计8
3.2客户端模块9
一:设计目标及实现点9
二:模块结构设计9
三:流程及接口设计10
3.3服务器模块12
一:设计目标及实现点12
二:模块结构设计12
三:流程及接口设计12
详细设计14
4.1登录模块14
一:文件一览14
二:函数概述14
三:函数调用关系15
4.2客户端模块15
一:文件一览15
二:函数概述15
三:函数调用关系17
4.3服务器模块17
一:文件一览17
二:函数概述18
三:函数调用关系19
效果展示19
总结22
参考文献23
引言
Linux环境下用QTcreator来实现本次软件的开发,QT内核版本基于最新5.2.1.
需求分析
2.1功能需求
一:登录功能需求
用户名填写:用户登陆聊天室前能进行名字填写,让别人识别自己的身份。
登陆:填写好用户名后点击登陆系统检查是否有重复用户名并返回结果,若登
录名不存在则正常登陆聊天室。
退出:放弃登陆,直接退出登陆界面。
二:聊天功能需求
发送信息:用户登录后能正常在程序中发送消息并使其他用户可见。
私聊:用户可以选择另外一个用户进行私聊。
字体设置:用户可以设置发送消息的字体,下划线,加粗,颜色等。
文件传输:用户可以指定一名其他的用户来发送自己的文件,而接收方可以拒
绝接收,若接受成功则给予正常提示。
用户显示:聊天用户列表显示所有用户的登录名及IP地址,用户离开或登陆时 聊天框给予提示。
三:异常提示
程序必须就聊天程序运行中出现的检测错误,发送失败等系统异常作出友好提示。
2.2非功能需求
一:响应时间需求
要求登录聊天程序时,软件响应时间不得超过两秒。
要求发送大文件时,软件给予响应时间提示。
二:界面友好需求
界面要求清晰,简单,易懂,易操作。
三:占用内存大小需求
要求程序占用内存较小,能持续稳定运行,不会造成死机等问题。
2.3系统设计
一:数据流图
数据流图大概流程:用户开始启动软件,用户进入登录界面,在次界面有用户名输入框,登录和退出按钮,用户输入自己的用户名点击登录,此时用户名会被提交,系统检测是否存在重名情况,若存在返回给用户信息,出现问题是用户得到提示后选择重新输入或者退出登录系统;成功登录后主聊天框界面后,会显示所有的用户名及IP地址,在这里用户可以选择发送群信息或者选择其他用户来发送自己的文件和私聊,出错是也会及时得到反馈信息。
三:用例图
概要设计
3.1登录模块
一:设计目标及实现点
本概要设计的目标是:明确功能分解后模块实现点。完成结构设计,包括确立合理的模块结构和构成,对重要数据结构相关的部分做概要设计:内部各组成部分的功能和划分。完全确定本模块的内外部接口。并对外针对系统设计中涉及本模块提出的需求和资源进行相关设计。
主要对应功能如下:输入用户名并检查用户名是否重复,不重复则登录。
实现点:
用户名输入。
登录系统。
退出登录窗口。
二:模块结构设计
内部BLOCK设计:
三:流程及接口设计
登录流程图:
登陆模块接口设计:
外部接口设计如下图所示:
NoI/F函数名称函数内容函数提供模块函数调用模块调用时机与频度参数说明返回值说明1void sendData(QString);向主窗口发送用户输入的登录名登录模块服务器模块用户登录时用户输入的登录名空值2void on_cancleButton_clicked();退出登录窗口登录模块用户点击退出按钮时无空值
3.2客户端模块
一:设计目标及实现点
主要实现功能:正常的接收消息,设置字体,接收文件。
实现点:
正常接收消息。
接收到其他人发送的文件。