Каждая характеристика 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
Выходные:
Расписание допустимо.