Каждая характеристика j-ой строки Fi разделяется пробелом

Анализ предметной области

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

Диспетчер подает на ввод файл с составленным графиком вылетов пилотов, рассчитанный на один месяц, и файл с ФИО пилотов.

Файл «График вылетов» ( далее GB) описан следующим образом:

В n строчек записана информация о пилотах, каждый i-тая строка характеризуется следующими параметрами:

1) ФИО(далее fio) - уникальный идентификатор пилота, состоящий из последовательности: фамилия имя отчество.

Фамилия(далее fa) – последовательность букв русского алфавита . Максимальная длинна фамилии: 15 символов. Выделяется не менее 15 символов на фамилию

Имя(далее im) - последовательность букв русского алфавита. Максимальная длинна имени: 15 символов. Выделяется не менее 15 символов на имя.

Отчество(далее ot) - последовательность букв русского алфавита. Максимальная длинна отчества: 15 символов. Выделяется не менее 15 символов на отчество.

2) Номер(далее no)- уникальный идентификатор пилота, состоящий из натуральных чисел от 1 до n. Максимальная длинна номера пилота - 2 символа. Выделяется не менее 5 позиций на номер

3) Пункт отправления(далее po) - место, где в данный момент находится пилот. Записан с помощью букв русского алфавита. Записан в формате «населённый пункт» Максимальная длинна пункта отправления: 20 символов. Выделяется не менее 20 символов на пункт отправления. Пункт отправления не может совпадать с пунктом назначения для конкретно одного пилота.

4) Пункт назначения(далее pn) - место куда направится. Записан с помощью букв русского алфавита. Записан в формате «населённый пункт». Максимальная длинна пункта назначения: 20 символов. Выделяется не менее 20 символов на пункт назначения. Пункт назначения не может совпадать с пунктом отправления для конкретно одного пилота.

5) Дата вылета(далее dt) – дата, когда отправляется i-тый самолет. Состоит из последовательной записи дата, месяц, год.

Дата- Записывается с помощью цифр от 0 до 9. ОДЗ: 0<дата<=31

Месяц- Записывается с помощью цифр от 0 до 9. ОДЗ: 0<месяц<=12

Год- Записывается с помощью цифр от 0 до 9. ОДЗ: Любое натуральное число.

Дата вылета имеет формат «дата-месяц-год». Год записывается в полном формате. Максимальная длинна даты вылета: 15 символов. Выделяется не менее 10 символов на дату вылета

6) Рейс(далее rs) - уникальный идентификатор самолета. Записывается с помощью цифр от 1 до 9. Максимальная длинна рейса самолета: 4 символов. Выделяется не менее 4 символов на рейс.

Каждые характеристики пилота разделяется между собой пробелом.

Примечание: каждая i-тая строка не может содержать более 110 символов

Пример:

Протасов Иван Григорьевич 3 Москва Владивосток 10-12-2012 2345

Файл «ФИО пилотов» ( далее Fi ) описан следующим образом:

В n строчек записаны ФИО пилотов, где каждое j-тое ФИО характеризуется следующими параметрами:

1) Фамилия(далее fa) – последовательность букв русского алфавита. Максимальная длинна фамилии: 15 символов

2) Имя(далее im) - последовательность букв русского алфавита. Максимальная длинна имени: 15 символов

3) Отчество(далее ot) - последовательность букв русского алфавита. Максимальная длинна отчества: 15 символов

Каждая характеристика j-ой строки Fi разделяется пробелом.

Программа должна считывать информацию с файлов, и, соответствуя определенным правилам, выводить файл «Ответ» (далее OTV) с информацией о допустимости или недопустимости данного расписания по следующему списку условий:

1) Смотрим, сколько раз выбранный i-тый номер пилота встречается в расписании.

2) Если i-тый номер пилота встречается более 3х раз, то пилот не удовлетворяет условию задачи.

3) Если i-тый номер пилота встречается 3 или менее раз, то пилот удовлетворят условию задачи.

4) Если хотя бы один пилот не удовлетворяет условию задачи, то расписание не допустимо. И выводится информация о рейсах и, соответствующих рейсу, информации о пилоте, не удовлетворяющие условию задачи, отсортированных по номеру рейса.

5) Если все пилоты удовлетворяют условию задачи, то расписание допустимо. Выводится информация о допустипости данного расписания.

Пример 1 (в случае недопустимости расписания):

Входные:

Протасов Иван Григорьевич 3 Москва Владивосток 10-12-2012 4345

Протасов Иван Григорьевич 3 Москва Владивосток 10-12-2012 2334

Протасов Иван Григорьевич 3 Москва Владивосток 10-12-2012 1209

Протасов Иван Григорьевич 3 Москва Владивосток 10-12-2012 2345

Лучин Федорович Захаров 7 Киев Париж 21-11-2010 5683

Лучин Федорович Захаров 7 Киев Нью-Йорк 21-11-2010 3409

Лучин Федорович Захаров 7 Киев Нью-Йорк 21-11-2010 6664

Лучин Федорович Захаров 7 Киев Филадельфия 11-11-2010 4560

Протасов Иван Григорьевич 1 Москва Владивосток 10-12-2012 5678

Протасов Иван Григорьевич 1 Москва Владивосток 10-12-2012 5678

Протасов Иван Григорьевич 1 Москва Владивосток 10-12-2012 5678

Протасов Иван Григорьевич 1 Москва Владивосток 10-12-2012 5678

Выходные:

Протасов Иван Григорьевич 3 Москва Владивосток 10-12-2012 2345

Лучин Федорович Захаров 7 Киев Нью-Йорк 21-11-2010 3409

Протасов Иван Григорьевич 1 Москва Владивосток 10-12-2012 5678

Пример 2 (в случае допустимости расписания):

Входные:

Протасов Иван Григорьевич 3 Москва Владивосток 11-12-2012 2345

Лучин Федорович Захаров 7 Киев Нью-Йорк 21-11-2010 3409

Протасов Иван Григорьевич 1 Москва Владивосток 10-12-2012 5678

Лучин Федорович Захаров 7 Киев Нью-Йорк 20-11-2010 3556

Лучин Федорович Захаров 7 Киев Нью-Йорк 21-11-2010 3409

Выходные:

Расписание допустимо.

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