学生成绩管理系统

该项目主要运用QT数据库功能实现对学生成绩的增删改查以及排序功能

开发工具:Qt Creator + sqlite

操作系统:linux

项目展示

 1.界面设计

 运用Qt中的designer进行相应的界面设计。

id键位:为QComboBox类型其作用为选择排序的对象,例如依照id和成绩进行拍寻

ascending sort键位:为QComboBox类型其作用为选择排序的方式,例如重大到小或者从小到大。

RANK键位:为QPushButton类型其作用为确定刚才选择的排序模式。

中间的这片空白为:QTableview类型,为展示学生成绩信息。

ID,name,score对应的文本框:为QLineEdit类型分别为接受用户输入的ID,name,score的数据

INSERT键:为QPushButton类型是插入按钮点击此键将把上面 输入的学生信息插入搭配数据库中。

DELETE键:为QPushButton类型是删除按钮在上面的ID一栏输入ID号将删除指定Id的学生信息。

UPFATE键:为QPushButton类型是更改按钮输入对应学生ID对相应学生信息进行更改。

头文件代码展示

#ifndef STUDENTDIALOG_H
#define STUDENTDIALOG_H

#include <QDialog>
#include<QSqlDatabase>
#include<QSqlQuery>
#include<QSqlQueryModel>
#include<QSqlError>
#include<QDebug>


namespace Ui {
class StudentDialog;
}

class StudentDialog : public QDialog
{
    Q_OBJECT

public:
    explicit StudentDialog(QWidget *parent = 0);
    ~StudentDialog();
private:

//创建数据库
    void createDB();

//创建数据表
    void createTable();

//查询数据
    void queryTable();

private slots:

//插入按钮对应的槽函数(INSERT键
    void on_insertButton_clicked();

//删除按钮对应的槽函数(DELETE键

    void on_deleteButton_clicked();

//更改按钮对应的槽函数(UPFATE键

    void on_updataButton_clicked();

//排序按钮对应的槽函数(RANK键位

    void on_sortButton_clicked();

private:
    Ui::StudentDialog *ui;
    QSqlDatabase db;  //建立Qt与数据库连接
    QSqlQueryModel model;  //储存查询结果集
};

#endif // STUDENTDIALOG_H

在项目模块加入sql

原来文件代码展示

#include "studentdialog.h"
#include "ui_studentdialog.h"

StudentDialog::StudentDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::StudentDialog)
{
    ui->setupUi(this);
    createDB();
    createTable();
    queryTable();
}

StudentDialog::~StudentDialog()
{
    delete ui;

}

//创建数据库
void StudentDialog:: createDB()
{

//添加驱动
    db=QSqlDatabase::addDatabase("QSQLITE");

//设置数据库名称
    db.setDatabaseName("student.db");

//打开数据库并1进行判断
    if(db.open()==true)
    {
        qDebug()<<"1 ok!";
    }
    else{
        qDebug()<<"faile";
    }
}

//创建数据表

void StudentDialog:: createTable()
{

//创建数据表
    QSqlQuery query=QSqlQuery (db);
    QString str=QString("CREATE TABLE student (id INT PRIMARY KEY NOT NULL,name TEXT NOT NULL, score REAL NOT NULL);");

//执行创建语句并判断
    if(query.exec(str)==false){
        qDebug()<<str;
    }
    else{
        qDebug()<<"ok!";
    }
}

//查询

void StudentDialog:: queryTable()
{
    QString str=QString("SELECT * FROM student;");

//查询并把查询结果赋值给model
    model.setQuery(str);

//j将查询结果在在tabelView中展示
    ui->tableView->setModel(&model);
    ui->tableView->show();

}

/插入槽函数
void StudentDialog::on_insertButton_clicked()
{


 QSqlQuery query= QSqlQuery (db);

//获得用户输入的ID
  int id=ui->idEdit->text().toInt();

//获得用户输入的姓名
  QString name=ui->nameEdit->text();

//获得用户输入的成绩
  double score=ui->scoreEdit->text().toDouble();

//执行插入操作并判断插入是否成功
  QString str = QString("INSERT INTO student VALUES(%1,'%2',%3)").arg(id).arg(name).arg(score);
   if(query.exec(str)==false)
   {
       qDebug()<<str;
   }
   else
   {
       qDebug()<<"ok!";

//插入成功再次调用查询操作展示插入结果
       queryTable();
   }


}

//删除槽函数

void StudentDialog::on_deleteButton_clicked()
{
    QSqlQuery query;

//获得用户输入的ID根据ID进行删除
    int id=ui->idEdit->text().toInt();
    QString str=QString("DELETE FROM student WHERE id=%1").arg(id);

//执行删除操作
    query.exec(str);
    queryTable();
}

//更改槽函数

void StudentDialog::on_updataButton_clicked()
{
    QSqlQuery query;

//获取用户更改成绩对象的Id更具id修改用户成绩
    int id=ui->idEdit->text().toInt();
    double score=ui->scoreEdit->text().toDouble();
    QString str=QString("UPDATE student SET score=%1 WHERE id=%2").arg(score).arg(id);
    query.exec(str);
    queryTable();
}

//排序确认槽函数

void StudentDialog::on_sortButton_clicked()
{
    QSqlQuery query;

//获得用户排序的对象
    QString value=ui->valuecomboBox_2->currentText();

//获得用户排序的方式
    QString condition;
if(ui->condcomboBox->currentIndex()==0)
{
    condition="ASC";//升序
}
else
{
    condition="DESC";//降序
}
    QString str=QString("SELECT * FROM student ORDER BY %1 %2").arg(value).arg(condition);
  model.setQuery(str);
  ui->tableView->setModel(&model);

 queryTable();
}

main函数代码展示

#include "studentdialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    StudentDialog w;
    w.show();

    return a.exec();
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值