Добавление новой строки с данными в БД

 
 

 


5. Удаление строки из БД

 
 

 


 
 

 

 


       
   
 


 

 
 

 

 


 

i=j

 

 

 
 

 

 


Алфавитная сортировка БД по номеру группы

 
 

 

 


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();}

}

 

 



;