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

Posted dearQiHao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05——驾校科目一考试系统——验证账号密码相关的知识,希望对你有一定的参考价值。

文章目录

账号密码信息

开始

回到登录的槽函数。

完整代码


#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;
        
    


运行

正确输入

错误输入

将密码框进行隐藏

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

运行结果

下一篇

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

以上是关于05——驾校科目一考试系统——验证账号密码的主要内容,如果未能解决你的问题,请参考以下文章

00——QT学习笔记以及项目实战目录

驾校科目一考试——登录窗口的功能(验证邮箱地址)

04——驾校科目一考试——登录窗口的功能(验证邮箱地址)

驾校科目一考试系统——需求分析

01——驾校科目一考试系统——需求分析

基于java的驾校驾照在线考试系统