admin 管理员组

文章数量: 1184232


2023年12月24日发(作者:c语言snprintf函数)

操作系统

实验报告

一 概要设计

3.1 系统体系结构

本系统由教注册、登陆和聊天等部分组成。注册模块主要完成用户信息的提交,登陆模块用于验证操作者的信息,聊天模块主要包括群聊、私聊,刷新在线用户列表、显示其他用户发送的信息、发送信息给其他用户、上传下载资源等(未实现)。系统体系结构如下图所示:

开始

注册信息

未通过

提交服务

器审核

通过

注册成功

完成

( 注册模块 )

1

提示用户已

被注册

开始

登录

(登录模块 )

判断

未通过

提示“用户名或密码错误”

通过

完成

2

开始

选择是否

开启音乐

选择聊天方式

群聊

发送信息/接受

信息

是否退出

开启音乐软件

私聊

指定私聊对象

(聊天模块)

3

退出

结束

3.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.2.2.2

登陆模块的实现

 登录

用户凭借已经注册的用户名和密码登陆该系统。

3.2.2.3

聊天模块的实现

 群聊 私聊

用户点击界面上的群聊或私聊按钮即可和他人进行聊天。

4

 听音乐

用户点击听音乐的按钮,可打开音乐软件进行听音乐。

 刷新在线用户列表和显示别人发来的信息

当有人登陆是可以自动刷新登陆列表,当有人发送信息时,会显示信息。

 上传下载(暂未实现)

用户可以点击上传或下载按钮,把电脑资源上传或从服务器下载资源,而且用户可点击修改按钮,实现上传信息的修改。

5

二 详细设计

4.1 用户进行通信

用户按照界面提示进行交流,通过MFC的SOCKET编程实现客户端与服务器的数据传输,下面通过流程图和主要代码段详细说明设计过程:

(通信流程图)

因此只要安装了客户端,连接了客户端后即可与其他人进行通信。

实现客户端主要:

下面一段代码是对套接字的初始化:

CLoginDlg dlg;

6

int nRet = -1;

nRet = l();//此成员函数用来显示一个模态对话框。其返回值对应于用来关闭对话框的控件的ID。

switch(nRet)

{case IDOK:

m_pMySocket = new CMySocket(this);

if(!m_pMySocket->Create())//创建套接字

{

delete m_pMySocket;

m_pMySocket = NULL;

if(!m_pMySocket->Connect(dlg.m_strIP, dlg.m_nPort))//连接服务器

{

}

m_sUsername = dlg.m_strUserName;

// 连接成功后发送登录消息

Packet packet;

memset(&packet, 0, sizeof(Packet));//清零

= LOGIN_REQUEST;

delete m_pMySocket;

m_pMySocket = NULL;

AfxMessageBox("连接服务器失败!");

return;

}

AfxMessageBox("创建套接字失败!");

return;

strcpy(me, dlg.m_strUserName);

strcpy(rd, dlg.m_strPassword);

m_myname=dlg.m_strUserName;

UpdateData(false);

7

m_pMySocket->Send(&packet, sizeof(Packet));//send 功能向窗口发送指定的消息并立即执行相应的事件处理程序。

break;

OnPaint();//绘图函数

void CChatClientDlg::OnButtonLogin() //响应登陆函数,用于客户端登录

void CChatClientDlg::OnReceive()//接收服务器发送过来的消息并作出反应

void CChatClientDlg::OnButtonLogout() //退出按钮响应函数

CChatClientDlg::OnButtonRegister() //响应注册按钮

具体内容参考源代码。

4.2 用户界面设计

该系统中,用户所接触的所有界面均是使用MFC内置的对话框完成设计的。运用对话框而不使用菜单栏的理由是:对话框更人性化,用户打开界面后即可通过一系列的按钮和其他控件明白怎么实现该页面内的内置功能。虽说这样实现起来很好,但是由于时间原因,在优化系统界面可以说还不够完善,界面有点单调,因此在后期的制作中会着重考虑界面优化。下面通过几个界面向读者展示本系统的某些界面:

(用户登陆界面)

8

(注册)

9

(聊天界面)

10

三 主要功能测试及截图

3.1用户注册

点击注册后,连接服务器,把注册信息添加到服务器端的数据库中,完成注册。

3.2用户登陆

11

点击连接后,发送用户名和密码到服务器。服务器端在数据库中查找,如果匹配,用户登陆成功,否则返回用户名或密码不正确。

3.3 聊天界面

12

用户发送信息给服务器。服务器通过判断发送方式选择是把信息显示给所有人,还是把信息显示给特定用户。

13

14

四 源代码

(见附件)

15


本文标签: 用户 注册 系统