Задача на c#

Выполнен
Заказ
5167107
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
13 Янв 2023 в 11:00
Цена
900 ₽
Блокировка
5 дней
Размещен
12 Янв 2023 в 03:04
Просмотров
237
Описание работы

Этап 1

Создать JSON-файл с данными о грузовиках на автобазе:

[

 {

  "Id": 1,

  "Name": "Renault Magnum",

  "Driver": {

"Name" : "John",

"Surname" : "Dou",

"Age" : 35,

"Experience" : 10

},

  "State": "base"

 },

 {

  "Id": 2,

  "Name": "Volvo FH12",

  "Driver": {

"Name" : "Jack",

"Surname" : "Dou",

"Age" : 55,

"Experience" : 30

},

  "State": "base"

 },

 {

  "Id": 3,

  "Name": "DAF XF",

  "Driver": {

"Name" : "Jane",

"Surname" : "Dou",

"Age" : 45,

"Experience" : 15

},

  "State": "base"

 }

При запуске программы запросить у пользователя пути к файлам считывания и выгрузки. 

Предусмотреть обработку исключения в случае, если json-файл не удастся найти по указанному пути.

Этап 2

Разработать меню программы. Для выбора тех или иных действий.

Пример:

Меню:

  1. Отобразить текущее состояние грузовиков
  2. Показать данные грузовика по id

Выберите действие: 

При выборе пункта 1, программа должна отобразить в консоли таблицу, с данными из json-файла:

№    | Грузовик      | Водитель | Состояние 

1   | Renault Magnum   | Саша  | На базе

2   | Volvo FH12   | Петя  | На базе

3   | DAF XF      | Вася  | На базе

При выборе пункта 2, программа должна запросить у пользователя номер (id) грузовика и вывести информацию о нем:

№      | 1

Марка      | Renault Magnum

Водитель   | Саша

Состояние   | На базе   

Предусмотреть обработку исключения на случай, если пользователь вводит несуществующий номер грузовика. В случае ошибки просить пользователя ввести номер еще раз

Этап 3

Доработать меню программы. Дописать еще 2 пункта

Пример:

Меню:

  1. Отобразить текущее состояние грузовиков
  2. Показать данные грузовика по id
  3. Обновить состояние грузовика
  4. Завершить программу и выгрузить все данные

Выберите действие:

При выборе пункта 3, программа должна запросить у пользователя изменить состояние грузовика:

Пример:

Обновление состояния грузовика

Укажите номер грузовика и состояние через пробел: 1 run

Грузовика “Renault Magnum” - На маршруте

Состояния:

  • На базе
  • Внутреннее имя - "base"
  • Имя класса: InBaseState
  • Метод ChangeDriver - вернуть сообщение о том, что водитель поменян успешно
  • Метод StartRun - изменить состояние грузовика на “run” и показать сообщение об этом
  • Метод StartRepair - изменить состояние грузовика на “repair” и показать сообщение об этом
  • На маршруте
  • Внутреннее имя - "run"
  • Имя класса: InRunState
  • Метод ChangeDriver - вернуть сообщение об ошибке, так как водителя нельзя менять в пути
  • Метод StartRun - вернуть сообщение об ошибке - грузовик и так в пути
  • Метод StartRepair - изменить состояние грузовика на “repair” и показать сообщение об этом
  • В ремонте
  • Внутреннее имя - "repair"
  • Имя класса: InRepairState
  • Метод ChangeDriver - поменять водителя и показать сообщение об этом
  • Метод StartRun - случайным образом изменить состояние грузовика на “run” или “base” и показать сообщение об этом
  • Метод StartRepair - вернуть сообщение об ошибке - уже в ремонте


Изменение состояния необходимо сделать с помощью паттерна “Состояние”

Реализовать класс генерирующий случайного водителя из 4х параметров:

  • Имя
  • Фамилия
  • Стаж
  • Возраст


После получения нового водителя записывать его в грузовик в методе изменения водителя.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу1 год
Средний балл4.52
СтоимостьНазначаете сами
ЭкспертВыбираете сами
Уникальность работыот 70%
Время выполнения заказа:
4 часа 40 минут
Выполнен в срок
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Прямой эфир