基于Qt成绩管理系统实现

最近在进行Qt的学习,所以,动手制作了一个成绩管理系统,期间也参照其他博主的界面设计。

这款成绩管理系统的核心也是采用的c++。(因为本人在ui上的造诣不高,所以,这个系统的ui美观性可能不太好)

我们可以先分析我们这个系统的大体结构:(有几个功能我并没去实现它,但是并不影响整体性)

一、首先打开Qt,建立工程文件。我们首先,搭建登录界面设计,就采用Mainwindown这个基类。

(这里不知道怎样建立工程文件以及简单的背景布局的小伙伴 可以看看我之前的博客,可以参照的哦)

 这里解释一下,当我们输入账号密码后 ,选择管理员或学生会进入不同的界面。然后,了解系统前面的 ... 可以点击,显示:

 二、搭建管理员界面,这里的基类可以任意选择了,MainWindow、Widget...

 然后是各个功能的代码实现

成绩管理:

#include "addgrade.h"
#include "ui_addgrade.h"
#include<usersql.h>
#include<QMessageBox>
#include<QDebug>
#include<addmin.h>
Addgrade::Addgrade(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Addgrade)
{
    ui->setupUi(this);
}

Addgrade::~Addgrade()
{
    delete ui;
}

void Addgrade::on_pushButton_gengxincj_clicked()
{
    QString addId=ui->Id->text();
    QString addname=ui->name->text();
    QString addclass=ui->class_2->text();
    QString addGs=ui->gaoshu->text();
    QString addEg=ui->yingyu->text();
    QString addCom=ui->computer->text();
    QString addC=ui->C->text();
    QSqlQuery query;
    query.exec("select Id from grade");
    bool isExist=false;
    if(addId.isEmpty()||addname.isEmpty()||addclass.isEmpty()||addEg.isEmpty()||addGs.isEmpty()||addCom.isEmpty()||addC.isEmpty())
    {
        QMessageBox::information(this,"温馨提示","信息未修改!",QMessageBox::Ok);
    }
    while(query.next())
    {
        QString id=query.value(0).toString();
        if(id.compare(addId)!=0){
            QMessageBox::information(this, "警告", "该账号不存在!");
            isExist=false;
            break;
        }
        isExist=true;
    }

    if(!query.next()){
        isExist=true;
    }
    if(isExist){
        QString sql=QString("insert into grade(Id,name,class,gaoshu,Eg,Com,Cplus)values('%1','%2','%3','%4','%5','%6','%7')").arg(addId).arg(addname).arg(addclass).arg(addGs).arg(addEg).arg(addCom).arg(addC);
        query.exec(sql);
        QMessageBox::information(this, "温馨提示", "恭喜,学号:"+addId+"成绩更新成功");
        qDebug()<<addId+"成绩更新成功";
        this->close();
    }

}


void Addgrade::on_pushButton_cannal_clicked()
{
    this->close();
    Addmin *a=new Addmin;
    a->show();
}

 修改管理员:

#include "changeadmin.h"
#include "ui_changeadmin.h"
#include<usersql.h>
#include<QMessageBox>
#include<QDebug>
#include<addmin.h>

Changeadmin::Changeadmin(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Changeadmin)
{
    ui->setupUi(this);
}

Changeadmin::~Changeadmin()
{
    delete ui;
}

void Changeadmin::on_pushButton_add_clicked()
{
    QString addId=ui->username->text();
    QString addPassword=ui->password->text();
    if(addId.isEmpty()||addPassword.isEmpty())
    {
        QMessageBox::information(this,"提示!","输入不能为空!",QMessageBox::Ok);
    }
    QSqlQuery query;
    QString sql=QString("select username from admin");
    query.exec(sql);
    bool isExist=false;
    while(query.next())
    {
        QString id=query.value(0).toString();
        if(id.compare(addId)==0)
        {
            QMessageBox::information(this, "警告!", "该管理员已存在!");
            isExist=false;
            break;
        }
        isExist=true;
    }
    if(!query.next())
    {
        isExist=true;
    }
    if(isExist)
    {
        QString sql=QString("insert into admin(username,password)values('%1','%2')").arg(addId).arg(addPassword);
        query.exec(sql);
        QMessageBox::information(this, "温馨提示", "恭喜!管理员:"+addId+"添加成功");
        this->close();
    }
}


void Changeadmin::on_showadmin_clicked()
{
    QSqlQuery query;
    QString sql=QString("select username,password from admin");
    query.exec(sql);
    while(query.next())
    {
        QString showId=query.value(0).toString();
        QString showname=query.value(1).toString();
        ui->show->append("管理员:"+showId+"  "+"密码:"+showname);
    }
}

void Changeadmin::on_pushButton_del_clicked()
{
    QString deleteusername=ui->del_username->text();
    if(deleteusername=="")
    {
        QMessageBox::information(this, "警告", "您未输入想要删除的管理员");
        return;
    };
    QSqlQuery query;
    query.exec("select username from admin");
    bool isExist=false;
    while(query.next())
    {
        QString findusername=query.value(0).toString();
        if(findusername.compare(deleteusername)==0){
            QString sql=QString("delete from admin where username='%1'").arg(deleteusername);
            query.exec(sql);
            QMessageBox::information(this, "温馨提示", "恭喜!管理员:"+deleteusername+"删除成功");
            isExist=false;
            this->close();
            Addmin *a=new Addmin;
            a->show();
            break;
        }
        isExist=true;
    }
    if(isExist){
        QMessageBox::information(this, "警告", "抱歉!不存该管理员:"+deleteusername);
        ui->del_username->setText("");
    }
}



void Changeadmin::on_return_2_clicked()
{
    this->close();
    Addmin *a=new Addmin;
    a->show();
}

显示学生信息:

#include "showgrade.h"
#include "ui_showgrade.h"
#include<addmin.h>
#include<QMessageBox>
#include<usersql.h>
Showgrade::Showgrade(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Showgrade)
{
    ui->setupUi(this);
}

Showgrade::~Showgrade()
{
    delete ui;
}


void Showgrade::on_pushButton_Find_clicked()
{
    QString findId=ui->Id->text();
    QSqlQuery query;
    if(!findId.isEmpty())
    {
        QString sqlById1=QString("select Id,name,class,gaoshu,Eg,Com,Cplus from grade where Id='%1'").arg(findId);
        query.exec(sqlById1);
        bool Notfond=true;
        while (query.next())
        {
            QString Id1=query.value(0).toString();
            QString name1=query.value(1).toString();
            QString Class1=query.value(2).toString();
            QString gaoshu1=query.value(3).toString();
            QString Eg1=query.value(4).toString();
            QString Com1=query.value(5).toString();
            QString Cplus1=query.value(6).toString();

            ui->Id_2->setText(Id1);
            ui->name_2->setText(name1);
            ui->class_2->setText(Class1);
            ui->gaoshu->setText(gaoshu1);
            ui->Eg->setText(Eg1);
            ui->Com->setText(Com1);
            ui->Cplus->setText(Cplus1);

            Notfond=false;
        }
        if(Notfond){
            QMessageBox::information(this, "警告", "未找到相关信息");
            this->close();
            Addmin *a=new Addmin;
            a->show();
        }
    }
    else {
        QString findname=ui->name->text();
        QString sqlByName1=QString("select Id,name,class,gaoshu,Eg,Com,Cplus from grade where name='%2'").arg(findname);
        query.exec(sqlByName1);
        bool Notfond=true;
        while (query.next())
        {
            QString Id1=query.value(0).toString();
            QString name1=query.value(1).toString();
            QString Class1=query.value(2).toString();
            QString gaoshu1=query.value(3).toString();
            QString Eg1=query.value(4).toString();
            QString Com1=query.value(5).toString();
            QString Cplus1=query.value(6).toString();
            ui->Id_2->setText(Id1);
            ui->name_2->setText(name1);
            ui->class_2->setText(Class1);
            ui->gaoshu->setText(gaoshu1);
            ui->Eg->setText(Eg1);
            ui->Com->setText(Com1);
            ui->Cplus->setText(Cplus1);

            Notfond=false;

            Notfond=false;
        }
        if(Notfond)
        {
            QMessageBox::information(this, "警告", "未找到相关信息");
            this->close();
            Addmin *a=new Addmin;
            a->show();
        }
    }
}

void Showgrade::on_pushButton_return_clicked()
{
    QString updateId=ui->Id->text();
    QString updatename=ui->name->text();
    QString updateclass=ui->class_2->text();
    QString updateGs=ui->gaoshu->text();
    QString updateEg=ui->Eg->text();
    QString updateCom=ui->Com->text();
    QString updateC=ui->Cplus->text();

    QSqlQuery query;
    QString sql=QString("update grade set Id='%1',name='%2',class='%3',gaoshu='%4',Eg='%5',Com='%6',Cplus='%7'").arg(updateId).arg( updatename).arg( updateclass).arg( updateGs).arg( updateEg).arg( updateCom).arg( updateC);
            query.exec(sql);
            QMessageBox::information(this, "温馨提示", "恭喜!信息修改成功!");
            this->close();
            Addmin *a=new Addmin;
            a->show();

}

void Showgrade::on_pushButton_return_2_clicked()
{
    this->close();
    Addmin *a=new Addmin;
    a->show();
}

退出系统:

void Addmin::on_quit_clicked()
{
    this->close();
}

Ok,我们现在可以搭建数据库了:(这里提醒,Qt的数据不会连接,可以查看我之前的博客)

这是我的数据库名称:

 

 数据库里的表

   

然后,我们实现登录的实现:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QMessageBox>
#include<usersql.h>
#include<QDebug>
#include<addmin.h>
#include<stu.h>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
   ui->setupUi(this);
   Usersql usersql;
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_toolButton_clicked()
{
  QMessageBox::information(this,"温馨提示!","登陆账号为学号,密码为手机号",QMessageBox::Ok);
}

void MainWindow::on_pushButton_login_clicked()
{
    QString username=ui->username->text();
    QString password=ui->password->text();
    if( ui->radioButton_addmin->isChecked())
    {
        QSqlQuery query;
        query.exec("select username,password from admin");
        bool temp=false;
        while(query.next())
        {
            QString Username=query.value(0).toString();
            QString Password=query.value(1).toString();
            if(username.compare(Username)==0&&password.compare(Password)==0)
            {
                temp=true;
                //loginer=username;
                this->hide();
                Addmin *a=new Addmin();
                a->show();
            }
        }
        if(temp==false)
        {
            QMessageBox::information(this,"提示!","输入账户或密码有错!",QMessageBox::Ok);
        }
    }
    if(ui->radioButton_stu->isChecked())
    {
        QSqlQuery query;
        query.exec("select username,password from stu");
        bool temp=false;
        while(query.next())
        {
            QString Username=query.value(0).toString();
            QString Password=query.value(1).toString();
            if(username.compare(Username)==0&&password.compare(Password)==0)
            {
                temp=true;
                this->hide();
                Stu *s=new Stu;
                s->show();
            }
        }
    }

}

 

 

 

 

 由于篇幅的原因,其他的代码片段就不展示了,我将我们的项目打包,大家可以参照的哦。https://download.csdn.net/download/m0_59711726/84348565

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值