当前位置: 首页 > wzjs >正文

可以做外链网站网站建设好后有些什么资料

可以做外链网站,网站建设好后有些什么资料,湛江网站建设维护,能建商城安全文件传输系统项目报告(第 9 周) 1. 代码链接 Gitee 仓库地址:https://gitee.com/li-zhen1215/homework/tree/master/Secure-file 代码结构说明: project-root/├── src/ # 源代码目录│ ├── main.c # 主程序入口│ ├…

安全文件传输系统项目报告(第 9 周)

1. 代码链接

Gitee 仓库地址:https://gitee.com/li-zhen1215/homework/tree/master/Secure-file

代码结构说明:

project-root/├── src/ # 源代码目录│ ├── main.c # 主程序入口│ ├── db/ # 数据库操作│ ├── gui/ # 图形界面│ └── utils/ # 工具函数模块├── include/ # 头文件├── lib/ # 动态库静态库├── docs/ # 文档目录├── Makefile # 自动编译└── README.md # 项目说明

1、完成用户登录注册界面

  • 注册功能
    用户首次进行注册时,会显示注册成功信息
    在这里插入图片描述

在这里插入图片描述
当用户名存在时,系统会提示注册失败,当前用户已存在。
在这里插入图片描述

  • 登录功能
    输入注册成功的用户名密码,和数据库中的数据匹配后会显示登录成功。
    在这里插入图片描述
    数据库文件在项目的Debug文件中
    在这里插入图片描述
    由于使用的是SQlite,不需要安装和配置服务器。SQLite 是一个嵌入式数据库,它直接将数据库存储在一个单独的磁盘文件中,不需要运行独立的服务器进程。

database.h

#ifndef DATABASE_H
#define DATABASE_H#include <QString>
#include <QSqlDatabase>class Database {
public:static Database& instance();bool registerUser(const QString &username, const QString &password);bool verifyUser(const QString &username, const QString &password);private:Database();QSqlDatabase db;
};#endif // DATABASE_H

database.cpp

#include "database.h"
#include <QSqlQuery>
#include <QSqlError>
#include <QVariant>
#include <QDebug>Database::Database() {db = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("user.db");if (!db.open()) {qDebug() << "无法打开数据库:" << db.lastError();}QSqlQuery query;query.exec("CREATE TABLE IF NOT EXISTS users (""id INTEGER PRIMARY KEY AUTOINCREMENT, ""username TEXT UNIQUE, ""password TEXT)");
}Database& Database::instance() {static Database instance;return instance;
}bool Database::registerUser(const QString &username, const QString &password) {QSqlQuery query;query.prepare("INSERT INTO users (username, password) VALUES (?, ?)");query.addBindValue(username);query.addBindValue(password);return query.exec();
}bool Database::verifyUser(const QString &username, const QString &password) {QSqlQuery query;query.prepare("SELECT * FROM users WHERE username = ? AND password = ?");query.addBindValue(username);query.addBindValue(password);query.exec();return query.next();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QWidget>
#include <QLineEdit>
#include <QPushButton>class MainWindow : public QWidget {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);private slots:void login();void registerUser();private:QLineEdit *userLineEdit;QLineEdit *passLineEdit;
};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "database.h"
#include "mainpage.h"
#include <QVBoxLayout>
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {userLineEdit = new QLineEdit(this);passLineEdit = new QLineEdit(this);passLineEdit->setEchoMode(QLineEdit::Password);QPushButton *loginBtn = new QPushButton("登录", this);QPushButton *registerBtn = new QPushButton("注册", this);QVBoxLayout *layout = new QVBoxLayout(this);layout->addWidget(userLineEdit);layout->addWidget(passLineEdit);layout->addWidget(loginBtn);layout->addWidget(registerBtn);connect(loginBtn, &QPushButton::clicked, this, &MainWindow::login);connect(registerBtn, &QPushButton::clicked, this, &MainWindow::registerUser);Database::instance();  // 初始化数据库
}void MainWindow::login() {QString username = userLineEdit->text();QString password = passLineEdit->text();if (Database::instance().verifyUser(username, password)) {QMessageBox::information(this, "登录成功", "欢迎," + username);this->hide();MainPage *page = new MainPage();page->show();} else {QMessageBox::warning(this, "登录失败", "用户名或密码错误!");}
}void MainWindow::registerUser() {QString username = userLineEdit->text();QString password = passLineEdit->text();if (Database::instance().registerUser(username, password)) {QMessageBox::information(this, "注册成功", "可以登录了!");} else {QMessageBox::warning(this, "注册失败", "用户名已存在!");}
}

2、用户登录界面

用户登陆成功后,可在主界面进行文件管理,上传或下载文件。
在这里插入图片描述
mainpage.h

#ifndef MAINPAGE_H
#define MAINPAGE_H#include <QWidget>class MainPage : public QWidget {Q_OBJECTpublic:MainPage(QWidget *parent = nullptr);private slots:void uploadFile();void downloadFile();
};#endif // MAINPAGE_H

mainpage.cpp

#include "mainwindow.h"
#include "database.h"
#include "mainpage.h"
#include <QVBoxLayout>
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {userLineEdit = new QLineEdit(this);passLineEdit = new QLineEdit(this);passLineEdit->setEchoMode(QLineEdit::Password);QPushButton *loginBtn = new QPushButton("登录", this);QPushButton *registerBtn = new QPushButton("注册", this);QVBoxLayout *layout = new QVBoxLayout(this);layout->addWidget(userLineEdit);layout->addWidget(passLineEdit);layout->addWidget(loginBtn);layout->addWidget(registerBtn);connect(loginBtn, &QPushButton::clicked, this, &MainWindow::login);connect(registerBtn, &QPushButton::clicked, this, &MainWindow::registerUser);Database::instance();  // 初始化数据库
}void MainWindow::login() {QString username = userLineEdit->text();QString password = passLineEdit->text();if (Database::instance().verifyUser(username, password)) {QMessageBox::information(this, "登录成功", "欢迎," + username);this->hide();MainPage *page = new MainPage();page->show();} else {QMessageBox::warning(this, "登录失败", "用户名或密码错误!");}
}void MainWindow::registerUser() {QString username = userLineEdit->text();QString password = passLineEdit->text();if (Database::instance().registerUser(username, password)) {QMessageBox::information(this, "注册成功", "可以登录了!");} else {QMessageBox::warning(this, "注册失败", "用户名已存在!");}
}

3、遇到的问题

问题1:识别不到内嵌UI文件

  • 现象:在QT程序中,无法识别内嵌的UI文件,无法启动UI
  • 原因:QT配置资源文件和路径名不匹配
  • 解决:确保UI文件的路径和名称在代码中正确引用。如果使用了资源文件(.qrc),检查资源文件的路径和前缀是否正确。例如,如果资源文件中定义了prefix=“/icons”,则在代码中引用资源时需要使用":/icons/yourfile.png"

问题2:SQlite在Ubuntu中无法使用

  • 现象:sqlite在qt中无法使用
  • 原因:没有加载SQlite插件
  • 解决
    通过下面命令安装插件
sudo apt-get install libqt5sql5-sqlite

在Qt项目文件(.pro文件)中,确保添加了SQL模块:

QT += sql

将qsqlite插件文件复制到应用程序的运行目录或sqldrivers目录下。

cp /path/to/qt/plugins/sqldrivers/libqsqlite.so /path/to/your/application/sqldrivers/

清理并重新构建项目

qmake
make clean
make

5. 提交报告文档要求

Markdown 文档

  • 本报告使用 Markdown 编写,文件名为 姓名学号_项目名称_第 XX 周.md
  • 包含代码块、图片链接、列表等标准语法。

转换为 PDF

  • 工具:使用 VS Code 插件 Markdown PDF 或在线工具 Pandoc。
  • 步骤
    # 命令行转换示例
    pandoc project-report.md -o project-report.pdf --pdf-engine=xelatex
    

文章转载自:

http://LNoqrB8R.wjLhp.cn
http://BUuD08nw.wjLhp.cn
http://AyjhOzg3.wjLhp.cn
http://3GyCpmuL.wjLhp.cn
http://hCAD4ZcE.wjLhp.cn
http://0QCrihON.wjLhp.cn
http://4eBBHcDe.wjLhp.cn
http://4Gc65xWX.wjLhp.cn
http://h7gho8Mn.wjLhp.cn
http://JQXi5y4O.wjLhp.cn
http://oTqQiAns.wjLhp.cn
http://jWGyXRXF.wjLhp.cn
http://Nhd30LSN.wjLhp.cn
http://nYLJlhvX.wjLhp.cn
http://Mztzobm9.wjLhp.cn
http://ki4gw2XM.wjLhp.cn
http://BhXJ2RCH.wjLhp.cn
http://qRBv8guS.wjLhp.cn
http://ofAAh4z3.wjLhp.cn
http://wAN7p5ol.wjLhp.cn
http://SfWl7FRn.wjLhp.cn
http://EiFAtVyr.wjLhp.cn
http://ywIhWWuD.wjLhp.cn
http://pomMewGL.wjLhp.cn
http://L3H1OFXC.wjLhp.cn
http://Bxj44ToM.wjLhp.cn
http://wmlZN5FM.wjLhp.cn
http://uWrIEjuG.wjLhp.cn
http://89T6LJ5X.wjLhp.cn
http://DqejQ6LU.wjLhp.cn
http://www.dtcms.com/wzjs/667850.html

相关文章:

  • 广州建设网站哪个好计算机培训班哪些好
  • 网站建设需要的软件是什么平江外贸推广软件
  • 河南建设网站公司简介电商软件开发费用
  • 建设银行深圳分行网站计算机专业主要学什么学科
  • 多少钱算网站营销策略制定
  • 筑巢网络官方网站网站权重多少比较好
  • 建立网站如何给自己的公司建网站
  • 学校网站怎么做的好软件开发制作平台
  • 登封网站设计百度站长平台怎么用
  • 长春网站设计哪里设计公司vi
  • 小程序登录不上去怎么办河源市seo推广
  • 做盗版音乐网站做网站哪家公司比较好而且不贵
  • 容桂销售型网站建设手机网站图片切换特效
  • 仿站视频教程网页登陆界面怎么做
  • 网站的营销方案金塔凯元建设集团有限公司官方网站
  • 一个服务器可以做两个网站门户网站怎么创建
  • 资源站建站技术杭州制作网站企业
  • 深圳华南城网站建设我想在百度上发布广告怎么发
  • h5个人网站代码上海品牌营销咨询公司
  • 手机网站 生成app公司做网站可以用个人域名
  • 宏润建设集团有限公司网站重庆建筑信息网官网
  • 温州联科网站建设中国成熟iphone
  • 如何网站建设团队如何做好网络营销管理
  • 开发区网站开发语言免费送网站
  • 关于网站的建设论文户外网站模板
  • 嘉兴网站建设正规公司有没有找项目的网站
  • 西安网站建设官网wordpress登录页面自定义
  • 网站建设的培训心得网站的优化
  • 国内免费域名注册网站网站内容维护有哪些方面
  • 广州建网站要多少钱手机上怎么做网站创业