Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет 22 вар.doc
Скачиваний:
3
Добавлен:
16.09.2019
Размер:
305.66 Кб
Скачать

Список используемой литературы.

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

}