#include "searchinfolessons.h"
#include "ui_searchinfolessons.h"
searchInfoLessons::searchInfoLessons(QWidget *parent) :
QWidget(parent),
ui(new Ui::searchInfoLessons)
{
this->setFixedSize(1065,727);
ui->setupUi(this);
this->setWindowIcon(QIcon("image/windowLable.jpg"));
this->setWindowTitle("课程信息");
//设置背景图
QMovie *movie_back = new QMovie("image/addLesson.gif");
ui->label_3->setMovie(movie_back);
ui->label_3->setScaledContents(true);
movie_back->start();
model_lesson = new QSqlTableModel;
model_lesson->setTable("lessons");
model_lesson->setEditStrategy(QSqlTableModel::OnManualSubmit);
ui->tableView->setModel(model_lesson);
//添加系别信息到combox
ui->comboBox_depart->addItem("建筑学院");
ui->comboBox_depart->addItem("土木工程系");
ui->comboBox_depart->addItem("建设管理系");
ui->comboBox_depart->addItem("水利工程系");
ui->comboBox_depart->addItem("机械工程系");
ui->comboBox_depart->addItem("自动化系");
ui->comboBox_depart->addItem("电子工程系");
ui->comboBox_depart->addItem("计算机科学与技术系");
ui->comboBox_depart->addItem("物理系");
ui->comboBox_depart->addItem("数学系");
ui->comboBox_depart->addItem("化学系");
}
searchInfoLessons::~searchInfoLessons()
{
delete ui;
}
void searchInfoLessons::on_pushButton_clicked()
{
//事务操作
model_lesson->database().transaction();
if(model_lesson->submitAll())
{
model_lesson->database().commit();
QMessageBox::warning(this,tr("change"),tr("修改已被提交!"));
if(model_lesson->tableName() == "lessons")
{
//创建一个lesson表记录选择此课的人
QSqlQuery query;
QString ID_;
for(int i=0;i<model_lesson->rowCount();i++)
{
ID_ = ui->tableView->model()->data(ui->tableView->model()->index(i,0)).toString();
query.exec(QString("CREATE TABLE '%1'(ID INT PRIMARY KEY NOT NULL, grades VCHAR)").arg("LESSONS"+ID_));
}
}
}
else
{
model_lesson->database().rollback();
QMessageBox::warning(this,tr("tableModel"),tr("数据库错误! %1").arg(model_lesson->database().lastError().text()));
}
}
void searchInfoLessons::on_pushButton_2_clicked()
{
this->model_lesson->revertAll();
}
void searchInfoLessons::on_pushButton_8_clicked()
{
model_lesson->setTable("lessons");
model_lesson->select();
}
void searchInfoLessons::on_pushButton_3_clicked()
{
int rows = model_lesson->rowCount();
int id = -1;
model_lesson->insertRow(rows);
model_lesson->setData(model_lesson->index(rows,0),id);
}
void searchInfoLessons::on_pushButton_4_clicked()
{
int selected_row = ui->tableView->currentIndex().row();
model_lesson->removeRow(selected_row);
int is_delete = QMessageBox::warning(this,tr("删除"),tr("你确定删除当前行?"),QMessageBox::Yes,QMessageBox::No);
if(is_delete == QMessageBox::Yes)
{
model_lesson->submitAll();
}
else {
model_lesson->revertAll();
}
}
void searchInfoLessons::on_pushButton_5_clicked()
{
model_lesson->setFilter(QString("Name = '%1'").arg(ui->lineEdit_search_name->text()));
model_lesson->select();
}
void searchInfoLessons::on_pushButton_6_clicked()
{
model_lesson->setFilter(QObject::tr("courseID = '%1'").arg(ui->lineEdit_search_number->text().toInt()));
model_lesson->select();
}
void searchInfoLessons::on_pushButton_7_clicked()
{
if(model_lesson->tableName() == "lessons")
{
//提取所选课程的编号
QSqlQuery query_getID;
query_getID.exec("SELECT * FROM lessons");
query_getID.seek(ui->tableView->currentIndex().row());
this->current_selected_lessonID = "LESSONS"+query_getID.value(0).toString();
//打开此课程的选课人数记录
model_lesson->setTable(this->current_selected_lessonID);
model_lesson->setEditStrategy(QSqlTableModel::OnManualSubmit);
model_lesson->select();
ui->tableView->setModel(model_lesson);
//计算平均分
query_getID.exec(QString("SELECT * FROM '%1'").arg(this->current_selected_lessonID));
query_getID.first();
double sum_score=0;
for(int i=0;i<model_lesson->rowCount();i++)
{
sum_score = sum_score + query_getID.value(1).toDouble();
query_getID.next();
}
double average_score = sum_score/model_lesson->rowCount();
ui->lineEdit_average->setReadOnly(false);
ui->lineEdit_average->setText(QString::number(average_score));
ui->lineEdit_average->setReadOnly(true);
}
else
{
QMessageBox::warning(this,tr("failed"),tr("请选择课程!"));
}
}
void searchInfoLessons::on_pushButton_9_clicked()
{
QSqlQuery query;
//获得总课程数
model_lesson->setTable("lessons");
model_lesson->select();
int all_lessons = model_lesson->rowCount();
//将课程选课情况表格转换为map
QMap <QString,QString> *id_grades =new QMap<QString,QString>[all_lessons];
//更新行号到课程号的哈希表
query.exec("SELECT * FROM lessons");
rows_lessonsID.clear();
for(int i=0;i<all_lessons;i++)
{
query.seek(i);
rows_lessonsID.insert(i,query.value(0).toInt());
}
//将所有课的成绩写入哈希表里
QSqlTableModel model_getnumber;
for(int i=0;i<all_lessons;i++)
{
query.exec(QString("SELECT * FROM '%1'").arg("LESSONS"+QString::number(rows_lessonsID[i])));
query.first();
//获取当前选课表的行数
model_getnumber.setTable("LESSONS"+QString::number(rows_lessonsID[i]));
model_getnumber.select();
int currenttable_StudentNumber=model_getnumber.rowCount();
for(int j=0;j<currenttable_StudentNumber;j++)
{
id_grades[i].insert(query.value(0).toString(),query.value(1).toString());
qDebug()<<query.value(0).toString()<<query.value(1).toString();
query.next();
}
}
for(int i=0;i<all_lessons;i++)
{
QMap<QString,QString>::iterator _traversing;
_traversing=id_grades[i].begin();
while(_traversing!=id_grades[i].end())
{
//写入学生的课表
query.exec(QString("UPDATE '%1' SET grades='%2' WHERE courseID='%3' ")
.arg("IDNAMESTUDENT"+_traversing.key())
.arg(_traversing.value())
.arg(QString::number(rows_lessonsID[i])));
qDebug()<<rows_lessonsID[i]<<_traversing.key()<<_traversing.value();
_traversing++;
}
}
}
void searchInfoLessons::on_pushButton_13_clicked()
{
if(model_lesson->tableName()!="lessons")
{
model_lesson->sort(1,Qt::DescendingOrder);
model_lesson->select();
}
else {
QMessageBox::warning(this,tr("failed"),tr("当前表格错误!"));
}
}
void searchInfoLessons::on_pushButton_12_clicked()
{
model_lesson->setFilter(QObject::tr("Depart = '%1'").arg(ui->comboBox_depart->currentText()));
model_lesson->select();
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业 和毕设项目的学生、或者相关技术学习者作为学习资料参考使用。 3、该资源包括全部源码,需要具备一定基础才能看懂并调试代码,介意勿下,谢谢理解。
资源推荐
资源详情
资源评论
收起资源包目录
学生成绩管理系统代码(Qt).zip (34个子文件)
project_code_21210
gradeManagedSystem.pro.user 64KB
gradeManagedSystem.pro 2KB
searchinfodeparts.cpp 1KB
addinfo_student.cpp 1KB
searchinfodeparts.h 744B
mainwindow.h 1019B
searchinfostudent.ui 7KB
searchinfoteacher.h 1KB
mainwindow.cpp 2KB
welcomewindow.ui 3KB
searchinfolessons.cpp 7KB
info_database.h 300B
main.cpp 568B
voice_operation.h 275B
searchinfostudent.h 1KB
mainwindow.ui 4KB
searchinfolessons.h 1KB
form.ui 399B
searchinfostudent.cpp 7KB
addlessonswindow.h 2KB
searchinfoteacher.ui 5KB
addlessonswindow.ui 2KB
searchinfoteacher.cpp 5KB
addinfo_student.ui 6KB
form.cpp 187B
form.h 263B
searchinfolessons.ui 7KB
public_fuctions.h 4KB
searchinfodeparts.ui 3KB
welcomewindow.h 817B
addlessonswindow.cpp 4KB
voice_operation.cpp 1KB
addinfo_student.h 557B
welcomewindow.cpp 3KB
共 34 条
- 1
资源评论
辣椒种子
- 粉丝: 3525
- 资源: 5721
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IMG_20240609_151316.jpg
- Screenshot_20240611_151847.jpg
- mmexport1718013090167.mp4
- f97ebaf3c89905f5c3b247388eff85eb
- Windchill 之选项集相关实现说明
- 基于CBS算法多AGV路径规划仿真系统源代码+项目开发说明+演示程序(高分毕业设计)
- 基于CBS算法多AGV路径规划仿真系统源代码+项目开发说明+演示程序(高分毕业设计)
- 基于C#和NET MAUI开发的音乐播放器+源代码+文档说明+sln.zip
- 基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库sql.zip
- 程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功