大赛程序设计文档qq传情Word格式文档下载.docx
- 文档编号:21721722
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:11
- 大小:216.49KB
大赛程序设计文档qq传情Word格式文档下载.docx
《大赛程序设计文档qq传情Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大赛程序设计文档qq传情Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
1)选择服务器的IP和端口号;
2)注册,用户ID和密码必须为10位数字;
3)与指定的ID用户聊天或传输文件;
4)与所有的在线用户聊天;
5)修改账号密码。
6)编辑对话传情密码策略;
7)混合字符串支持标准ASCⅡ码0x00—0x7F范围内的所有符号;
8)支持多行文本信息发送;
9)支持文本文件传输加密;
10)提供文件传输配套的消息反拆与组合机制。
(2)服务器
1)查询、添加、修改、删除用户的基本信息;
2)接受客户端发送的信息并发送给指定的用户或发送给所有的用户;
3)限定在线人数最大为10人;
4)当用户尝试多个终端登陆时,关闭旧的终端。
5)提供服务器端的消息暂存机制;
6)支持文件传输的缓存。
三、项目组织:
系统结构
四、系统框架设计
1、服务器及客户端程序设计
2、客户端和服务器之间通信
五、消息机制设计
1、注册成功,消息如图:
2、服务器设置
3、登陆账号为空
4、账号位数不正确
5、密码位数不正确
6、密码错误
7、有好友上线或下线
8、用户上线消息提醒
9、有用户下线
10、修改密码成功
11、当前上线人数
12、是否接收文件
六、核心算法
1、客户端:
Enter.h和Ener.cpp(登陆界面)
intCALLBACKChat:
:
CalDlgProc(HWNDhwnd,UINTmeassage,WPARAMwParam,LPARAMlParam)/*调用登陆对话框中的函数*/
利用switch和case实现调用,每完成一项返回;
switch(meassage)
{
caseWM_INITDIALOG:
/*初始化对话框*/
caseWM_COMMAND:
/*调用事件函数*/
}
caseIDC_BUTTON_REGISTER:
//点击注册按钮,进入注册界面
caseIDC_BUTTON_ENTER:
//登陆按钮,发送信息到服务器
caseIDCANCEL:
//关闭窗口
caseIDC_BUTTON_SERVER:
//获取登陆界面上的服务器设置信息
Register.h和Register.cpp(注册信息界面)
caseIDC_BUTTON_OK:
//获取界面上的注册信息并发送给服务器
caseIDC_BUTTON_CLOSE:
//关闭窗口
Chat.h和Chat.cpp(聊天窗口)
caseIDC_LIST_FRIEND:
/*选中在线好友栏中的好友*/
caseIDC_BUTTON_GROUP:
/*发送群聊信息*/
caseIDC_BUTTON_SEND:
/*向在线好友发送信息*/
caseIDC_CODE:
/*设置新密码*/
/*关闭对话框*/
DWORDWINAPIChat:
RecvProc(LPVOIDlParameter)
retval=recvfrom(sock,(char*)&
recvInfo,sizeof(Information),0,(SOCKADDR*)&
addrFrom,&
len);
/*接收服务器发来的数据*/
switch(recvInfo.operation)/*operation代表接收到的数据操作类型*/
{
caseOP_LOG//登录
caseOP_REG//注册
caseOP_RECV//接收
caseOP_SEND//发送
caseOP_GROUP//群聊
caseOP_ADD//有好友上线
caseOP_QUIT//有好友下线
caseOP_CLOSE//有同一账号在不同地点登陆
caseOP_MAXUSER//达到最大人数
caseOP_EDIT//有用户修改密码
caseOP_NONLINE//用户不存在
caseOP_SENDFILE//发送文件
caseOP_RECV_YN//是否接收文件
caseOP_SAVEFILE14//保存临时文件
}
voidChat:
Invertedorder(charm_code[MAX_MSG_LENGTH])//倒序编码
RailFence(charm_code[MAX_MSG_LENGTH])//栅栏编码
Keyboard(charm_code[MAX_MSG_LENGTH])//QWE键盘编码
Cellphone(charm_code[MAX_MSG_LENGTH])//手机键盘编码
MorseCode(charm_code[MAX_MSG_LENGTH])//摩尔斯编码
CodeSelect(charm_selectindex[MAX_MSG_LENGTH],charm_code[MAX_MSG_LENGTH])//根据编码策略中的选项选择相应的编码策略
staticboolChartobyte(charm_code[MAX_MSG_LENGTH],BYTEall_byteindex[MAX_MSG_LENGTH]);
//将char数组转化成01二进制流
staticboolBytetochar(charm_code[MAX_MSG_LENGTH],BYTEall_byteindex[MAX_MSG_LENGTH]);
//二进制流转换成char数组
2、服务器:
ServerWnd.h和ServerWnd.cpp
caseIDCANCEL:
//关闭服务器界面,并将注册用户的信息写入“user.txt”文件中。
caseIDC_FIND:
//查询用户信息
caseIDC_REWRITE:
//修改用户信息
caseIDC_DELETE:
//删除用户信息
caseIDC_SERVER:
//设置服务器的IP和端口号
caseWM_SOCKET:
//如果接受服务器的信息信息,调用SocketProc函数
LRESULTCALLBACKServer:
SocketProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam)//对接收到的数据进行相关操作的函数
caseFD_READ:
//根据接收到的信息进行相关操作,包括:
用户注册,用户登录,用户下线,用户修改密码,用户异地登陆,用户文件发送等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大赛 程序设计 文档 qq 传情