05——驾校科目一考试系统——验证账号密码

简介: 账号密码信息

账号密码信息e6d9ed6ca3f74b92b6430fb62cc37f85.png

开始

回到登录的槽函数。

完整代码

#include "logindialog.h"
#include "ui_logindialog.h"
#include <QMessageBox>
#include <QFile>
#include <QTextStream>
LoginDialog::LoginDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::LoginDialog)
{
    ui->setupUi(this);
    ui->imgLabel->setScaledContents(true);
    resize(ui->imgLabel->width(),ui->imgLabel->height());
    //设置窗体固定大小,这样就不能用鼠标来调整界面大小了
    setFixedSize(width(),height());
    setWindowTitle("驾校科目一考试登录");
    setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
}
LoginDialog::~LoginDialog()
{
    delete ui;
}
void LoginDialog::on_loginBtn_clicked()
{
    //正则验证邮箱地址 用户名@域名 80808080@qq.com
    //元字符解释:^表示规则字符串的开始 $表示规则字符串的结束
    //+表示匹配次数≥1次 *表示匹配任意次数(可为0次) {n,m}表示匹配次数至少n次,至多m次
    QRegExp rx("^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$");
    bool res = rx.exactMatch(ui->accountEdit->text());
    if(!res){//匹配不成功
        QMessageBox::information(this,"提示","非法的邮箱地址,请你重新输入!");
        ui->accountEdit->clear();
        ui->codeEdit->clear();
        ui->accountEdit->setFocus();
        return;
    }else{
        QString filename;   //账号密码数据文件
        QString strAccInput;//用户输入的账号
        QString strCode;    //用户输入的密码
        QString strLine;    //每次读取的一行数据
        QStringList strList;//保存分割读取的一行数据
        filename = "account.txt";
        strAccInput = ui->accountEdit->text();
        strCode = ui->codeEdit->text();
        QFile file(filename);
        QTextStream stream(&file);
        if( file.open(QIODevice::ReadOnly | QIODevice::Text) )
        {
            while(!stream.atEnd()){
            strLine = stream.readLine();
            strList = strLine.split(",");
            if(strAccInput == strList.at(0))//账号匹配成功
                if(strCode == strList.at(1)){//密码匹配成功
                    QMessageBox::information(this,"提示","欢迎进入科目一考试系统!");
                    file.close();
                    done(Accepted);
                    return;
                }else{
                    QMessageBox::information(this,"提示","您输入的密码有误,请重新输入!");
                    ui->codeEdit->clear();
                    ui->codeEdit->setFocus();
                    file.close();
                    return;
                }
            }
            QMessageBox::information(this,"提示","您输入的账号有误,请重新输入!");
            ui->accountEdit->clear();
            ui->codeEdit->clear();
            ui->accountEdit->setFocus();
            file.close();
            return;
        }else{
            QMessageBox::information(this,"提示","读取账号数据文件失败!");
            return;
        }
    }
}

运行

正确输入ae676c7b148c4b0388e7f64efd635a83.png

错误输入

84df5e7c1bd44f42a5392ce59650f8f1.png

将密码框进行隐藏

回到设计模式,点击面框将其设为密码模式。

6d2801a74a0242e5aaae56be0d8941f7.png

运行结果

b98682a1736e439db817add1737fb74e.png

下一篇

驾校科目一考试系统——考试时间

目录
相关文章
|
关系型数据库 MySQL 数据库
MySQL数据库期末项目 图书馆管理系统(上)
MySQL数据库期末项目 图书馆管理系统
331 0
|
6月前
|
小程序 JavaScript Java
宿舍报修|宿舍报修小程序|基于微信小程序的宿舍报修系统的设计与实现(源码+数据库+文档)
宿舍报修|宿舍报修小程序|基于微信小程序的宿舍报修系统的设计与实现(源码+数据库+文档)
51 0
|
6月前
|
小程序 JavaScript Java
驾校预约|驾校预约小程序|基于微信小程序的驾校预约平台设计与实现(源码+数据库+文档)
驾校预约|驾校预约小程序|基于微信小程序的驾校预约平台设计与实现(源码+数据库+文档)
74 0
|
存储 关系型数据库 MySQL
MySQL数据库期末项目 图书馆管理系统(下)
MySQL数据库期末项目 图书馆管理系统(下)
120 0
|
6月前
|
设计模式
03——驾校科目一考试系统——登录界面(2)
运行项目——成功添加背景图 缺点:背景图片盖住了登录界面。
105 2
|
6月前
|
设计模式 数据安全/隐私保护
03——驾校科目一考试系统——登录界面(1)
双击ui文件进入设计模式。 想要把我们的登录窗口做成什么样的效果呢?理想效果图如下所示:用户需要一个账号和密码输入。最后还需要给用户两个按钮:一个登录按钮,一个取消按钮。
140 2
|
6月前
|
设计模式 编译器 数据安全/隐私保护
04——驾校科目一考试——登录窗口的功能(验证邮箱地址)
登录相应功能实现 当我们点击登录按钮的时候需要对账号和密码进行验证。我们需要提前准备好了所有学员的账号和密码信息account.txt。
56 2
|
6月前
11驾校科目一考试系统——发布项目
发布项目   当我们编写完项目之后就需要发布项目 。就需要发布项目了。一般发布项目的话我们会把所有需要的文件都放在一个文件夹里面,这样的话就更方便。有时候文件过多的话,有可能会有很多的子文件夹,我们先把功能工作目录设置一下,因为当前的工作目录是debug或者release,导致咱们在读取数据文件的时候需要相对路径的话还需要上一级目录去寻找。如下图所示。
42 1
下一篇
无影云桌面