Добавление новой строки с данными в БД
5. Удаление строки из БД
|
Алфавитная сортировка БД по номеру группы
7. Информация о количестве студентов
Поиск по студентам
Поиск номера варианта по фамилии
Дерево функций
Граф диалога
№ вершины графа | Операция |
Запуск программы | |
Меню программы | |
Создание файла | |
Вывод таблицы на экран | |
Сохранение таблицы в файл | |
Добавление записи | |
Удаление записи | |
Сортировка по номеру группы | |
Информация о количестве студентов | |
Поиск по студентам | |
Поиск номера варианта |
Заключение
В данной курсовой работе была разработана программа, позволяющая работать с базой данных «KURS» в соответствии с поставленными требованиями. Программа включает в себя процедуры, обеспечивающие выполнение всех поставленных задач для работы с базой данных. Главное меню программы позволяет обеспечить доступ к функциям программы и к сведениям, хранящимся в базе данных «KURS».
С помощью класса статических массивов эффективно использовалась память, необходимая для работы программы. Проведенное тестирование показало работоспособность программы и соответствие её требованиям задания на курсовой проект.
Список используемой литературы.
1. Б. Страуструп. Язык программирования С++, 3-е издпер. с англ. - М.: "Бином", СПб.: "Невский диалект", 1999. - 991 с., ил.
2. Т.А. Павловская. Ю.А. Щупак С/C++. Программирование на языке высокого уровня. – СПб.: Питер,2007. – 461 с.: ил.
3. Прата. Объектно-ориентированное программирование в C++. 2 изд. – ЭКСМО, 2007. - 336 с.: ил.
4. Т.А. Павловская, Ю.А. Щупак. С/C++. Структурное программирование: Практикум. – СПб.: Питер, 2007. – 239 с.: ил.
Приложение 1. Описание разработанных функций
Название функции | Назначение функции |
void outputfile() | Сохранение текущей БД в txt файл |
void inputfile() | Ввод БД из txt файла |
void add() | Добавление новой строки с данными в БД |
void deletekurs() | Удаление строки из БД |
void output() | Вывод текущей БД на экран |
void sort_gr() | Алфавитная сортировка по названию товара |
void poisk_kol() | Информация о количестве студентов |
void poisk_st() | Поиск по студентам |
void poisk_var() | Поиск номера варианта |
Описание глобальных переменных:
struct price char fam[l] char im[l] char prep[l] int var int gr int oc | -структура «KURS» -фамилия -имя -фамилия преподавателя -номер варианта -номер группы -оценка |
Приложение 2. Листинг программы
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<iomanip.h>
const int l=31;
struct kurs
{char fam[l], im[l], prep[l];
int var, gr, oc;
};
const int N=100;
class kursov
{private:
kurs x[N];
int n;
public:
void outputfile();
void inputfile();
void add();
void deletekurs();
void output();
void sort_gr();
void poisk_kol();
void poisk_st();
void poisk_var();
};
int main()
{ kursov a;
setlocale(LC_ALL, "Russian");
int j,m;
while(1)
{ cout<<"1. Загрузка из файла.\n";
cout<<"2. Вывод на экран.\n";
cout<<"3. Сохранение таблицы в файл.\n";
cout<<"4. Добавление записи.\n";
cout<<"5. Удаление записи.\n";
cout<<"6. Сортировка по группам.\n";
cout<<"7. Информация о количестве студентов.\n";
cout<<"8. Поиск по студентам.\n";
cout<<"9. Поиск по номеру варианта.\n";
cout<<"10. Выход.\n\n";
cout<<"Ваш выбор (1%10):";
cin>>j;
switch(j)
{ case 1: a.inputfile(); break;
case 2: a.output(); break;
case 3: a.outputfile();break;
case 4: a.add(); break;
case 5: a.deletekurs(); break;
case 6: a.sort_gr();break;
case 7: a.poisk_kol();break;
case 8: a.poisk_st();break;
case 9: a.poisk_var();break;
case 10: cout<<"Конец программы"; getch(); exit(0);
default:cout<<"Нет пункта!"; getch(); break;
}
}
}
void kursov:: inputfile()
{ifstream fin;
char file[l];
cout<<"Имя файла:"; cin>>file;
fin.open(file);
if(fin==NULL) {cout<<"Не открывается.\n"; getch(); exit(1);}
n=0;
do{fin>>x[n].fam>>x[n].im>>x[n].var>>x[n].gr>>x[n].prep>>x[n].oc;
n++;
}while(fin.good());
n--;
cout<<"Файл введен.\n"; getch();
fin.close();
output();
}
void kursov:: output()
{ int i;
cout<<"\n----------------------------------------------------------------------------\n";
cout<<"\n| N | ФАМИЛИЯ | ИМЯ | N ВАРИАНТА | N ГРУППЫ | ПРЕПОДАВАТЕЛЬ | ОЦЕНКА |\n";
cout<<"\n----------------------------------------------------------------------------\n";
for(i=0;i<n;i++)
{cout<<"|"<<setw(3)<<i+1
<<"|"<<setw(11)<<setiosflags(ios::left)<<x[i].fam
<<"|"<<setw(9)<<setiosflags(ios::left)<<x[i].im
<<"|"<<setw(12)<<setiosflags(ios::left)<<x[i].var
<<"|"<<setw(10)<<setiosflags(ios::left)<<x[i].gr
<<"|"<<setw(15)<<setiosflags(ios::left)<<x[i].prep
<<"|"<<setw(8)<<setiosflags(ios::left)<<x[i].oc<<"|"<<endl;
}
cout<<"\n---------------------------------------------------------------------------\n";
getch();
}
void kursov:: add()
{ kurs t;
if(n==N) {cout<<"Массив переполнен.\n"; getch(); exit(0);}
cout<<"Фамилия:"; cin>>t.fam;
cout<<"Имя:"; cin>>t.im;
cout<<"Номер варианта:"; cin>>t.var;
cout<<"Номер группы:"; cin>>t.gr;
cout<<"Фамилия преподавателя:"; cin>>t.prep;
cout<<"Оценка:"; cin>>t.oc;
x[n]=t; n++;
cout<<"Запись добавлена.\n";
getch();
output();
}
void kursov:: deletekurs()
{char ch;
int i,j;
output();
cout<<"Номер удаленной строки:";
cin>>j;
if(j<1||j>n) {cout<<"Нет такой строки.\n"; getch(); exit(0);}
cout<<setw(20)<<x[j-1].fam<<endl;
cout<<"Удалить?(y/n):"; cin>>ch;
if(ch=='y')
{for(i=j;i<n;i++)
x[i-1]=x[i];
n--;
}
cout<<"Запись удалена.\n"; getch();
}
void kursov:: outputfile()
{ofstream out;
char file[l];
int i;
cout<<"Имя файла:";
cin>>file;
out.open(file);
if (out==NULL) {cout<<"Не найден"; getch(); exit(1);}
for(i=0;i<n;i++)
{out<<setw(11)<<setiosflags(ios::left)<<x[i].fam
<<setw(9)<<setiosflags(ios::left)<<x[i].im
<<setw(12)<<setiosflags(ios::left)<<x[i].var
<<setw(11)<<setiosflags(ios::left)<<x[i].gr
<<setw(15)<<setiosflags(ios::left)<<x[i].prep
<<setw(8)<<setiosflags(ios::left)<<x[i].oc<<endl;}
out.close();
cout<<"Файл сохранен"; getch();
}
void kursov:: sort_gr()
{int i,fl,nn;
kurs t;
nn=n;
do {fl=0; nn--;
for(i=0;i<nn;i++)
if(x[i].gr>x[i+1].gr)
{t=x[i]; x[i]=x[i+1]; x[i+1]=t; fl=1;}
}while(fl==1);
output();
}
void kursov:: poisk_kol()
{int i,s = 0;
char prep[l];
cout<<"Введите фамилию преподавателя: "; cin>>prep;
int f=0;
for(i=0;i<n;i++)
if(strcmp(x[i].prep,prep)==0)
{ cout<<"Студент: ";
cout<<setw(8)<<setiosflags(ios::left)<<x[i].fam<<" "<<x[i].im<<endl; s=s+1;
f++;
}getch();
cout<<"Количество студентов: "<<s<<endl;
if(f==0) {cout<<"Нет такой записи\n"; getch();}
}
void kursov:: poisk_st()
{int i,k,oc;
cout<<"Введите оценку:"; cin>>oc;
int f=0;
for(i=0;i<n;i++)
if(oc==x[i].oc)
{ cout<<"Студент: ";
cout<<setw(8)<<setiosflags(ios::left)<<x[i].fam<<" "<<x[i].im<<endl;
f++;
} getch();
if(f==0) {cout<<"Нет такой записи\n"; getch();}
}
void kursov:: poisk_var()
{int i;
char fam[l];
cout<<"Введите фамилию студента:"; cin>>fam;
int f=0;
for(i=0;i<n;i++)
if(strcmp(x[i].fam,fam)==0)
{ cout<<"Номер варианта: ";
cout<<setw(8)<<setiosflags(ios::left)<<x[i].var<<endl;
f++;
}getch();
if(f==0) {cout<<"Нет такой записи\n"; getch();}
}