#include "curriculumwizard.h"
#include "ui_curriculumwizard.h"
CurriculumWizard::CurriculumWizard(QWidget *parent) :
QWizard(parent),
ui(new Ui::CurriculumWizard)
{
ui->setupUi(this);
connect(this,SIGNAL(currentIdChanged(int)),this,SLOT(on_CurriculumWizard_currentIdChanged(int)));
connect(this,SIGNAL(finished(int)),this,SLOT(on_CurriculumWizard_finished(int)));
ui->SdeptEdit->setReadOnly(true);
ui->SclassEdit->setReadOnly(true);
ui->step3tableView->setItemDelegateForColumn(0,new readonlyDelegate(this));
ui->step3tableView->setItemDelegateForColumn(1,new readonlyDelegate(this));
ui->step3tableView->setItemDelegateForColumn(2,new readonlyDelegate(this));
seterror = false;
testcount = 0;
}
CurriculumWizard::~CurriculumWizard()
{
delete ui;
}
void CurriculumWizard::on_CurriculumWizard_currentIdChanged(int id)
{
// QMessageBox::aboutQt(this,QString("%1").arg(id));
switch(id)
{
case 1:
{
QSqlQueryModel *model = new QSqlQueryModel(this);
model->setQuery("SELECT DISTINCT Sdept,Sclass,RMlocat \
FROM Student,Classroom \
WHERE Student.Sdept = Classroom.RMdept");
model->setHeaderData(0, Qt::Horizontal, tr("系院"));
model->setHeaderData(1, Qt::Horizontal, tr("班级"));
model->setHeaderData(2, Qt::Horizontal, tr("系教学楼"));
ui->Sdept_Sclasstable->setModel(model);
break;
}
case 2:
{
if(ui->SdeptEdit->text().isEmpty() || ui->SclassEdit->text().isEmpty())
{
QMessageBox::about(this,NULL,tr("您还没有选择班级"));
this->back();
return;
}
QSqlQueryModel *model = new QSqlQueryModel(this);
model->setQuery("SELECT Cno,Cname,Ccredit,Cdept FROM Course");
model->setHeaderData(0, Qt::Horizontal, tr("课程号"));
model->setHeaderData(1, Qt::Horizontal, tr("课程名"));
model->setHeaderData(2, Qt::Horizontal, tr("学分"));
model->setHeaderData(3, Qt::Horizontal, tr("所属院系"));
ui->CoursetableView->setModel(model);
break;
}
case 3:
{
if(wi.Courseinfolist.size() == 0)
{
QMessageBox::about(this,NULL,tr("您还没有选择课程"));
this->back();
return;
}
QStandardItemModel *model;
model = new QStandardItemModel(wi.Courseinfolist.size(),3);
ui->step3tableView->setModel(model);
model->setHeaderData(0, Qt::Horizontal, tr("课程号"));
model->setHeaderData(1, Qt::Horizontal, tr("课程名"));
model->setHeaderData(2, Qt::Horizontal, tr("学分"));
for (int row = 0; row < wi.Courseinfolist.size(); ++row)
{
QSqlQuery query;
QString Command = QString(tr("SELECT Cno,Cname,Ccredit FROM Course Where Cno = '%1'").arg(wi.Courseinfolist.at(row).Cno));
query.exec(Command);
query.next();
for (int column = 0; column < 3; ++column)
{
QModelIndex index = model->index(row, column, QModelIndex());
model->setData(index, query.value(column));
}
}
}
case 4:
{
QString setinfo;
setinfo += QString(tr("班级信息:\n"));
setinfo += QString(tr("系别 : %1 班级 : %2 人数 : %3\n").arg(wi.Sdept)).arg(wi.Sclass).arg(ui->Peoplelabel->text());
setinfo += QString(tr("将安排以下课程:\n"));
for (int row = 0; row < wi.Courseinfolist.size(); ++row)
{
QSqlQuery query;
QString Command = QString(tr("SELECT Cno,Cname,Ccredit FROM Course Where Cno = '%1'").arg(wi.Courseinfolist.at(row).Cno));
query.exec(Command);
query.next();
setinfo += QString(tr("%1 %2 %3学分 每周%4课时 %5 %6 %7\n").arg(query.value(0).toString()).arg(query.value(1).toString()).arg(query.value(2).toString()))
.arg(wi.Courseinfolist.at(row).numweek)
.arg(wi.Courseinfolist.at(row).isMultimedia?tr("需要多媒体教室"):"")
.arg(wi.Courseinfolist.at(row).notin5?tr("不安排在第5节课"):"")
.arg(wi.Courseinfolist.at(row).atdept?QString(tr("安排在系教学楼 %1").arg(wi.RMdept)):"");
}
ui->SetinfotextBrowser->setText(setinfo);
//检查
QString Checkinfo;
seterror = false;
int classtimecount = 0;
for (int row = 0; row < wi.Courseinfolist.size(); ++row)
{
classtimecount += wi.Courseinfolist.at(row).numweek;
}
if(classtimecount > 25)
{
Checkinfo += tr("总课时数不正确 ,已经超过一周最大课时数25.\n");
seterror = true;
}
classtimecount = 0;
for (int row = 0; row < wi.Courseinfolist.size(); ++row)
{
if(wi.Courseinfolist.at(row).notin5)
{
classtimecount += wi.Courseinfolist.at(row).numweek;
}
}
if(classtimecount > 20)
{
Checkinfo += tr("课时数不正确 ,白天课时数超过一周最大值20.\n");
seterror = true;
}
QSqlQuery query;
QString Command = QString(tr("SELECT RMno FROM Classroom Where RMcapacity >= %1").arg(ui->Peoplelabel->text().toInt()));
query.exec(Command);
if(!query.next())
{
Checkinfo += tr("班级人数过多 ,不存在教室可容纳%1 人.\n").arg(ui->Peoplelabel->text().toInt());
seterror = true;
}
Command = QString(tr("SELECT RMno FROM Classroom Where RMcapacity >= %1 AND RMtype = '多媒体教室'").arg(ui->Peoplelabel->text().toInt()));
query.exec(Command);
if(!query.next())
{
Checkinfo += tr("班级人数过多 ,不存在多媒体教室可容纳%1 人.\n").arg(ui->Peoplelabel->text().toInt());
seterror = true;
}
Command = QString(tr("SELECT RMno FROM Classroom Where RMcapacity >= %1 AND RMlocat = '%2'").arg(ui->Peoplelabel->text().toInt())).arg(wi.RMdept);
query.exec(Command);
if(!query.next())
{
Checkinfo += tr("班级人数过多 ,在教学楼 %1 中不存在教室可容纳%2 人.\n").arg(wi.RMdept).arg(ui->Peoplelabel->text().toInt());
seterror = true;
}
Command = QString(tr("SELECT RMno FROM Classroom Where RMcapacity >= %1 AND RMlocat = '%2' AND RMtype = '多媒体教室'").arg(ui->Peoplelabel->text().toInt())).arg(wi.RMdept);
query.exec(Command);
if(!query.next())
{
Checkinfo += tr("班级人数过多 ,在教学楼 %1 中不存在多媒体教室可容纳%2 人.\n").arg(wi.RMdept).arg(ui->Peoplelabel->text().toInt());
seterror = true;
}
if(seterror)
{
Checkinfo += tr("检查过程发现若干错误,请返回前几步修改设置.\n");
}
else
{
没有合适的资源?快使用搜索试试~ 我知道了~
Student_database_management_system.rar_QT database_QT管理系统_Qt SQL
共142个文件
ico:52个
h:29个
cpp:28个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 181 浏览量
2022-09-22
20:56:39
上传
评论
收藏 902KB RAR 举报
温馨提示
使用Qt编写的管理信息系统,使用SQL server数据库。
资源推荐
资源详情
资源评论
收起资源包目录
Student_database_management_system.rar_QT database_QT管理系统_Qt SQL (142个子文件)
curriculumwizard.cpp 25KB
widget.cpp 22KB
updatestudialog.cpp 5KB
updateteacherinfodialog.cpp 5KB
tableviewdialog.cpp 4KB
viewcurriculumdialog.cpp 3KB
loadstuinfodlg.cpp 3KB
updatecourseinfodialog.cpp 3KB
loadteacherdlg.cpp 2KB
teacherinfoform.cpp 2KB
stuinfoform.cpp 2KB
addcoursedialog.cpp 2KB
setupdialog.cpp 2KB
addclassroomdialog.cpp 1KB
delteacherdialog.cpp 1KB
delstuinfodialog.cpp 1KB
delcoursedialog.cpp 1KB
teachertableviewdialog.cpp 1KB
courseinfoform.cpp 1KB
logindialog.cpp 1KB
classroomtableviewdialog.cpp 1KB
coursetableviewdialog.cpp 1011B
viewcourseinfodialog.cpp 707B
viewteacherdialog.cpp 684B
viewstudialog.cpp 646B
aboutdialog.cpp 604B
readonlydelegate.cpp 313B
main.cpp 282B
model.gif 2KB
widget.h 2KB
curriculumwizard.h 2KB
Dictionary.h 948B
tableviewdialog.h 904B
loadstuinfodlg.h 818B
updateteacherinfodialog.h 729B
addcoursedialog.h 696B
updatecourseinfodialog.h 688B
loadteacherdlg.h 681B
updatestudialog.h 681B
addclassroomdialog.h 639B
viewcurriculumdialog.h 622B
classroomtableviewdialog.h 607B
teachertableviewdialog.h 593B
coursetableviewdialog.h 583B
delteacherdialog.h 571B
delstuinfodialog.h 569B
logindialog.h 558B
delcoursedialog.h 548B
viewteacherdialog.h 529B
viewcourseinfodialog.h 528B
teacherinfoform.h 526B
courseinfoform.h 499B
stuinfoform.h 498B
viewstudialog.h 489B
setupdialog.h 415B
readonlydelegate.h 388B
aboutdialog.h 317B
config.h 188B
hsit 1.2MB
down_arrow.ico 66KB
right_arrow.ico 66KB
rss_feed.ico 66KB
cut.ico 66KB
headphones.ico 66KB
users.ico 66KB
email_send.ico 66KB
remove_item.ico 66KB
yen_currency_sign.ico 66KB
process.ico 66KB
dollar_currency_sign.ico 66KB
login.ico 66KB
hard_disk.ico 66KB
camera.ico 66KB
zoom_out_magnifier.ico 66KB
folder.ico 66KB
left_arrow.ico 66KB
lock.ico 66KB
chart.ico 66KB
info.ico 66KB
telephone.ico 66KB
world_globe.ico 66KB
note_accept.ico 66KB
delete_item.ico 66KB
add_to_favorites.ico 66KB
comment_bubble.ico 66KB
database_server.ico 66KB
video_movie_track.ico 66KB
user_comment.ico 66KB
add_item.ico 66KB
calendar.ico 66KB
note_delete.ico 66KB
up_arrow.ico 66KB
edit_item.ico 66KB
calculator.ico 66KB
user.ico 66KB
accept_item.ico 66KB
unlock.ico 66KB
search_magnifier.ico 66KB
shopping_cart.ico 66KB
favorite.ico 66KB
共 142 条
- 1
- 2
资源评论
小波思基
- 粉丝: 72
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功