基于QT+MySQL的学生信息管理系统
1 项目简介
该项目使用的数据库为MySQL,目前仅实现当前主机的数据库连接。需要构造5张表:admin、stu、class、course和score。
界面设计思路如下图所示:
2 数据库表结构简介
2.1 admin表(管理员信息表)
主要用于验证登陆信息。
2.2 stu表(学生信息表)
包含学生信息以及用于登陆验证的学号密码。
2.3 class表(班级信息表)
包含所有班级信息。
2.4 course表(课程信息表)
包含所有课程信息。
2.5 score表(分数信息表)
包含所有分数信息。
3 需要注意的几个功能实现
3.1 在MySQl里建数据库时记得指定为utf-8字符
如建立stu_db数据库的MySQL语句为:
create database stu_db character set utf8;
3.2 连接MySQL数据库
需要包含的头文件 ,连接数据库代码如下:
void MainWindow::connect_mysql()
{
QSqlDatabase db;
if(QSqlDatabase::contains("mysql_connect")) {
//判断链接是否存在
db = QSqlDatabase::database("mysql_connect");
} else {
//连接数据库
db = QSqlDatabase::addDatabase("QMYSQL", "mysql_connect"); //数据库类型
db.setHostName("localhost"); //设置为本地主机
db.setDatabaseName("stu_db"); //选择数据库名称
db.setUserName("root"); //设置用户名
db.setPassword("passwordmysql");//设置密码
if(!db.open())
QMessageBox::critical(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("数据库连接失败!"), QString::fromLocal8Bit("确认"));
// else
// QMessageBox::information(this, QString::fromLocal8Bit("信息"), QString::fromLocal8Bit("数据库连接成功!"), QString::fromLocal8Bit("确认"));
}
}
3.3 登陆界面设计思路
- 设计身份按钮组,判断登录用户是管理员or学生。
- 根据身份到相应的表里查询id和密码是否正确。若验证成功则跳转各自相应子窗口,否则弹出错误提示窗口。
部分代码实现如下:
void MainWindow::login()
{
//获取登录信息
QString user_t = ui->typeGroup->checkedButton()->text();
QString id = ui->le_user->text();
QString password = ui->le_password->text();
QSqlDatabase db = QSqlDatabase::database("mysql_connect");
QSqlQuery query(db);
// db.exec("SET NAMES 'GBK'")