欢迎来到天天文库
浏览记录
ID:25308434
大小:799.50 KB
页数:16页
时间:2018-11-19
《基于mfc的在线聊天系统课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、操作系统实验报告15一概要设计3.1系统体系结构本系统由教注册、登陆和聊天等部分组成。注册模块主要完成用户信息的提交,登陆模块用于验证操作者的信息,聊天模块主要包括群聊、私聊,刷新在线用户列表、显示其他用户发送的信息、发送信息给其他用户、上传下载资源等(未实现)。系统体系结构如下图所示:开始注册信息提示用户已被注册提交服务器审核未通过通过完成注册成功(注册模块)15开始登录完成判断提示“用户名或密码错误”未通过通过(登录模块)15开始选择是否开启音乐是开启音乐软件否选择聊天方式指定私聊对象私聊发送信息/接受信息群聊是否退出否结束退出是(聊天模块)153.1
2、系统的设计与实现3.2.1数据库设计本系统主要采用以下数据库表:个人信息表 个人信息表主要存储用户的一些基本注册信息,其中包括用户名和密码字段,主要用于用户系统对用户的识别。具体内容见表1: 表1个人信息表字段类型及长度备注用户名varchar(50)主键密码varchar(50)不能为空真名varchar(50)可为空年纪varchar(50)可为空性别varchar(50)可为空职业varchar(50)可为空 3.2.2模块实现3.2.2.1注册模块的实现²注册用户首次使用该系统应该先完成注册。按照系统提示的步骤,逐步完成注册后即可登录该系统,使
3、用该系统。3.2.2.2登陆模块的实现²登录用户凭借已经注册的用户名和密码登陆该系统。3.2.2.3聊天模块的实现²群聊私聊用户点击界面上的群聊或私聊按钮即可和他人进行聊天。15²听音乐用户点击听音乐的按钮,可打开音乐软件进行听音乐。²刷新在线用户列表和显示别人发来的信息当有人登陆是可以自动刷新登陆列表,当有人发送信息时,会显示信息。²上传下载(暂未实现)用户可以点击上传或下载按钮,把电脑资源上传或从服务器下载资源,而且用户可点击修改按钮,实现上传信息的修改。 15一详细设计4.1用户进行通信用户按照界面提示进行交流,通过MFC的SOCKET编程实现客
4、户端与服务器的数据传输,下面通过流程图和主要代码段详细说明设计过程:(通信流程图)因此只要安装了客户端,连接了客户端后即可与其他人进行通信。实现客户端主要:下面一段代码是对套接字的初始化:CLoginDlgdlg;15intnRet=-1;nRet=dlg.DoModal();//此成员函数用来显示一个模态对话框。其返回值对应于用来关闭对话框的控件的ID。switch(nRet){caseIDOK:m_pMySocket=newCMySocket(this);if(!m_pMySocket->Create())//创建套接字{deletem_pMySock
5、et;m_pMySocket=NULL;AfxMessageBox("创建套接字失败!");return;}if(!m_pMySocket->Connect(dlg.m_strIP,dlg.m_nPort))//连接服务器{deletem_pMySocket;m_pMySocket=NULL;AfxMessageBox("连接服务器失败!");return;}m_sUsername=dlg.m_strUserName;//连接成功后发送登录消息Packetpacket;memset(&packet,0,sizeof(Packet));//清零packet.
6、type=LOGIN_REQUEST;strcpy(packet.username,dlg.m_strUserName);strcpy(packet.password,dlg.m_strPassword);m_myname=dlg.m_strUserName;UpdateData(false);15m_pMySocket->Send(&packet,sizeof(Packet));//send功能向窗口发送指定的消息并立即执行相应的事件处理程序。break;OnPaint();//绘图函数voidCChatClientDlg::OnButtonLogin(
7、)//响应登陆函数,用于客户端登录voidCChatClientDlg::OnReceive()//接收服务器发送过来的消息并作出反应voidCChatClientDlg::OnButtonLogout()//退出按钮响应函数CChatClientDlg::OnButtonRegister()//响应注册按钮具体内容参考源代码。4.1用户界面设计该系统中,用户所接触的所有界面均是使用MFC内置的对话框完成设计的。运用对话框而不使用菜单栏的理由是:对话框更人性化,用户打开界面后即可通过一系列的按钮和其他控件明白怎么实现该页面内的内置功能。虽说这样实现起来很好
8、,但是由于时间原因,在优化系统界面可以说还不够完善,界面有点单调,
此文档下载收益归作者所有