Автор работы: Пользователь скрыл имя, 20 Июля 2015 в 18:55, курсовая работа
Разработать алгоритм и составить программу обработки списка данных «Гостиница», выполнив следующие этапы:
1.	Представление (построение, создание) списка данных в виде линейного однонаправленного списка с элементами сложного типа
2.	Выполнить удаление из исходного списка сведений о гостиницах, в которых нет свободных номеров
3.	Выполнить перемещение в начало исходного списка сведений о пятизвёздочных гостиницах
cout<<"6.Skopirovat v Massiv"<<endl;
cout<<"7.Otobrazit Massiv"<<endl;
cout<<"8.Sortirovat Massiv"<<endl;
cout<<"9.Skopirovat iz Faila"<<endl;
cout<<"10.Nayti zapis' v spiske"<<endl;
cout<<"11.Udalenie otelei bez svobodnih nomerov"<<endl;
cout<<"12.Peremeshenie 5-ti zvezdochnih gostinic"<<endl;
cout<<"0.Vyhod"<<endl;
cout<<endl<<endl;
cout<<"Vyberite:_";
После запуска программы необходимо выбрать соответствующий пункт меню, путем ввода его номера с клавиатуры.
Выходные параметры программы: результатом работы программы являются списки гостиниц, представленные в табличной форме.
4.2 Руководство программиста
Данная программа написана с использованием языка Си++. Минимальное количество обрабатываемых данных ограничено (не менее 20). Данные вводятся клавиатуры . Данная программа состоит из основного блока и 12 подпрограмм.
Таблица 4.2.1 – Идентификаторы функции add_data
| Переменная | Тип | Назначение | 
| i | long | Указывает номер записи в массиве | 
| n | long | Указывает на количество записей в массиве | 
Таблица 4.2.2 – Идентификаторы функции delete_data
| Переменная | Тип | Назначение | 
| i | long | Указывает номер удаляемой записи в массиве | 
| n | long | Указывает на количество записей в массиве | 
| j | int | Указывает номер удаляемого элемента | 
Таблица 4.2.3 – Идентификаторы функции sp_copy_mas
| Переменная | Тип | Назначение | 
| i | long | Указывает на количество записей в массиве | 
| n | long | Указывает номер записи в массиве | 
 
Таблица 4.2.4 – Идентификаторы функции sort_mas
| Переменная | Тип | Назначение | 
| i | int | Указывает на количество записей в массиве | 
| n | long | Указывает на номер записи в массиве | 
| j | int | Указывает на номер записи в массиве | 
| tmp | int | Переменная для копирования записи количества номеров | 
| c[j] | char | Переменная для копирования строк | 
Таблица 4.2.5 – Идентификаторы функции show_mas
| Переменная | Тип | Назначение | 
| i | long | Указывает на количество записей в массиве | 
Таблица 4.2.6 – Идентификаторы функции fail
| Переменная | Тип | Назначение | 
| i | int | Указывает номер записи в массиве | 
| n | int | Указывает на количество записей в массиве | 
Таблица 4.2.7 – Идентификаторы функции find_data
| Переменная | Тип | Назначение | 
| t | long | Указывает количество найденных записей | 
Таблица 4.2.8 – Идентификаторы функции peremesh
| Переменная | Тип | Назначение | 
| n | int | Указывает номер записи в массиве | 
Таблица 4.2.9 – Идентификаторы функции udalenie
| Переменная | Тип | Назначение | 
| n | int | Указывает номер записи в массиве | 
 
5. Анализ результатов
Шаг 1. Запуск программы;
Шаг 2. Выбор пункта формирование списка (1);
Шаг 3. Ввод количества гостиниц (n=32)
Шаг 4. Ввод данных
Ожидаемый результат
| Название | Класс | Общее количество мест | Количество свободных мест | Минимальная Цена | 
| Milana | 4 | 120 | 32 | 2000 | 
| Kinder | 3 | 130 | 22 | 200 | 
| GoGs | 5 | 550 | 36 | 5000 | 
| Finnish | 4 | 600 | 32 | 6000 | 
| Dobi | 3 | 250 | 65 | 400 | 
| Max | 3 | 100 | 22 | 400 | 
| Apple | 2 | 200 | 35 | 220 | 
| Evas | 4 | 500 | 12 | 1200 | 
| Fox | 2 | 45 | 11 | 500 | 
| Lelik | 2 | 30 | 10 | 120 | 
| Toto | 4 | 250 | 13 | 1300 | 
| Gomer | 1 | 15 | 2 | 100 | 
| Frank | 5 | 777 | 120 | 5000 | 
| Sandra | 3 | 450 | 35 | 4000 | 
| Rex | 4 | 600 | 36 | 6000 | 
| Toll | 1 | 50 | 21 | 200 | 
| Oleg | 1 | 30 | 25 | 100 | 
| Kira | 1 | 50 | 10 | 150 | 
| Ermak | 3 | 320 | 23 | 150 | 
| UFO | 5 | 750 | 32 | 6000 | 
| Polli | 5 | 450 | 65 | 3500 | 
| GHOST | 5 | 120 | 32 | 5000 | 
| jIjI | 3 | 320 | 23 | 4500 | 
| Kiska | 4 | 120 | 32 | 2000 | 
| Gosha | 2 | 250 | 21 | 1200 | 
| Alex | 4 | 300 | 23 | 5500 | 
| Lumos | 4 | 250 | 34 | 4600 | 
| Pappa | 3 | 330 | 125 | 2000 | 
| Reg | 5 | 600 | 254 | 5500 | 
| Kollags | 2 | 120 | 0 | 100 | 
| Gagas | 1 | 20 | 1 | 80 | 
| Hippo | 4 | 450 | 125 | 2000 | 
Полученный результат
Вывод: полученный результат совпал с ожидаемым.
Шаг 1. Выберем пункт копировать в файл (5);
Шаг 2. Проверка наличия данных в файле ftext_in.txt.
 
Вывод: данные сохранены в файле
Шаг 1. Выберем в меню пункт удаление (11);
Ожидаемый результат:
| Название | Класс | Общее количество мест | Количество свободных мест | Минимальная Цена | 
| Milana | 4 | 120 | 32 | 2000 | 
| Kinder | 3 | 130 | 22 | 200 | 
| GoGs | 5 | 550 | 36 | 5000 | 
| Finnish | 4 | 600 | 32 | 6000 | 
| Dobi | 3 | 250 | 65 | 400 | 
| Max | 3 | 100 | 22 | 400 | 
| Apple | 2 | 200 | 35 | 220 | 
| Evas | 4 | 500 | 12 | 1200 | 
| Fox | 2 | 45 | 11 | 500 | 
| Lelik | 2 | 30 | 10 | 120 | 
| Toto | 4 | 250 | 13 | 1300 | 
| Gomer | 1 | 15 | 2 | 100 | 
| Frank | 5 | 777 | 120 | 5000 | 
| Sandra | 3 | 450 | 35 | 4000 | 
| Rex | 4 | 600 | 36 | 6000 | 
| Toll | 1 | 50 | 21 | 200 | 
| Oleg | 1 | 30 | 25 | 100 | 
| Kira | 1 | 50 | 10 | 150 | 
| Ermak | 3 | 320 | 23 | 150 | 
| UFO | 5 | 750 | 32 | 6000 | 
| Polli | 5 | 450 | 65 | 3500 | 
| GHOST | 5 | 120 | 32 | 5000 | 
| jIjI | 3 | 320 | 23 | 4500 | 
| Kiska | 4 | 120 | 32 | 2000 | 
| Gosha | 2 | 250 | 21 | 1200 | 
| Alex | 4 | 300 | 23 | 5500 | 
| Lumos | 4 | 250 | 34 | 4600 | 
| Pappa | 3 | 330 | 125 | 2000 | 
| Reg | 5 | 600 | 254 | 5500 | 
| Gagas | 1 | 20 | 1 | 80 | 
| Hippo | 4 | 450 | 125 | 2000 | 
Полученный результат
Вывод: полученный результат совпал с ожидаемым.
Шаг 1. Выбрать в меню пункт перемещение (12)
Шаг 2. Перенести пятизвёздочные гостиницы в начало списка:
 
Следовательно, ожидаемый результат:
| Название | Класс | Общее количество мест | Количество свободных мест | Минимальная Цена | 
| Polli | 5 | 450 | 65 | 3500 | 
| Frank | 5 | 777 | 120 | 5000 | 
| GHOST | 5 | 120 | 32 | 5000 | 
| Reg | 5 | 600 | 254 | 5500 | 
| UFO | 5 | 750 | 32 | 6000 | 
| GoGs | 5 | 550 | 36 | 5000 | 
| Milana | 4 | 120 | 32 | 2000 | 
| Kinder | 3 | 130 | 22 | 200 | 
| Finnish | 4 | 600 | 32 | 6000 | 
| Dobi | 3 | 250 | 65 | 400 | 
| Max | 3 | 100 | 22 | 400 | 
| Apple | 2 | 200 | 35 | 220 | 
| Evas | 4 | 500 | 12 | 1200 | 
| Fox | 2 | 45 | 11 | 500 | 
| Lelik | 2 | 30 | 10 | 120 | 
| Toto | 4 | 250 | 13 | 1300 | 
| Gomer | 1 | 15 | 2 | 100 | 
| Sandra | 3 | 450 | 35 | 4000 | 
| Rex | 4 | 600 | 36 | 6000 | 
| Toll | 1 | 50 | 21 | 200 | 
| Oleg | 1 | 30 | 25 | 100 | 
| Kira | 1 | 50 | 10 | 150 | 
| Ermak | 3 | 320 | 23 | 150 | 
| jIjI | 3 | 320 | 23 | 4500 | 
| Kiska | 4 | 120 | 32 | 2000 | 
| Gosha | 2 | 250 | 21 | 1200 | 
| Alex | 4 | 300 | 23 | 5500 | 
| Lumos | 4 | 250 | 34 | 4600 | 
| Pappa | 3 | 330 | 125 | 2000 | 
| Gagas | 1 | 20 | 1 | 80 | 
| Hippo | 4 | 450 | 125 | 2000 |