Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СДПА_ЛР_1.doc
Скачиваний:
28
Добавлен:
01.04.2025
Размер:
187.9 Кб
Скачать

Диспетчер космического транспортного флота

Пусть имеется планета (с заданными координатами), производящая необходимый для жизни жителей других планет продукт. Этот продукт нужно доставить по местам назначения с помощью имеющегося в распоряжении флота, состоящего из кораблей, способных ходить на различные расстояния. Условно выделяется три типа кораблей – ближнего (1 световой год), среднего (10 световых лет) и дальнего (до 100 с.л.) следования.

Диспетчер флота имеет информацию о планетах: их названия, координаты (в трёхмерном пространстве) и потребности в продукте. Кроме этого он имеет список имеющихся кораблей. Его задачей является распределение заданий между капитанами кораблей согласно классам их суден. В результате этой работы формируется таблица, содержащая список планет для каждого корабля (с указанием класса судна, расстояния до каждой планеты и объёма перевозимого груза).

Условия:

  • Координатная единица – 1 с.г., единица измерения груза – тонна.

  • Корабль за один вылет посещает только одну планету и затем возвращается обратно. Факультативно, после реализации основного задания: снять это ограничение и определять маршрут каждого корабля исходя из запасов топлива. Например, для корабля ближнего действия суммарная длина маршрута, включая обратный путь, не должна превышать 1 с.г. В этом случае в таблицу нужно выводить полный маршрут корабля (названия планет в порядке посещения). Возможно, таких записей для каждого корабля будет несколько.

  • Кораблей каждого типа может быть несколько. В результирующей таблице они должны группироваться по своему классу.

  • Записи в группах должны сортироваться по убыванию длины маршрута.

  • Результирующая таблица представляет собой текстовый файл с разделителями-табуляциями ("\t").

  • Исходные данные хранятся в текстовом файле следующего формата: первый набор строк описывает имеющиеся корабли (класс, вместимость, название). После завершения описания флота следует пустая строка, за которой идёт описание планет (название, координаты, потребности в продукте). Первой строкой в этом наборе является планета-порт. Данные во всех строках разделяются табуляциями.

  • Запас продукта в порту неограничен.

Проекты создаются аналогично проектам C++: «Файл/Новый/Проект», в открывшемся диалоге указывается используемый язык и тип приложения – консольное.

Рекомендуемые источники

Джеффри Рихтер. CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#. Мастер-класс. / Пер. с англ. – М. : Издательство «Русская Редакция» : СПб. : Питер, 2007. – 656 стр.: ил.

7