be365体育在线投注_365BET能赢钱吗_手机365体育投注客户端Qt的银行模拟业务中心系统

Coquettish

发布日期: 2019-11-04 10:17:43 浏览量: 79
评分:
star star star star star star star star star_border star_border
*转载请注明来自write-bug.com

一、环境依赖

1.1 平台

  • Linux GUI界面下,安装Qt Creator(Qt 5)

  • 安装openSSL,根据openSSL安装版本及路径修改common.pri中openSSL库依赖路径

  • 支持c++ 14的编译器

    • g++ version >= 5
    • clang++ version > 3.4

然后Qt编译运行即可。

1.2 client

  • Qt 5.8

  • openSSL 1.0.2o_1

  • C++ 14 support

  • clang++

1.3 server

  • C++ 14 support

  • openSSL 1.0.2o_1

  • sqlite3

  • linux socket

  • clang++

二、特性

  • 使用C++ 14编写

  • 使用JSON提高协议的可扩展性

  • 使用ORM_LITE提高数据库的操作性

三、架构

主要使用Qt绘制GUI,通过socket发送序列化的json双端进行协议交互,使用sqlite存储数据,通过数据库ORM模型进行操作。

四、流程图

4.1 用户流程图

4.2 管理员流程图

五、数据结构

5.1 model

使用到的两个model类,并存入sqlite数据库中

5.1.1 UserModel

  • std::string uuid;

  • std::string username;

  • std::string password;

  • int balance;

  • int privilege;

  • long lastModifyTime;

5.1.2 OrderModel

  • std::string uuid;

  • int type;

  • int amount;

  • std::string out_account;

  • std::string in_account;

  • long record_time;

5.2 client

  • main: 程序入口

  • Client: 控制客户端socket,并进行SSL连接

  • Widget: 登录界面UI

  • StackWidget: 控制UI界面切换

  • UserLobby: 主界面UI

  • DetailWidget: 订单查询界面UI

  • UsersWidget: 用户管理界面UI

  • DialogUser: 用户创建、修改对话框UI

  • DialogPassword: 普通用户修改密码对话框UI

  • DialogOrder: 转账对话框UI

5.3 server

  • main: 程序入口

  • Server: 控制服务端socket,并进行SSL连接

    • int listeningSocket_; 监听客户端访问的socket
    • sockaddr_in serverAddr_; 地址信息
    • std::vector socketThreads_; 持有与各个客户端保持通信的线程
    • std::unordered_map sockets_; 持有用户名相对应的socket链接
    • size_t count_; 连接到服务器的客户端数
    • SSL 使用
      • SSL_METHOD *meth;
      • SSL_CTX *ctx;
      • SSL *ssl;
  • Dispatcher: 控制服务端路由转发后的业务逻辑

    • int connection_; 与dispatcher绑定的socket连接
    • std::string username_; 与socket连接绑定的用户名
    • Sean_Socket::Server *parent_; server指针,以访问server维护的在线列表

具体函数详见doxygen文档(html/annotated.html)。

六、结果验证

6.1 登录注册界面

登录

注册用户,注册用户权限为普通用户。

6.2 主界面

6.2.1 管理员主界面

6.2.2 用户主界面

6.2.3 用户修改密码

6.3 业务功能

6.3.1 充值

6.3.2 取款

6.3.3 转账

6.4 管理员功能

6.4.1 用户查询

所有用户

模糊查询

根据用户名进行模糊搜索,查询用户信息。

批量查询

根据最后操作时间进行搜索,查询用户信息。

6.4.2 管理员操作用户

创建新用户/新管理员账户

修改用户名或密码

删除用户

6.4.3 订单查询

根据用户名进行模糊搜索,查询订单信息。

上传的附件 cloud_download be365体育在线投注_365BET能赢钱吗_手机365体育投注客户端Qt的银行模拟业务中心系统.7z ( 3.93mb,?2次下载 )
error_outline 下载需要11点积分
eject