Разработка алгоритмов решения отдельных функциональных задач

Функциональная задача «Регистрация гостей»

Назначение и характеристика. Ввод информации о новом госте: фамилия, имя, отчество, паспортные данные (серия, номер), дата приезда, дата отъезда, номер в гостинице.

Разработка алгоритмов решения отдельных функциональных задач - student2.ru

Рис. 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”.

Разработка алгоритмов решения отдельных функциональных задач - student2.ru

Рис. 2.4. Файл с квитанцией гостя

Функциональная задача «Выбор постояльцев, отъезжающих сегодня»

Назначение и характеристика. Осуществляется выбор всех гостей, дата отъезда которых совпадает с текущей датой.

Разработка алгоритмов решения отдельных функциональных задач - student2.ru

Рис. 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.

Функциональная задача «Оформление задержки с выпиской дополнительной квитанции»

Назначение и характеристика. Увеличение количества дней пребывания гостя в гостинице.

Разработка алгоритмов решения отдельных функциональных задач - student2.ru

Рис. 2.6. Оформление задержки с выпиской дополнительной квитанции

Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.

Результаты решения.Происходит изменение даты отъезда гостя и формирование новой квитанции.

Алгоритм решения.

1) Вводятся фамилия, имя, отчество гостя для оформления задержки проживания.

2) Вводится новая дата отъезда.

3) Формируется файл с новой квитанцией.

Функциональная задача «Досрочный отъезд с выпиской дополнительной квитанции»

Назначение и характеристика. Оформление досрочного отъезда.

Разработка алгоритмов решения отдельных функциональных задач - student2.ru

Рис. 2.7. Досрочный отъезд с выпиской дополнительной квитанции

Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.

Результаты решения. Происходит изменение даты отъезда гостя и формирование новой квитанции.

Алгоритм решения.

1) Вводятся фамилия, имя, отчество гостя для оформления задержки проживания.

2) Вводится новая дата отъезда.

3) Формируется файл с новой квитанцией.

Функциональная задача «Поиск гостя»

Назначение и характеристика. Осуществляется поиск гостя по фамилии, имени, отчеству.

Используемая информация. Массив структур guest, nomer. Файлы “Guest.txt”, “Nomer.txt”.

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

Алгоритм решения.

1) Вводятся фамилия, имя, отчество гостя.

2) Если постоялец с такими данными проживает в гостинице, то выводится вся информация о нем, если нет, то выводится сообщение, что человек с указанными данными не проживает в гостинице.

Наши рекомендации