Программа, предназначенная для работы с базой данных 'Игроки КХЛ 2012-2013'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,31 Мб
  • Опубликовано:
    2016-03-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программа, предназначенная для работы с базой данных 'Игроки КХЛ 2012-2013'

Аннотация

 

Данная курсовая работа посвящена разработке и реализации программы на языке С++ с использованием классов списков структур для обработки данных.

В курсовой работе представлена программа, предназначенная для работы с базой данных "Игроки КХЛ 2012-2013".

Данный программный продукт включает в себя функции создания файла, просмотра данных, редактирование записей файла, дополнения файла новыми записями, удаление записей из файла, поиска записи файла по одному и двум поисковым признакам, а так же сортировка записей по заданному полю.

Содержание

 

Введение

1. Описание глобальных переменных, разработанных функций

1.1 Описание глобальных переменных

1.2 Описание разработанных подпрограмм

2. Тестирование программы

2.1 Главное меню программы, состоящее из 15 пунктов

2.2 Чтение данных из файла

2.3 Просмотр данных

2.4 Сохранение данных в файл

2.5 Поиск по названию клуба

2.6 Поиск по позиции и количеству забитых шайб

2.7 Редактирование записей

2.7.1 Редактирование

2.7.2 Добавление

2.7.3 Удаление

2.8 Сортировка по ФИО

2.9 Сортировка по количеству забитых шайб

2.10 Сортировка по дате рождеения

Код программы:

Заключение

Список литературы

Введение

Цель работы: освоение функций работы со структурным типом данных и файлами

Постановка задачи: спроектировать необходимые классы и разработать программу на языке С++ для обработки данных. Обработка должна включать следующие функции:

.        Создание новой базы данных (с возможностью задания имени файла).

2.      Просмотр (вывод на экран) существующей базы данных.

.        Добавление новой записи в базу данных.

.        Удаление записи из базы данных.

.        Редактирование записи в базе данных.

.        Сортировка записей по числовому полю.

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

.        Структурная сортировка записей.

.        Сохранение результатов обработки (запись в файл)

.        Поиск в базе данных (по одному и двум поисковым признакам) с выводом на экран найденных записей или сообщения о неуспешном поиске.

Вариант №10 "Игроки КХЛ 2012-2013"

ФИО

Дата рождения

Клуб

Позиция

Забитые шайбы



1. Описание глобальных переменных, разработанных функций

 

.1 Описание глобальных переменных


struct fio { char fam [L], im [L], ot [L]; };

Структура ФИО Фамилия Имя Отчество

struct data { int d, m, g; };

Структура дата рождения День Месяц Год

struct igrok { fio f; dr; char club [L]; char poz [L];

Структура записи ФИО Дата рождения Клуб Позиция игрока

struct node1 { igrok d; node1 *next; };

Структура списка клубов Структура игрок Ссылка на следующий узел

class list

Класс


1.2 Описание разработанных подпрограмм


Методы класса list

void clear1 ()

Очистка списка клубов

node1 *findNode (int j)

Поиск искомой записи из базы данных

list (): beg1 (NULL) {}

Список инициализаций

list (list &z)

Конструктор копирования

~list () {clear (); }

Деструктор

void inputFileList ()

Ввод сведений из файла

Вывод сведений

void outputFileList ()

Вывод сведений в файл

void sortFioList ()

Сортировка записей по ФИО игроков

void sortClubList ()

Сортировка записей по названию клуба

void addList ()

Добавление новой записи в базу данных

void deleteList ()

Удаление записи из базы данных

void sortShList ()

Сортировка записей по количеству забитых шайб

void redaсtList ()

Редактирование записи в базе данных

void inputBinFileList ()

Ввод сведений из бинарного файла

void outputBinFileList ()

Вывод базы данных в бинарный файл

void searchClub ()

Поиск записи по одному и по двум критериям

void sortData ()

Сортировка по дате рождения

Void sortPoz ()

Cортировка по позиции игрока



2. Тестирование программы


2.1 Главное меню программы, состоящее из 15 пунктов



2.2 Чтение данных из файла


программа переменная файл база

2.3 Просмотр данных



2.4 Сохранение данных в файл





2.5 Поиск по названию клуба



2.6 Поиск по позиции и количеству забитых шайб




2.7 Редактирование записей


2.7.1 Редактирование



2.7.2 Добавление




2.7.3 Удаление



2.8 Сортировка по ФИО




2.9 Сортировка по дате рождеения

 

Код программы:

#include "stdafx. h" // Используется для построения файла предкомпилированного заголовка с

// именем Win32. pch и файла предкомпилированных типов с именем // StdAfx. obj

#include "iostream" // Реализует основы ввода и вывода языка C++

#include "conio. h" // Реализует функции используемые операционой системой при вызове

// процедур работы с консолью

#include "fstream" // Реализует инструменты для файлового ввода и вывода.

#include "string" // Реализует стандартные строковые классы и шаблоны

#include "stdlib. h" // Реализует функции, занимающиеся выделением памяти, контроль

// процесса выполнения программы, преобразования типов и другие

#include "iomanip" // Реализует инструменты для работы с форматированием выводаnamespace std;int L=25;flag=0, flagPerech=0;gFileName [30];fio // структура фамилия, имя и отчество

{fam [L], im [L], ot [L];

};data // структура день, месяц, год рождения

{d,m,g;

};igrok // структура записи

{f; // фиоdr; // дата рожденияclub [L]; // клубpoz [L]; // позицияsh; // количество шайб

};node1 // структура списка клубов

{d; // структура игрока*next; // ссылка на следующий элемент

};list

{:*pbeg1;clear1 (); // очистка списка клубов*findNode (int j); // поиск записи:(): pbeg1 (NULL) {} // список инициализации(list &z); // конструктор копирования

~list () {clear1 (); } // деструкторinputFileList (); // чтение данных из файлаoutputList (); // вывод списка записейoutputFileList (); // запись списка в файлaddList (); // добавление записиdeleteList (); // удаление записиsortShList (); // сортировка по количеству забитых шайбsortClubList (); // сортировка по клубуsortFIOList (); // структурная сортировка по ФИОinputBinFileList (); // ввод списка из бинарный файлoutputBinFileList (); // Вывод списка в бинарный файлsearchClub (); // поиск записи по одному и по двум критериямRedactList (); // редактирование записиInputList (); // создание новой базы данныхsortData (); // структурная сортировка по датеsortPoz (); // сортировка по позиции игрока

};sravnFIO (fio d1, fio d2); // функция для сравнения ФИОsravnData (data d1, data d2); // функция сравнения даты рожденияmain () // основная функция

{(LC_ALL,"Russian");j;a,b;(1)

{ system ("cls");<<"\n МЕНЮ \n\n";<<" 1 - чтение данных из файла\n";<<" 2 - чтение данных из бинарного файла\n";<<" 3 - просмотр данных\n";<<" 4 - сохранение данных в файл\n";<<" 5 - сохранение данных в бинарный файл\n";<<" 6 - добавление клуба в список\n";<<" 7 - удаление клуба из списка\n";<<" 8 - редактирование клуба в списке\n";<<" 9 - сортировка списка по забитым шайбам\n";<<" 10 - сортировка списка по названию клуба\n";<<" 11 - сортировка списка по дате рождения\n";<<" 12 - сортировка списка по ФИО\n";<<" 13 - сортировка по позиции игрока\n";<<" 14 - поиска записи\n";<<" 15 - создание новой базы данных\n";<<"\n 0 - выход\n";<<"\nВыберите пункт меню: "; cin>>j;<<endl;(j) // выполнение функции по выбору

{1: a. inputFileList (); break;2: a. inputBinFileList (); break;3: a. outputList (); break;4: a. outputFileList (); break;5: a. outputBinFileList (); break;6: a. addList (); break;7: a. deleteList (); break;8: a. RedactList (); break;9: a. sortShList (); break;10: a. sortClubList (); break;11: a. sortData (); break;12: a. sortFIOList (); break;13: a. sortPoz (); break;14: a. searchClub (); break;15: a. InputList (); break;0: cout<<"Конец работы\n"; getch (); return; // выход из бесконечного цикла: cout<<"Ошибка ввода, повторите попытку"; getch (); // ошибка ввода

}

}

}list:: inputFileList () // чтение данных из файла

{ // pbeg1 - ссылка на список игроковfin;file [L];*p,*pend (NULL);<<"Введите имя входного файла: "; cin>>file;. open (file); // открытие исходного файла для считывания(fin. fail ()) // ошибка при открытии

{<<file<<" - не открыт. Для продолжения нажмите любую клавишу\n";();;

}(); // вызов функции очистки исходного списка(1)

{=new node1;(p==NULL)

{cout<<"Недостаточно памяти. Для продолжения нажмите любую клавишу\n";();. close ();;

}>>p->d. f. fam>>p->d. f. im>>p->d. f. ot>>p->d. dr. d>>p->d. dr. m>>p->d. dr. g>>p->d. club>>p->d. poz>>p->d. sh;(fin. fail ()) break;>next=NULL;(pend! =NULL) pend->next=p;pbeg1=p;=p;

}list:: clear1 () // очистка списка

{ // pbeg1 - возвращающаяся ссылка на список*p;(pbeg1! =NULL) // цикл очистки списка

{=pbeg1;=pbeg1->next;p; // возврат памяти компьютеру

}

}list:: outputList () // вывод списка записей

{ // pbeg1 - возвращающаяся ссылка на списокi;*p; // внутренняя переменная<<"Сведенья о игроках: \n\n";<<"____________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";(i=1, p=pbeg1; p! =NULL; i++, p=p->next) // вывод списка в таблицу<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p->d. f. fam<<" "<<setw (9) <<p->d. f. im<<" "<<setw (14) <<p->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p->d. dr. d<<". "<<setw (2) <<p->d. dr. m<<". "<<setw (2) <<p->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p->d. club<<"|"<<setw (10) <<p->d. poz<<"| "<<setw (3) <<p->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";<<"\nДля продолжения нажмите любую клавишу\n";p; // возврат памяти компьютеру();

}list:: outputFileList () // запись списка студентов в файл

{ // pbeg1 - возвращающаяся ссылка на списокfout;file [L];*p;i;<<"Введите имя выходного файла: "; cin>>file; // считывание имени файла. open (file); // открытие файла(fout. fail ()) // ошибка при открытие

{<<file<<" - не создан. Для продолжения нажмите любую клавишу\n";();;

}<<"____________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";(i=1, p=pbeg1; p! =NULL; i++, p=p->next) // вывод списка студентов в таблицу<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p->d. f. fam<<" "<<setw (9) <<p->d. f. im<<" "<<setw (14) <<p->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p->d. dr. d<<". "<<setw (2) <<p->d. dr. m<<". "<<setw (2) <<p->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p->d. club<<"|"<<setw (10) <<p->d. poz<<"| "<<setw (3) <<p->d. sh<<" |"<<endl;<<"|__|____________|__________|_________|__________|_____|\n";<<"\nДанные сохранены в файл. Для продолжения нажмите любую клавишу\n";. close (); // закрытие файлаp; // возврат памяти компьютеру();

}list:: addList () // добавление записи

{ // pbeg1 - возвращающаяся ссылка на список*p;nn,d1,m1,g1;=new node1;(p==NULL) // если не создана новая переменная

{cout<<"Недостаточно памяти. Для продолжения нажмите любую клавишу\n";();;

}{<<"Введите данные: \n"; // считывание данных о новом игроке<<"Фамилия: "; cin>>p->d. f. fam;<<"Имя: "; cin>>p->d. f. im;<<"Отчество: "; cin>>p->d. f. ot;<<"Дата рождения: \n"<<"День: "; cin>>d1;( (d1<0) || (d1>31))

{cout<<"\nВведенный день не существует! Повторите ввод (от 1 до 31) \n\n";<<"День: "; cin>>d1; }p->d. dr. d=d1;<<"Месяц: "; cin>>m1;( (m1<0) || (m1>12))

{cout<<"\nВведенный месяц не существует! Повторите ввод (от 1 до 12) \n\n";<<"Месяц: "; cin>>m1; }p->d. dr. m=m1;<<"Год: "; cin>>g1;( (g1<1950) || (g1>2000))

{cout<<"\nВведенная год не существует! Повторите ввод (от 1950 до 2000) \n\n";<<"Год: "; cin>>g1; }>d. dr. g=g1;<<"Клуб: "; cin>>p->d. club;<<"Позиция: "; cin>>p->d. poz;<<"Забитые шайбы: "; cin>>p->d. sh;>next=pbeg1; // добавление записи=p;<<"\nБаза данных создана. \nЖелаете добавить еще одну запись? (1 - да, 0 - нет): \n";>>nn;

}while (nn==1);();

}list:: deleteList () // удаление записи

{ // pbeg1 - возвращающаяся ссылка на список*p, *p0;j, i;(pbeg1==NULL) // при пустом списке

{<<"Список пуст. Для продолжения нажмите любую клавишу. \n";();;

}(); // вывод списка на экран<<"\nВведите номер удаляемой строки: ";>>i; // номер удаляемой строки<<endl;(i<1)

{<<"Такой строки нет. Для продолжения нажмите любую клавишу. \n";();;

}=findNode (i);(p0==NULL)

{<<"Такой строки нет. Для продолжения нажмите любую клавишу. \n";();;

}<<"___________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p0->d. f. fam<<" "<<setw (9) <<p0->d. f. im<<" "<<setw (14) <<p0->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p0->d. dr. d<<". "<<setw (2) <<p0->d. dr. m<<". "<<setw (2) <<p0->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p0->d. club<<"|"<<setw (10) <<p0->d. poz<<"| "<<setw (3) <<p0->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";(p0==pbeg1) // удаление выбранной записи

{=pbeg1->next; // удаление записиp0; // возврат памяти компьютеру

}

{(p=pbeg1; p->next! =p0; p=p->next);>next=p0->next; // удаление записи

}<<"Запись удалена. Для продолжения нажмите любую клавишу\n";();

}* list:: findNode (int j) // поиск совпадающей строки

{ // pbeg1 - возвращающаяся ссылка на искомого игрока, j - номер искомой строкиi;*p;=pbeg1;=1;(p! =NULL) // поиск заданной строки

{(i==j) return p;=p->next;++;

}NULL;

}list:: sortShList () // сортировка по забитым шайбам

{ // pbeg - возвращающаяся ссылка на список*p0,*p1,*p2;fl;(pbeg1==NULL||pbeg1->next==NULL) // если список не содержит элементов или содержит один элемент

{<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();;

}{fl=0;=pbeg1;=pbeg1->next;(p1->d. sh<p2->d. sh) // сортировка 1 и 2 элементов

{=1; p1->next=p2->next;->next=p1;=p2;

}(p0=pbeg1; p0->next->next! =NULL; p0=p0->next) // сортировка списка в цикле

{p1=p0->next;=p0->next->next;(p1->d. sh<p2->d. sh) // проверка элементов

{=1; p1->next=p2->next; p2->next=p1; p0->next=p2; }} // рокировка элементов

}while (fl==1);<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();

}list:: sortClubList () // сортировка по клубам

{ // pbeg - возвращающаяся ссылка на список*p0,*p1,*p2;fl;(pbeg1==NULL||pbeg1->next==NULL)

{<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();;

}{fl=0;=pbeg1;=pbeg1->next;(strcmp (p1->d. club,p2->d. club) >0) // сортировка 1 и 2 элементов

{fl=1; p1->next=p2->next;->next=p1;=p2;

}(p0=pbeg1; p0->next->next! =NULL; p0=p0->next) // сортировка списка в цикле

{p1=p0->next;=p0->next->next;(strcmp (p1->d. club,p2->d. club) >0) // проверка элементов

{fl=1; p1->next=p2->next; p2->next=p1; p0->next=p2; }} // рокировка элементов

}while (fl==1);<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();

}list:: sortPoz () // сортировка по позиции игрока

{ // pbeg - возвращающаяся ссылка на список*p0,*p1,*p2;fl;(pbeg1==NULL||pbeg1->next==NULL)

{<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();;

}{fl=0;=pbeg1;=pbeg1->next;(strcmp (p1->d. poz,p2->d. poz) >0) // сортировка 1 и 2 элементов по позиции игрока

{fl=1; p1->next=p2->next;->next=p1;=p2;

}(p0=pbeg1; p0->next->next! =NULL; p0=p0->next) // сортировка списка по позиции игрока в цикле

{p1=p0->next;=p0->next->next;(strcmp (p1->d. poz,p2->d. poz) >0) // проверка элементов

{fl=1; p1->next=p2->next; p2->next=p1; p0->next=p2; }} // рокировка элементов

}while (fl==1);<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();

}list:: sortFIOList () // сортировка по ФИО (структурная)

{ // pbeg - возвращающаяся ссылка на список студентов*p0,*p1,*p2;fl;(pbeg1==NULL||pbeg1->next==NULL)

{<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();; }{fl=0;=pbeg1;=pbeg1->next;(sravnFIO (p1->d. f,p2->d. f) >0) // сортировка 1 и 2 элементов по фио

{=1;->next=p2->next;->next=p1;=p2;

}(p0=pbeg1; p0->next->next! =NULL; p0=p0->next) // сортировка списка по ФИО в цикле

{=p0->next;=p0->next->next;(sravnFIO (p1->d. f,p2->d. f) >0) // проверка элементов

{=1; p1->next=p2->next; p2->next=p1; p0->next=p2; }} // рокировка элементов

}while (fl==1);<<"Элементы отсортированы! \nДля продолжения нажмите любую клавишу\n";();

}sravnFIO (fio f1, fio f2) // Функция сравнения по Ф.И. О.

}sravnData (data dr1, data dr2) // Функция сравнения по дате рождения.

{(dr1. g>dr2. g) return 1; // сравнение дня(dr1. g<dr2. g) return - 1;(dr1. m>dr2. m) return 1; // сравнение месяца(dr1. m<dr2. m) return - 1;(dr1. d>dr2. d) return 1; // сравнение отчества(dr1. d<dr2. d) return - 1;0;

}list:: inputBinFileList () // Ввод списка из бинарного файла

{ // pbeg1 - адрес списка студентовfin;file [L];* p,*pend (NULL);t;<<"Имя входного бинарного файла: "; cin>>file; // ввод адреса бинарного файла. open (file, ios:: binary); // открытие бинарного файла(fin. fail ()) // если файл не открыт

{<<file<<" - не открывается! \n";(); return;

}();(1) // бесконечный цикл считывания

{=new node1; // Создается узел(p==NULL) // если узел не создан

{<<" Нет памяти. \n";(); fin. close (); return;

}. read ( (char*) &t,sizeof (igrok)); // считывание из бинарного файла(fin. fail ()) break; // выход из цикла при ошибке>d=t; // запись в список>next=NULL;(pend! =NULL) pend->next=p;pbeg1=p;=p;

}<<"Файл введён! \n"; getch ();. close ();p; // возврат памяти компьютеру

}list:: outputBinFileList () // Вывод списка из бинарного файла

{ // pbeg1 - адрес списка студентовfout;file [L]; // строковая переменная*p;t;<<"Имя выходного Бинарного Файла: "; cin>>file; // адрес бинарного файла. open (file, ios:: binary);(fout. fail ()) // ошибка открытия файла

{<<file<<" - не открывается! \n";(); return;

}(p=pbeg1; p! =NULL; p=p->next) // вывод в файл в цикле

{=p->d;. write ( (char*) &t,sizeof (igrok));

}. close (); // закрытие бинарного файла<<"Сведения сохранены! \n";();

}:: list (list &z)

{node1 *pz1,*p1,*pend1 (NULL);(z. pbeg1==NULL) pbeg1=NULL;{for (pz1=pbeg1; pz1! =NULL; pz1=pz1->next)

{p1=new node1;(p1==NULL) {cout<<"Нет памяти! \n";(); exit (1);

}->d=pz1->d;->next=NULL;(pend1! =NULL) pend1->next=p1;pbeg1=p1;=p1;

}

}

}list:: searchClub () // поиск игрока по клубу

{i,fl,nn;*p;club [L];b;y;g [L];<<"Поиск записи: \n"<<endl;<<"1-Искать по клубу; \n2-Искать по позиции и кол-ву забитых шайб; \n"<<endl;<<"Выберете: ";>>y;(y==1)

{cout<<"\nВведите название клуба: ";>>club;=0;=0;=pbeg1;(p! =NULL) // поиск заданной строки

{(strcmp (club,p->d. club) ==0)

{=1;++;

}=p->next;

}(fl==0)

{<<"Записей, удовлетворяющих условию поиска, не найдено. \nДля продолжения нажмите любую клавишу\n";

_getch ();

_getch ();

}

{<<"Найдено записей: "<<nn<<"\n\n";<<"___________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";(i=1, p=pbeg1; p! =NULL; i++, p=p->next)(strcmp (club,p->d. club) ==0)

{<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p->d. f. fam<<" "<<setw (9) <<p->d. f. im<<" "<<setw (14) <<p->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p->d. dr. d<<". "<<setw (2) <<p->d. dr. m<<". "<<setw (2) <<p->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p->d. club<<"|"<<setw (10) <<p->d. poz<<"| "<<setw (3) <<p->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";

}<<"Для продолжения нажмите любую клавишу\n";();

}

}

{cout<<"\nВведите позицию игрока: ";>>g;<<"\nВведите количество забитых шайб: ";>>b;=0;=0;=pbeg1;(p! =NULL) // поиск заданной строки

{( (strcmp (g,p->d. poz) ==0) && (b==p->d. sh))

{=1;++;

}=p->next;

}(fl==0)

{<<"Записей, удовлетворяющих условию поиска, не найдено. \nДля продолжения нажмите любую клавишу\n";

_getch ();

_getch ();

}

{<<"Найдено записей: "<<nn<<"\n\n";<<"____________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";(i=1, p=pbeg1; p! =NULL; i++, p=p->next)( (strcmp (g,p->d. poz) ==0) && (b==p->d. sh))

{<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p->d. f. fam<<" "<<setw (9) <<p->d. f. im<<" "<<setw (14) <<p->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p->d. dr. d<<". "<<setw (2) <<p->d. dr. m<<". "<<setw (2) <<p->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p->d. club<<"|"<<setw (10) <<p->d. poz<<"| "<<setw (3) <<p->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";

}<<"Для продолжения нажмите любую клавишу\n";();

}

}

}list:: RedactList () // удаление записи

{ // pbeg1 - возвращающаяся ссылка на список*p, *p0;nn,j, i;(pbeg1==NULL) // при пустом списке

{<<"Список пуст. Для продолжения нажмите любую клавишу. \n";();;

}<<"___________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";(i=1, p=pbeg1; p! =NULL; i++, p=p->next) // вывод списка студентов в таблицу<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p->d. f. fam<<" "<<setw (9) <<p->d. f. im<<" "<<setw (14) <<p->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p->d. dr. d<<". "<<setw (2) <<p->d. dr. m<<". "<<setw (2) <<p->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p->d. club<<"|"<<setw (10) <<p->d. poz<<"| "<<setw (3) <<p->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";<<"\nВведите номер редактируемой строки строки: ";>>i; // номер удаляемой строки<<endl;(i<1)

{<<"Такой строки нет. Для продолжения нажмите любую клавишу. \n";();;

}=findNode (i);(p0==NULL)

{<<"Такой строки нет. Для продолжения нажмите любую клавишу. \n";();;

}<<"_________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p0->d. f. fam<<" "<<setw (9) <<p0->d. f. im<<" "<<setw (14) <<p0->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p0->d. dr. d<<". "<<setw (2) <<p0->d. dr. m<<". "<<setw (2) <<p0->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p0->d. club<<"|"<<setw (10) <<p0->d. poz<<"| "<<setw (3) <<p0->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";(p0==pbeg1) // удаление выбранной записи

{

{<<"\n\nВыберите, какой параметр изменить: \n1 - Фимилию\n2 - Имя\n3 - Отчество\n4 - День рождения\n5 - Месяц рождения\n6 - Год рождения\n7 - Клуб\n8 - Позицию\n9 - Забитые шайбы\n\nВыберите: ";>>nn;<<endl;(nn == 1)

{<<"Введите новую фамилию: ";>>p0->d. f. fam;

};(nn == 2)

{<<"Введите новое имя: ";>>p0->d. f. im;

};(nn == 3)

{<<"Введите новое отчество: ";>>p0->d. f. ot;

};(nn == 4)

{<<"Введите новый день рождения (от 1 до 31): ";>>p0->d. dr. d;

};(nn == 5)

};(nn == 6)

{<<"Введите новый год рождения (от 1950 до 2000): ";>>p0->d. dr. g;

};(nn == 7)

{<<"Введите новый клуб: ";>>p0->d. club;

};(nn == 8)

{<<"Введите новую позицию: ";>>p0->d. poz;

};(nn == 9)

{<<"Введите новое кол-во забитых шайб: ";>>p0->d. sh;

};<<"____________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p0->d. f. fam<<" "<<setw (9) <<p0->d. f. im<<" "<<setw (14) <<p0->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p0->d. dr. d<<". "<<setw (2) <<p0->d. dr. m<<". "<<setw (2) <<p0->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p0->d. club<<"|"<<setw (10) <<p0->d. poz<<"| "<<setw (3) <<p0->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";<<"Изменения вступили в силу. \nЖелаете еще что-нибудь изменить в данной записи (1 - да, 0 - нет): ";>>nn;

}(nn==1);

}

{(p=pbeg1; p->next! =p0; p=p->next);<<"____________________________________________________\n";<<"|№ | ФИО |Дата рожд | Клуб | Позиция |Шайбы|\n";<<"|--|-----------------------------------|----------|---------|----------|-----|\n";<<"|"<<setw (2) <<i<<"|"<<setw (10) <<p0->d. f. fam<<" "<<setw (9) <<p0->d. f. im<<" "<<setw (14) <<p0->d. f. ot<<"|"<<setfill ('0') <<setw (2) <<p0->d. dr. d<<". "<<setw (2) <<p0->d. dr. m<<". "<<setw (2) <<p0->d. dr. g<<"|"<<setfill (' ') <<setw (9) <<p0->d. club<<"|"<<setw (10) <<p0->d. poz<<"| "<<setw (3) <<p0->d. sh<<" |"<<endl;<<"|__|_____________|__________|_________|__________|_____|\n";

{<<"\n\nВыберите, какой параметр изменить: \n1 - ФИО\n2 - Дата рождения\n3 - Клуб\n4 - Позиция\n5 - Шайбы\n\nВыберите: ";>>nn;<<endl;(nn == 1)

{<<"Введите новую фамилию: ";>>p->d. f. fam;

};(nn == 2)

{<<"Введите новое имя: ";>>p->d. f. im;

};(nn == 3)

{<<"Введите новое отчество: ";>>p->d. f. ot;

};(nn == 4)

{<<"Введите новый день рождения: ";>>p->d. dr. d;

};(nn == 5)

{<<"Введите новый месяц рождения: ";>>p->d. dr. m;

};(nn == 6)

{<<"Введите новый год рождения: ";>>p->d. dr. g;

};(nn == 7)

{<<"Введите новый клуб: ";>>p->d. club;

};(nn == 8)

{<<"Введите новую позицию: ";>>p->d. poz;

};(nn == 9)

{<<"Введите новое кол-во забитых шайб: ";>>p->d. sh;

};<<"Изменения вступили в силу. \nЖелаете еще что-нибудь изменить в данной записи (1 - да, 0 - нет): ";>>nn;

}(nn==1);

}<<"Запись изменена. Для продолжения нажмите любую клавишу\n";();

}list:: InputList () // создание базы данных

{ // pbeg1 - возвращающаяся ссылка на список*p;nn,g1,m1,d1;=new node1;(p==NULL) // если не создана новая переменная

{cout<<"Недостаточно памяти. Для продолжения нажмите любую клавишу\n";();;

}{<<"Введите данные: \n"; // считывание данных о новом игроке<<"Фамилия: "; cin>>p->d. f. fam;<<"Имя: "; cin>>p->d. f. im;<<"Отчество: "; cin>>p->d. f. ot;<<"Дата рождения: \n"<<"День: "; cin>>d1;( (d1<0) || (d1>31))

{cout<<"\nВведенный день не существует! Повторите ввод (от 1 до 31) \n\n";<<"День: "; cin>>d1; }p->d. dr. d=d1;<<"Месяц: "; cin>>m1;( (m1<0) || (m1>12))

{cout<<"\nВведенный месяц не существует! Повторите ввод (от 1 до 12) \n\n";<<"Месяц: "; cin>>m1; }p->d. dr. m=m1;<<"Год: "; cin>>g1;( (g1<1950) || (g1>2000))

{cout<<"\nВведенная год не существует! Повторите ввод (от 1950 до 2000) \n\n";<<"Год: "; cin>>g1; }>d. dr. g=g1;<<"Клуб: "; cin>>p->d. club;<<"Позиция: "; cin>>p->d. poz;<<"Забитые шайбы: "; cin>>p->d. sh;>next=pbeg1; // добавление записи=p;<<"\nБаза данных создана. \nЖелаете добавить еще одну запись? (1 - да, 0 - нет): \n";>>nn;

}while (nn==1);();

}list:: sortData () // сортировка по дате рождения (структурная)

{ // pbeg - возвращающаяся ссылка на список*p0,*p1,*p2;fl;(pbeg1==NULL||pbeg1->next==NULL)

{<<"Элементы отсортированы! Для продолжения нажмите любую клавишу\n";();; }{fl=0;=pbeg1;=pbeg1->next;(sravnData (p1->d. dr,p2->d. dr) >0) // сортировка 1 и 2 элементов по дате рождения

{=1;->next=p2->next;->next=p1;=p2;

}(p0=pbeg1; p0->next->next! =NULL; p0=p0->next) // сортировка списка по дате рождения в цикле

{=p0->next;=p0->next->next;(sravnData (p1->d. dr,p2->d. dr) >0) // проверка элементов

{=1; p1->next=p2->next; p2->next=p1; p0->next=p2; }} // рокировка элементов

}while (fl==1);<<"Элементы отсортированы! \nДля продолжения нажмите любую клавишу\n";();

}

Заключение


В данной работе была разработана программа, которая полностью соответствует поставленным требованиям.

Было произведено тестирование программы, которое показало успешное выполнение всех функций, необходимых для базы данных.

Разработанная программа позволит повысить эффективность обработки данных и сократить время на поиск необходимых записей.

Список литературы


1. Б. Страуструп. Язык программирования С++, 3-е изд пер. с англ. - М.: "Бином", СПб.: "Невский диалект", 1999. - 991 с., ил.

. Т.А. Павловская. Ю.А. Щупак С/C++. Программирование на языке высокого уровня. - СПб.: Питер, 2007. - 461 с.: ил.

. Прата. Объектно-ориентированное программирование в C++.2 изд. - ЭКСМО, 2007. - 336 с.: ил.

. Т.А. Павловская, Ю.А. Щупак. С/C++. Структурное программирование: Практикум. - СПб.: Питер, 2007. - 239 с.: ил.

. Стефенс Д.Р. C++. Сборник рецептов. - КУДИЦ-ПРЕСС, 2007. - 624 с.

7. Стивен Прата. Язык программирования C++ (C++11). Лекции и упражнения = C++ Primer Plus, 6th Edition (Developer’s Library). - 6-е изд. - М.: Вильямс <http://ru.wikipedia.org/w/index.php?title=%D0%92%D0%B8%D0%BB%D1%8C%D1%8F%D0%BC%D1%81_%28%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE%29&action=edit&redlink=1>, 2012. - 1248 с.

. Айвор Хортон. Visual C++ 2010: полный курс = Ivor Horton’s Beginning Visual C++ 2010. - М.: Диалектика <http://ru.wikipedia.org/w/index.php?title=%D0%94%D0%B8%D0%B0%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%BA%D0%B0_%28%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE%29&action=edit&redlink=1>, 2010. - С.1216.

. Герберт Шилдт <http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D0%BB%D0%B4%D1%82,_%D0%93%D0%B5%D1%80%D0%B1%D0%B5%D1%80%D1%82>. Полный справочник по C++ = C++: The Complete Reference. - 4-е изд. - М.: Вильямс <http://ru.wikipedia.org/w/index.php?title=%D0%92%D0%B8%D0%BB%D1%8C%D1%8F%D0%BC%D1%81_%28%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE%29&action=edit&redlink=1>, 2011. - С.800

. Вячеслав Понамарев. Программирование на C++/C# в Visual Studio.net 2003 БХВ-Петербург. 2004

. В.Г. Давыдов. Технологии программирования C++. 2005. СПб.: "Невский диалект"

. Объектно-ориентированное программирование на С++. // Айра Пол // California, 1997г.

Похожие работы на - Программа, предназначенная для работы с базой данных 'Игроки КХЛ 2012-2013'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!