Skip to content

IronmanJay/NetworkDiskSystemProjectBasedOnCPlusPlus

Repository files navigation

一、项目资源下载

  1. 基于C++的网盘系统项目源码CSDN下载地址
  2. 基于C++的网盘系统项目源码GitHub下载地址

二、项目简介

  本项目基于C++开发,整个项目采用C/S架构,使用Sqlite3数据库存储用户信息,本地磁盘存储用户文件,使用Socket进行客户端和服务器之间的数据传输。完成了网盘中关于用户的几乎所有功能,包括:用户注册、用户登录、用户退出、查看在线好友、搜索好友、添加好友、刷新在线好友、删除好友、私聊、群聊等等;关于文件夹和文件的所有功能也几乎完成了,包括:创建文件夹、查看所有文件、删除文件夹、重命名文件夹、进入文件夹、返回上一级、上传文件、删除文件、下载文件、分享文件、移动文件等等。本项目的完成度非常高,包括了这么多功能,自然代码数也非常多,代码多不是问题,因为我写的非常详细,详细到每一步我都有解释,各位读者一定可以看懂。另外,为了方便读者学习,且本着开源精神,我已经将我写好的源码分享在上面了。此项目作为本科毕设或者写在简历上也不失为一个好的选择。此项目花费了我大量精力和时间,前前后后写了两个多月,希望读者可以收获满满,下面就开始学习吧!


三、项目开发软件环境

  • Windows 11
  • Qt Creator 4.11.1 (Community)
  • C++ 98
  • Gcc 3.4.5

四、项目开发硬件环境

  • CPU:Intel® Core™ i7-8750H CPU @ 2.20GHz 2.20 GHz
  • RAM:24GB
  • GPU:NVIDIA GeForce GTX 1060

五、项目演示

5.1 用户注册

  1. 当我们启动两个项目后,输入用户名和密码最后点击“注册”,发现提示我们注册成功了: 请添加图片描述

  2. 然后我们来到数据库查看数据,发现新的注册信息已经保存到数据库中了: 请添加图片描述

  3. 如果此时我们还是以同样的用户名去注册,就会提示我们注册失败,因为数据库中已经有同名的用户名了,而我们设置用户名字段唯一,所以注册会失败: 请添加图片描述

5.2 用户登录

  1. 启动两个项目,当我们使用已经在数据库中存在的用户,并且此用户的“online”字段为0的时候,是可以成功登陆的: 请添加图片描述

  2. 当我们尝试使用数据库中不存在的用户登陆时,是不可以成功登录的: 请添加图片描述

5.3 用户退出

  1. 启动两个项目,使用某一个用户登录,然后查询数据库,发现此用户的“online”字段为1,说明已经成功登陆了: 请添加图片描述

  2. 然后点击关闭按钮,模仿用户退出行为: 请添加图片描述

  3. 此时再来数据库查询,就发现对应用户的online字段已经变为了0,说明此用户已经成功退出了: 请添加图片描述

5.4 查看在线好友

  1. 同时启动多个客户端,然后分别登陆进去,点击“显示在线用户”按钮,可以发现在线的用户的用户名已经成功显示了: 请添加图片描述

5.5 搜索好友

  1. 启动两个项目后,当我们搜索用户“abc”的时候,发现可以成功展示其用户名和状态: 请添加图片描述

5.6 添加好友

  1. 打开两个客户端和一个服务器后,发现被加用户可以正常弹出窗口: 请添加图片描述

  2. 当我们点击“Yes”后,发现可以已经成功添加好友了,并且数据库中也已经保存了两个用户的好友关系: 请添加图片描述

5.7 刷新在线好友

  1. 分别启动服务器和客户端并登陆后,我们点击“刷新好友”按钮,发现此时可以将最新在线的好友列表显示出来了: 请添加图片描述

5.8 删除好友

  1. 分别启动服务器和有好友关系的两个客户端,点击“删除好友”按钮后就可以成功删除两个用户之间的好友关系了,并且可以显示提示: 请添加图片描述

5.9 私聊

  1. 启动服务器和两个客户端进行测试,发现可以正常进行聊天消息的传递: 请添加图片描述

5.10 群聊

  1. 启动项目后,发现可以正常发送群聊信息: 请添加图片描述

5.11 创建文件夹

  1. 可以成功在用户名同名的目录下新建文件夹 请添加图片描述

5.12 查看所有文件

  1. 当我们点击“图书”界面的“刷新文件”,就可以显示此文件夹内所有的文件了: 请添加图片描述

5.13 删除文件夹

  1. 当我们选中文件夹后点击“删除文件夹”后,就会弹出删除成功的提示,然后当我们点击“刷新文件”后,就会发现原来的被删除文件夹已经不存在了: 请添加图片描述

5.14 重命名文件夹

  1. 选中某个待重命名的文件,然后输入重命名后的文件名称: 请添加图片描述

  2. 当我们点击“刷新文件”后,可以发现已经成功重命名文件了: 请添加图片描述

5.15 进入文件夹

  1. 当我们双击某个文件夹的时候就可以进入到此文件夹: 请添加图片描述

5.16 返回上一级

  1. 当我们点击“返回”的时候,可以从子目录返回到主目录: 请添加图片描述

5.17 上传文件

  1. 选中本地某个文件进行上传: 请添加图片描述

  2. 可以发现,文件已经成功上传了: 请添加图片描述

5.18 删除文件

  1. 我们可以选中某个文件,然后点击“删除文件”: 请添加图片描述

  2. 当我们再次“刷新文件”后,就会发现选中的文件已经被我们删除了: 请添加图片描述

5.19 下载文件

  1. 选中服务器的某个文件进行下载: 请添加图片描述

  2. 可以发现,已经下载成功了: 请添加图片描述

5.20 分享文件

  1. 首先启动一个服务端和两个客户端,在两个客户端上点击“刷新好友”,要先刷新好友,才能对好友进行分享文件的操作: 请添加图片描述

  2. 然后将“rose”用户下的“hello”文件夹进行分享: 请添加图片描述

  3. 选择“lucy”后,点击“确定”: 请添加图片描述

  4. 此时两个客户端都有相应的提示了,我们只需要点击接收端的“Yes”: 请添加图片描述

  5. 然后点击“lucy”用户客户端的“刷新文件”,可以看到“rose”用户的“hello”文件夹及其文件夹中的内容已经成功拷贝到“lucy”用户的文件目录中了: 请添加图片描述

5.21 移动文件

  1. 首先选择要移动的文件,然后点击“移动文件”: 请添加图片描述

  2. 然后选择要移动文件的目标目录后,点击“目标目录”: 请添加图片描述

  3. 当我们进入移动文件的目标目录查看后,发现文件已经移动到目标目录了: 请添加图片描述

六、更多细节

  更多细节请见:基于C++的网盘系统项目开发教程

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published