1、 基于QT的邮箱收发系统的设计与实现概要设计总页数26正文23附录0生效日期2013-12-23编制批准南昌航空大学东软班 概要设计修 改 履 历修改编号日期修改人版本号修改内容1VER0.1.0初撰目 录1文档概述41.1文档目的和范围41.2术语/缩略语41.3参考文档42模块概述42.1模块功能定义.52.1.1 UI_Control模块.52.1.2 ClientSocket模块.52.1.3 ServerSocket模块.62.1.4DataBase模块.62.2模块结构.72.2.1 UI_Control模块.72.2.2 ClientSocket模块.82.2.3 ServerS
2、ocket模块.92.2.4DataBase模块.102.3模块动作时序.113接口说明.123.1数据结构定义.123.2函数.123.2.1模块间接口函数.123.2.2模块内接口函数.191 文档概述1.1 文档目的和范围该文档主要完成的是对整个项目模块的划分和模块间接口的设计,为项目开发人员的详细设计提供依据。1.2 术语/缩略语序号术语/缩略语说明1Socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。2UI_Control界面交互模块3ClientSocket客户端模块4ServerSocket服务器模块5Database数据库模块,存储相关数据1.3 参考文档
3、序号文档名作者时间版本1基于QT的邮箱收发系统需求分析报告书吴奎2013-12-16Ver 0.1.02 模块概述本项目是用比较常见的B/S架构来设计的,分为客户端和服务器两大模块。其中客户端又分为界面交互模块和客户端通信模块,服务器模块分为服务器通信模块和数据库模块。界面交互模块负责界面的显示以及与用户的交互;客户端通信模块负责将用户操作产生的消息传送至服务器上以及接收服务器传来的消息;服务器通信模块负责接收客户端传送的消息并且根据消息类型进行相应的处理,再将处理的结果传送给对应的客户端。数据库模块负责存储和提供系统中生成的信息,并对这些信息进行管理。 2.1 模块功能定义2.1.1UI_C
4、ontrol模块序号功能点功能点详细内容1登录界面用户通过登录界面通过输入用户名和密码登录邮箱2注册界面新用户注册新的邮箱账号3邮箱主界面显示邮箱的主要信息,包括收件箱、发件箱、垃圾箱等4编写邮件界面用户编写新的邮件5查看邮件界面查看完整的邮件信息6添加附件在邮件中添加文档、图片、声音、视频等7管理邮件用户对自己邮箱内的邮件进行增删查改等操作8邮件搜索可以查找用户需要查看的邮件9最近联系人显示最近来往的邮箱号,方便发送邮件10名片设置用户设置自己的信息以便好友了解11字体设置设置字体的颜色和大小12添加表情编写邮件内容可以插入动态的表情13界面换肤更改界面的主题和背景色2.1.2ClientS
5、ocket模块序号功能点功能点详细内容1登录邮箱输入账号和密码登录邮箱,登录的信息将发送至服务器并接受返回结果。2注册邮箱建注册的信息发送至服务器并等待服务器返回的结果3收取邮件接收服务器返回的已读和未读邮件标题等相关信息4发送邮件将邮件内容和收件人地址等信息发送至服务器并接收返回结果5查看邮件将帐号和邮件ID等信息发送至服务器并接收返回的邮件内容等信息6名片设置将名片中修改的内容项发送至服务器并接收返回的结果7邮件搜索将帐号和搜索关键字等信息发送至服务器并接收返回的搜索结果内容8删除邮件将要删除或彻底删除的帐号和邮件ID等信息发送至服务器并接收返回的结果,彻底删除的不会进垃圾箱。9恢复邮件将
6、垃圾箱中未彻底删除的邮件恢复的信息发送至服务器并接收返回的结果2.1.3ServerSocket模块序号功能点功能点详细内容1接收信息接收客户端的请求,比如登录、注册、收取邮件、删除邮件等2发送信息对客户端发送来的消息进行相应的处理并返回结果给客户端2.1.4Database模块序号功能点功能点详细内容1登录检测用户登录时检测用户的账号和密码是否正确2用户状态变换用户登录或退出时,更换数据库表中用户的当前状态3增加用户将新注册的用户信息加入数据库表4发送邮件将邮件的所有相关信息存储到数据库表中5转发邮件若数据库中邮件被取出,并已经发送,做标记6删除邮件删除没有用的邮件,节约存储空间7更改用户I
7、P和端口当用户登陆时存储用户ip和端口,用于与服务器通信8保存附件当有附件时,建立文件夹存储附件并记录其与邮件id的关联2.2 模块结构2.2.1 UI_Control模块模块名称模块类型概要说明MessagePack内部模块对发送的消息进行打包MessageUnpack内部模块对接收到的消息进行解包ReceiveMsg内部模块接收服务器信息ThreadProcess内部模块线程处理接收到的信息2.2.2 ClientSocket模块模块名称模块类型概要说明ClientSend接口客户端通信发送函数ClientReceive接口客户端通信接收函数ClientInit内部模块Socket初始化S
8、etSender_Msg内部模块设置发送方IP和端口SetReceiver_Msg内部模块设置接收方IP和端口2.2.3 ServerSocket模块模块名称模块类型概要说明ServerSend内部模块服务器端通信发送函数ServerReceive内部模块服务器端通信接收函数ServerInit内部模块Socket初始化ThreadProcess内部模块服务器端处理函数GetServerIp内部模块获取服务器IP2.2.4 DataBase模块模块名称模块类型概要说明AddMailInfo接口增加邮件信息AddUserInfo接口增加用户信息DeleteMailInfo接口删除邮件信息setU
9、serOnline接口设置用户状态CheckUserPwd接口检查用户密码DataBaseInit接口初始化数据库ModifyUserInfo接口修改用户信息SetMailFlag接口修改邮件标志2.3 模块动作时序3 接口说明3.1 数据结构定义#define INT8U quint8#define INT16U quint16#define INT64U quint64#define STRING QString#define SUCC 1#define ERR 0#define SYS_ON 11#define SYS_OFF 12#define SYS_LOGIN_SUCC 13#de
10、fine SYS_LOGIN_ERR 14#define SYS_REGISTER_SUCC 15#define SYS_REGISTER_ERR 16#define SYS_REQUEST 17#define USR_LOGIN 31#define USR_REGISTER 32#define USR_GETMAIL 33#define USR_NOTREAD_MAIL 34#define USR_RECEIVE_MAIL 35#define USR_SENDED_MAIL 36#define USR_DELETED_MAIL 373.2 函数3.2.1 模块间接口函数3.2.1.1 Cli
11、entSend函数名ClientSend文件名./ClientSocket.cpp功能概要客户端发送信息记述形式INT8U ClientSocket:ClientSend( QByteArray *datagram, STRING ReceiverIP, INT16U ReceiverPort)参数类型变量名I/O说明QByteArraydatagram-传入的数据数组指针STRINGReceiverIP-传入的服务器IPINT16UReceiverPort-传入的服务器端口返回值类型INT8U说明值SUCC发送成功ERR发送失败详细说明客户端发送信息函数,给用户界面交互时使用使用注意事项无3
12、.2.1.2 ClientReceive函数名ClientReceive 文件名./ClientSocket.cpp功能概要客户端信息接收函数记述形式INT8U ClientSoclet:ClientReceive(QByteArray *datagram)参数类型变量名I/O说明QByteArraydatagram-存储接收到的数据返回值类型INT8U说明值SUCC接收成功ERR接收失败详细说明接收函数给客户端界面交互调用,接收的数据再被处理使用注意事项无3.2.1.3 AddMailInfo函数名AddMailInfo文件名./DataBase.cpp功能概要增加邮件信息记述形式bool
13、DataBase:AddMailInfo(Mail mail)参数类型变量名I/O说明Mailmail-传入Mail类对象返回值类型bool说明值true正常结束false异常结束详细说明当服务器收到发送邮件标志时处理函数调用该函数使用注意事项传入参数的类型3.2.1.4 AddUserInfo函数名AddUserInfo文件名./DataBase.cpp功能概要增加用户信息记述形式bool DataBase:AddUserInfo(User user)参数类型变量名I/O说明Useruser-传入用户信息类对象返回值类型bool说明值true正常结束false异常结束详细说明当服务器收到新用
14、户注册标志时处理函数调用该函数使用注意事项传入参数的类型3.2.1.5 DeleteMailInfo函数名DeleteMailInfo文件名./DataBase.cpp功能概要删除邮件信息记述形式bool DataBase:DeleteMailInfo(INT16U mailId)参数类型变量名I/O说明INT16UmailId-邮件标志返回值类型bool说明值true正常结束fasle异常结束详细说明服务器处理删除邮件时调用该函数使用注意事项无3.2.1.6 SetUserOnline函数名SetUserOnline文件名./DataBase.cpp功能概要更改用户在线状态记述形式bool
15、DataBase:SetUserOnline( STRING userName, INT8U userStatus)参数类型变量名I/O说明STRINGuserName-传入用户邮箱帐号INT8UuserStatus-传入状态值返回值类型bool说明值true正常结束false异常结束详细说明当收到用户登陆成功信息时调用该函数使用注意事项无3.2.1.7 CheckUserPwd函数名CheckUserPwd文件名./ DataBase.cpp功能概要验证用户帐号和密码记述形式bool DataBase: CheckUserPwd ( STRING userName, STRING passw
16、ord)参数类型变量名I/O说明STRINGuserName-传入用户邮箱帐号STRINGpassword-传入用户邮箱密码返回值类型bool说明值true正常结束false异常结束详细说明用户登陆时服务器进行验证使用注意事项无3.2.1.8 DataBaseInit函数名DataBaseInit文件名./ DataBase.cpp功能概要数据库初始化记述形式bool DataBase: DataBaseInit ()参数类型变量名I/O说明-返回值类型bool说明值true正常结束false异常结束详细说明服务器启动开始调用该函数使用注意事项无3.2.1.9 ModifyUserInfo函数
17、名ModifyUserInfo文件名./ DataBase.cpp功能概要修改用户信息记述形式bool DataBase: ModifyUserInfo ( STRING username, User newUser)参数类型变量名I/O说明STRINGuserName-传入用户邮箱帐号UsernewUser-传入用户信息对象返回值类型bool说明值true正常结束false异常结束详细说明用户更改名片操作时数据库模块调用该函数处理使用注意事项无3.2.1.10 SetMailFlag函数名SetMailFlag文件名./ DataBase.cpp功能概要更改邮件标志记述形式bool Data
18、Base:SetMailFlag ( STRING userName, INT8U mailStatus)参数类型变量名I/O说明STRINGuserName-传入用户邮箱帐号INT8UmailStatus-传入邮件标志返回值类型bool说明值true正常结束false异常结束详细说明邮件已转发送至用户邮箱,更改邮件标志使用注意事项无3.2.2 模块内接口函数3.2.2.1 MessagePack函数名MessagePack文件名./Message.cpp功能概要打包要发送的消息记述形式INT8U Message:MessagePack(QByteArray *datagram)参数类型变量名
19、I/O说明QByteArray *datagramI打包后存储的数据数组指针返回值类型INT8U说明值SUCC正常结束ERR异常结束详细说明将要传送的数据全部打包在一起发送使用注意事项无3.2.2.2 MessageUnpack函数名MessageUnpack文件名./Message.cpp功能概要解包要接收到的消息记述形式INT8U Message:MessageUnpack(QByteArray *datagram)参数类型变量名I/O说明QByteArray *datagramI传入需要解包的数据数组指针返回值类型INT8U说明值SUCC正常结束ERR异常结束详细说明从包中解出需要的单个
20、数据域使用注意事项无3.2.2.3 ClientThreadProcess函数名run文件名./ThreadProcess.cpp功能概要客户端接收处理函数记述形式void ThreadProcess:run()参数类型变量名I/O说明-返回值类型void说明值-详细说明客户端接收处理函数,注意与服务器端的区分使用注意事项无3.2.2.4 ReceiveMsg函数名ReceiveMsg文件名./xmailmainwidget.cpp功能概要客户端接收信息记述形式void xmailMainWidget:ReceiveMsg()参数类型变量名I/O说明-返回值类型void说明值-详细说明客户端接
21、收的信息使用注意事项无3.2.2.5 ClientInit函数名ClientInit文件名./ClientSocket.cpp功能概要客户端socket初始化记述形式INT8U ClientSocket:ClientInit()参数类型变量名I/O说明-返回值类型INT8U说明值SUCC正常结束ERR异常结束详细说明用套接字通信前对套接字进行初始化使用注意事项无3.2.2.6 SetSender_Msg函数名SetSender_Msg文件名./ClientSocket.cpp功能概要套接字发送方IP和端口设置记述形式INT8U ClientSocket:SetSender_Msg( STRIN
22、G senderIP, INT16U senderPort)参数类型变量名I/O说明STRINGsenderIP发送方IPINT16UsenderPort发送方端口返回值类型INT8U说明值SUCC正常结束ERR异常结束详细说明无使用注意事项无3.2.2.7 SetReceiver_Msg函数名SetReceiver_Msg文件名./ClientSocket.cpp功能概要套接字发送方IP和端口设置记述形式INT8U ClientSocket: SetReceiver_Msg ( STRING receiverIP, INT16U receiverPort)参数类型变量名I/O说明STRING
23、receiverIP接收方IPINT16UreceiverPort接收方端口返回值类型INT8U说明值SUCC正常结束ERR异常结束详细说明无使用注意事项无3.2.2.8 GetServerIP函数名GetServerIP文件名./ServerSocket.cpp功能概要获取服务器IP记述形式STRING ServerSocket: GetServerIP()参数类型变量名I/O说明-返回值类型STRING说明值serverip服务器IP地址详细说明服务器端口已固定,自动获取服务器所在主机的IP地址使用注意事项无3.2.2.9 ServerInit函数名ServerInit文件名./ Serv
24、erSocket.cpp功能概要服务器端socket初始化记述形式void ServerSocket: ServerInit ()参数类型变量名I/O说明-返回值类型void说明值-详细说明无使用注意事项无3.2.2.10 ServerSend函数名ServerSend文件名./ ServerSocket.cpp功能概要客户端发送信息记述形式INT8U ServerSocket:ServerSend( QByteArray *datagram, STRING ReceiverIP, INT16U ReceiverPort)参数类型变量名I/O说明QByteArray *datagram传入需发
25、送的数据数组指针STRINGReceiverIP接收数据的客户的IPINT16UReceiverPort接收数据的客户的端口返回值类型INT8U说明值SUCC正常结束ERR异常结束详细说明这里的IP和端口均是要接收该数据的用户使用注意事项无3.2.2.11 ServerReceive函数名ServerReceive文件名./ ServerSocket.cpp功能概要服务器接收信息记述形式INT8U ServerSocket:ServerReceive(QByteArray *datagram)参数类型变量名I/O说明QByteArray *datagram传入需发送的数据数组指针返回值类型IN
26、T8U说明值SUCC正常结束ERR异常结束详细说明服务器不断接收客户端发送过来的数据使用注意事项无3.2.2.12 ServerThreadProcess函数名run文件名./ThreadProcess.cpp功能概要服务器端接收处理函数记述形式void ThreadProcess:run()参数类型变量名I/O说明-返回值类型void说明值-详细说明用线程处理不断接收到的信息,但注意与客户端的处理函数区分使用注意事项无目 录第1章总 论31.1.项目背景与概况31.2.主要技术经济指标71.3.问题与建议8第2章项目投资环境与市场研究92.1.投资环境分析92.2.区域房地产市场分析112.
27、3.销售预测152.4.营销策略19第3章建设规模与项目开发条件213.1.建设规模213.2.项目概况现状213.3.项目建设条件22第4章建筑方案264.1.设计依据264.2.项目设计主题和开发理念264.3.项目总体规划方案274.4.建筑设计284.5.结构设计294.6.给排水设计30第5章节能节水措施325.1.设计依据325.2.建筑部分节能设计32第6章环境影响评价336.1.编制依据336.2.环境现状336.3.项目建设对环境的影响346.4.环境保护措施34第7章劳动卫生与消防357.1.指导思想357.2.职业安全卫生健康对策与措施357.3.消防设计36第8章组织机
28、构与人力资源配置388.1.组织机构388.2.人力资源配置38第9章项目实施进度399.1.项目开发期399.2.项目实施进度安排399.3.项目实施过程控制措施39第10章项目招投标4110.1.工程项目招标投标概述4110.2.工程项目招标投标因素分析4210.3.招标依据4410.4.招标范围4410.5.招标方式44第11章投资估算与资金筹措4511.1.投资估算4511.2.资金筹措45第12章财务评价4712.1.项目评估依据4712.2.财务评价基础数据的选择4712.3.财务评价4712.4.不确定性分析48第13章社会评价4913.1.项目对社会的影响分析4913.2.风险分析5013.3.社会评价结论51第14章研究结论与建议5214.1.可行性研究结论5214.2.建议52