Автор работы: Пользователь скрыл имя, 27 Марта 2011 в 09:22, курсовая работа
Данная курсовая есть результат работы, выполненной в ходе изучения дисциплины “Базы данных”. В качестве задания необходимо создать программу, предназначенную для работы с базой данных, содержащей в себе информацию об учебных планах. На мой взгляд, были выполнены все требования и пожелания преподавателя касаемо функционирования и представления данных.
1.Введение………………………………………………………………………...3
2.Задача
a.Предметная область и ER-диаграмма……………….………………………………………………..4
b.Физическая модель данных (макеты таблиц)…………………………. 5
c.Список явных ограничений целостности……………………………………………………………….6
3.Описание приложения
a.Функции и процедуры, а так же связи.......………………………...……7
b.Классы, их методы и поля класса………………………………………25
4.Описание функционирования базы данных
a.Процедуры и функции по реализации ограничений целостности, включая SQL запросы……………………………………………….......28
b.SQL запросы по ведению электронного аналога документа…………………………………………………………….…..29
5.Описание экранных форм……………………………………………………...30
6.Руководство по эксплуатации………………………………………………....31
7.Заключение…………………………………………………………………..….32
8.Список литературы………………………………………………………..……33
9.Приложение……………………………………………………………….….…34
}
Disciplina->removeRow(a);
Disciplina->submitAll();
}
}
}
void MainWindow::del_prep()
{
int a=ui->prep_viev->currentIndex(
QSqlRecord record1=Prepodavatel->record(
bool k=false;
for(int i=0;i<Inf_Disc->rowCount();i++
{
QSqlRecord record2=Inf_Disc->record(i);
if(record1.value("ID_prep").
k=true;
}
if (k==false)
{
Prepodavatel->removeRow(a);
Prepodavatel->submitAll();
}
else
{
int r = QMessageBox::question(this, tr("DELETE PREPOD"),
tr("Delete \"%1\" and its links?")
.arg(record1.value("b_prep").
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No | QMessageBox::Escape);
if (r == QMessageBox::No)
return;
else
{
for(int i=0;i<Inf_Disc->rowCount();i++
{
QSqlRecord record2=Inf_Disc->record(i);
if(record1.value("ID_prep").
{
Inf_Disc->removeRow(i);
Inf_Disc->submitAll();
}
}
Prepodavatel->removeRow(a);
Prepodavatel->submitAll();
}
}
}
void MainWindow::del_plan()
{
int a=ui->plan_viev->currentIndex(
QSqlRecord record1=Plan->record(a);
bool k=false,l=false;
for(int i=0;i<Prep_Plan->rowCount();i+
{
QSqlRecord record2=Prep_Plan->record(i);
if(record1.value("ID_plan").
k=true;
}
for(int i=0;i<Inf_Stud->rowCount();i++
{
QSqlRecord record2=Inf_Stud->record(i);
if(record1.value("ID_plan").
l=true;
}
if (k==false&&l==false)
{
Plan->removeRow(a);
Plan->submitAll();
}
else
{
int r = QMessageBox::question(this, tr("DELETE PLAN"),
tr("Delete \"%1\" and its links?")
.arg(record1.value("b_plan").
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No | QMessageBox::Escape);
if (r == QMessageBox::No)
return;
else
{
for(int i=0;i<Prep_Plan->rowCount();i+
{
QSqlRecord record2=Prep_Plan->record(i);
if(record1.value("ID_plan").
{
Prep_Plan->removeRow(i);
Prep_Plan->submitAll();
}
}
for(int i=0;i<Inf_Stud->rowCount();i++
{
QSqlRecord record2=Inf_Stud->record(i);
if(record1.value("ID_plan").
{
Inf_Stud->removeRow(i);
Inf_Stud->submitAll();
}
}
Plan->removeRow(a);
Plan->submitAll();
}
}
}
void MainWindow::del_stud()
{
int a=ui->stud_viev->currentIndex(
QSqlRecord record1=Student->record(a);
bool k=false;
for(int i=0;i<Inf_Stud->rowCount();i++
{
QSqlRecord record2=Inf_Stud->record(i);
if(record1.value("ID_stud").
k=true;
}
if (k==false)
{
Student->removeRow(a);
Student->submitAll();
}
else
{
int r = QMessageBox::question(this, tr("DELETE STUENT"),
tr("Delete \"%1\" and its links?")
.arg(record1.value("b_stud").
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No | QMessageBox::Escape);
if (r == QMessageBox::No)
return;
else
{
for(int i=0;i<Inf_Stud->rowCount();i++
{
QSqlRecord record2=Inf_Stud->record(i);
if(record1.value("ID_stud").
{
Inf_Stud->removeRow(i);
Inf_Stud->submitAll();
}
}
Student->removeRow(a);
Student->submitAll();
}
}
}
void MainWindow::del_nagruz()
{
int a=ui->nagruz_viev_2->
QSqlRecord record1=model1.record(a);
int b=ui->plan_viev->currentIndex(
QSqlRecord record2=Plan->record(b);
model1.setQuery(tr("DELETE
FROM Prep_Plan WHERE (ID_disc IN (SELECT ID_disc FROM Disciplina WHERE
b_disc=\"%1\")) AND (ID_plan IN (SELECT ID_plan FROM Plan
WHERE b_plan=\"%2\")) AND kurs=\"%3\"").arg(record1.
model1.setQuery(tr("SELECT
b_disc,kurs,lec,labs,prakt,
ui->nagruz_viev_2->setModel(&
}
void MainWindow::del_new_stud()
{
int a=ui->listView->currentIndex()
int n=ui->plan_viev->currentIndex(
QSqlRecord record1=Plan->record(n);
QSqlRecord record2=model11.record(a);
model33.setQuery(tr("DELETE
FROM Inf_Stud WHERE (ID_stud IN (SELECT ID_stud FROM Student WHERE b_stud=\"%1\"))
AND (ID_plan IN (SELECT ID_plan FROM Plan WHERE b_plan=\"%2\"))").arg(record2.
model11.setQuery(tr("SELECT
b_stud FROM Student, Inf_Stud, Plan WHERE (Student.ID_stud=Inf_Stud.ID_
ui->listView->setModel(&
ui->del_new_stud->setEnabled(
Inf_Stud->submitAll();
}
Применить:
void MainWindow::ok_disc()
{
Disciplina->submitAll();
ui->disc_viev->
model44.setQuery("SELECT
b_disc,b_prep FROM Prepodavatel, Disciplina, Inf_Disc WHERE Prepodavatel.ID_prep=Inf_Disc.
ui->tableView_2->setModel(&
if(c==true){
int a=ui->plan_viev->currentIndex(
QSqlRecord record1=Plan->record(a);
model1.setQuery(tr("SELECT
b_disc,kurs,lec,labs,prakt,
ui->nagruz_viev_2->setModel(&
}
void MainWindow::ok_prep()
{
Prepodavatel->submitAll();
ui->prep_viev->
model44.setQuery("SELECT
b_disc,b_prep FROM Prepodavatel, Disciplina, Inf_Disc WHERE Prepodavatel.ID_prep=Inf_Disc.
ui->tableView_2->setModel(&
}
void MainWindow::ok_plan()
{
bool k=false;
QSqlRecord record0=Plan->record(Plan->
for(int i=0;i<Plan->rowCount()-1;i++)
{
QSqlRecord record1=Plan->record(i);
if(record1.value("b_plan").
k=true;
}
if(k==true)
{
QMessageBox::information(this, tr("DUBL"),
tr("This plan is already in the table"));
Plan->revertAll();
}
else
Plan->submitAll();
}
void MainWindow::ok_stud()
{
Student->submitAll();
if(c==true){
int a=ui->plan_viev->currentIndex(
QSqlRecord record1=Plan->record(a);
model11.setQuery(tr("SELECT
b_stud FROM Student, Inf_Stud, Plan WHERE (Student.ID_stud=Inf_Stud.ID_
ui->listView->setModel(&
}
Отменить:
void MainWindow::can_plan()
{
Plan->revertAll();
}
void MainWindow::can_stud()
{
Student->revertAll();
}
Изменить:
void MainWindow::ok_nagruz()
{
int a=ui->nagruz_viev_2->
QSqlRecord record1=model1.record(a);
int b=ui->plan_viev->currentIndex(