Разработка алгоритмов решения отдельных функциональных задач
Функциональная задача «Регистрация гостей»
Назначение и характеристика. Ввод информации о новом госте: фамилия, имя, отчество, паспортные данные (серия, номер), дата приезда, дата отъезда, номер в гостинице.
Рис. 2.3. Регистрация нового гостя
Используемая информация. Данные о госте хранятся в массиве структур guest, который записывается вфайл “Guest.txt”. При регистрации необходимо выбрать свободный номер из списка номеров, который хранится в массиве структур nomer, который записан в файле “Nomer.txt”.
Структура «Список гостей»
structguest
{
string fam;//фамилия
string name;//имя
stringotc; //отчество
passport p; //паспортные данные серия и номер из отдельной структуры
tmarrival;//дата приезда
tmdepart; //дата отъезда
intnom; //номер в гостинице
};
//Паспортные данные
structpassport
{
intseria;// серия паспорт
intnumb;//номер паспорта
};
Структура «Список номеров»
structnomer
{
intnum; //номер апартамента
stringklass; //класс номера: Standart, Suite(сьют, повышенной комфортности), Lux
intplace; //количество мест в номере
doublecost;//стоимость за сутки
intflag;//признак занят-1, свободен-0
};
Результаты решения.В результате имеем файл “Guest.txt” с информацией обо всех гостях гостиницы.Формируется файл с квитанцией “Schet”+”ФИО гостя”+”.txt”. В файле “Nomer.txt” изменятся признак занятости номера flagс 0 на 1.
Математическое описание.
В результате регистрации нового гостя формируется файл с квитанцией, в которой стоимость проживания вычисляется по формуле:
schet=(t2-t1)*cost, (1)
где schet – стоимость проживания,
t1, t2 – дата приезда и отъезда соответственно,
cost – стоимость проживания в сутки.
Алгоритм решения.
1) Считывание данных из файлов“Guest.txt” и “Nomer.txt” в массивы структур guest иnomerсоответственно, переменной n присваиваетсяколичество гостей, переменной m присваивается количество номеров.
2) При добавлении гостя количество nувеличивается на 1.
3) Производится ввод данных о госте с клавиатуры и сохранение в соответствующих полях структурыguest.
4) В массиве структур nomerполе flag=1 для выбранного номера.
5) Производится запись измененных данных в файлы “Guest.txt” и “Nomer.txt”.
6) Создается файл с квитанцией для гостя “Schet”+”ФИО гостя”+”.txt”.
Рис. 2.4. Файл с квитанцией гостя
Функциональная задача «Выбор постояльцев, отъезжающих сегодня»
Назначение и характеристика. Осуществляется выбор всех гостей, дата отъезда которых совпадает с текущей датой.
Рис. 2.5. Выбор пункта меню «Выбор постояльцев, отъезжающих сегодня»
Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.
Результаты решения.Вывод на экран всех гостей, отъезжающих в текущий день.
Алгоритм решения.
1) В отдельных переменных запоминаются текущий день, месяц, год с использованием структуры tmи функции localtime.
2) Происходит сравнение текущей даты с датой отъезда гостя, если они совпадают, то информация о постояльце выводится на экран.
Функциональная задача «Освобождение мест»
Назначение и характеристика. Оформление отъезда гостей.
Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.
Результаты решения. Информация об отъезжающем госте удаляется из массива структур guest и из файла “Guest.txt”, занятый номер становится свободным.
Алгоритм решения.
1) Если дата отъезда гостя не совпадает с текущей датой, то информация о таком госте записывается во временный массив структур, и новый массив записывается в файл “Guest.txt”. Изменяется количество гостей.
2) В массиве структур nomer освобожденному номеру присваиваетсяflag=0.
Функциональная задача «Оформление задержки с выпиской дополнительной квитанции»
Назначение и характеристика. Увеличение количества дней пребывания гостя в гостинице.
Рис. 2.6. Оформление задержки с выпиской дополнительной квитанции
Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.
Результаты решения.Происходит изменение даты отъезда гостя и формирование новой квитанции.
Алгоритм решения.
1) Вводятся фамилия, имя, отчество гостя для оформления задержки проживания.
2) Вводится новая дата отъезда.
3) Формируется файл с новой квитанцией.
Функциональная задача «Досрочный отъезд с выпиской дополнительной квитанции»
Назначение и характеристика. Оформление досрочного отъезда.
Рис. 2.7. Досрочный отъезд с выпиской дополнительной квитанции
Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.
Результаты решения. Происходит изменение даты отъезда гостя и формирование новой квитанции.
Алгоритм решения.
1) Вводятся фамилия, имя, отчество гостя для оформления задержки проживания.
2) Вводится новая дата отъезда.
3) Формируется файл с новой квитанцией.
Функциональная задача «Поиск гостя»
Назначение и характеристика. Осуществляется поиск гостя по фамилии, имени, отчеству.
Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.
Результаты решения. Вывод на экран полной информации о госте.
Алгоритм решения.
1) Вводятся фамилия, имя, отчество гостя.
2) Если постоялец с такими данными проживает в гостинице, то выводится вся информация о нем, если нет, то выводится сообщение, что человек с указанными данными не проживает в гостинице.