2 / 2 / 1
Регистрация: 26.01.2014
Сообщений: 59
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Работа с классами и пересечение их между собой (задача о городах и поездах)19.08.2014, 16:02. Показов 1339. Ответов 14
Метки нет Все метки)
(
Здравствуйте.
Тут попалась в руки задачка, вкратце суть: Есть города, в каждом городе есть станция, на станции пассажиры, у пасажира есть цель поездки(N - ый город). Между городами ездят поезда, в поезде N вагонов, в вагоне N мест. Написать грубо говоря всю эту систему (без графики), поезд прибыл-погрузился-отбыл, ну и естественно не телепортировался, а где-то там медленно двигается по оперативке к определенному пункту назначения. Прошу прощения если разжевал все уж слишком, но как кто-то говорил правильно поставленный вопрос - это половина ответа. city.h
Не ясно взаимодействие классов между собой, да и внутри например как создать N количество пассажиров. Прямее сказать: хочется на деле увидеть пару живых примеров
0
|
|
19.08.2014, 16:02 | |
Ответы с готовыми решениями:
14
Задача Сравнения между собой Работа между классами Переставить между собой элементы массива между собой, кроме максимального Работа со значением переменной между классами |
19.08.2014, 17:42 | 2 |
Город это вершина графа. Дорога между двумя городами это ребро графа. Поиск пути на графе между двумя городами. http://algolist.manual.ru/maths/graphs/
0
|
2 / 2 / 1
Регистрация: 26.01.2014
Сообщений: 59
|
|
19.08.2014, 18:02 [ТС] | 3 |
Alexandr_1982, Вы, Меня не поняли, мне не нужно искать кратчайший маршрут, мне просто нужно построить систему,
это задача проверка работы с классами, взаимодействие. Создание 150 пассажиров на каждой станции, их размещение по вагонам и достижение их целей (Городов, вокзалов), ведение статистики. Не больше, не меньше.
0
|
![]() 3220 / 1747 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
19.08.2014, 18:52 | 4 |
Ну так и нужно сначала спроектировать систему, а потом программу писать. А поезда у вас в реальном времени должны двигаться что ли?
Мне кажется, еще стоит кассы добавить, в которых билеты будут продаваться в реальном времени.
1
|
Вежливость-главное оружие
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
|
|
19.08.2014, 19:15 | 5 |
Напоминает матрешку. Такие задачи кажуться сложными, но это на первый взгляд. Делайте все по тексту задачи и все.
1
|
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
19.08.2014, 19:15 | 6 |
В общем случае программы, библиотеки и прочие продукты жизнедеятельности разработчиков состоят из данных, логики и интерфейса.
Большую часть словесного описания в первом посте составляет описание данных. Соответственно, и классы, представленные ниже - данные. "Взаимодействие" классов между собой - это логика. Которой пока нет. Для ее реализации кажется разумным написать другие классы и(или) функции. Но для этого нужно четко описать функционирование разрабатываемой модели. Поскольку сейчас описания нет, могу только выделить один более-менее сформулированный вопрос: Если предполагается, что в начальном состоянии системы на каждой станции есть некоторое количество пассажиров (т.е. мы обрабатываем набор пассажиров, а не обслуживаем поток), то все просто - пишем отдельную функцию, которая обходит все станции и добавляет на них пассажиров. Станция же должна предоставить соответствующие методы для добавления. Функция, которая принимает на вход станцию и доступный вагон и перемещает пассажиров со станции в вагон. Какая будет связь м/у станцией и составом - смотрите по удобству. Мое травмированное сознание видит тут дискретно-событийную имитационную модель.
0
|
![]() 3220 / 1747 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
19.08.2014, 19:32 | 7 |
Ну, поскольку программа объектно-ориентированная, то наверно поезд должен иметь функцию-член, загружающую в него стоящих на платформе станции пассажиров.
0
|
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
19.08.2014, 19:35 | 8 |
В контексте этой модели я вижу поезд как контейнер людей. Так что он предоставляет интерфейс добавления и удаления пассажира.
Станция - другой контейнер с аналогичными методами. Процесс перехода пассажира - отдельная сущность.
0
|
Andrej
|
|||||
19.08.2014, 19:41
#9
|
|||||
Не по теме: А можно придерусь к конструктору? Таки есть же initializer lists.
0
|
![]() 3220 / 1747 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
19.08.2014, 19:41 | 10 |
Ну, в реальной жизни поезд сам с помощью своих проводников загружает пассажиров. Мы же реальную жизнь моделируем.
0
|
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
19.08.2014, 19:48 | 11 |
Модели всегда реализуются с некоторой точностью до необходимого уровня. Поскольку целей не было обозначено, то я не вижу повода, по которому этот момент можно считать принципиальным.
Хоть и было сказано о персонале, но мне упорно представляется поезд с экскаваторным ковшом. Добавлено через 1 минуту И раз уж на то пошло, люди самостоятельно заходят в поезд когда его состояние меняется на разрешающее вход.
0
|
47 / 39 / 15
Регистрация: 28.09.2012
Сообщений: 818
|
|
20.08.2014, 01:29 | 12 |
По написанному автору в начале темы. У меня логика такая, Есть линия(вымышленная) по ней движется поезд 10 точек проезда == след остановка(след город). Есть структура, имя пасажира, куда он едет, где он сейчас(город)- если он в пути - название будет "в пути", ну и можно еще чего впихнуть например возраст. делаем массив структур, ну или List, . поезд приезжает проверяет сколько мест свободных, и пропускает людей пока не будет максимум, или они не кончатся, смотрит ли кому выйти надо, и отправляется в вымышленный путь. Приезжаем на след станцию смотрим список пасажиров, кому выйти -выходят. Смотрим колво свободных мест пускаем пока места свободны или люди не кончатся. едем далие.
Весьма просто реализуется - заметно что ведь действия однообразные Добавлено через 3 минуты процесс проверки выхода думаю и так ясен. Если пробежались по листу пассажиров, если он "в пути" проверяем куда он едет, если сюда то удаляем его с листа
0
|
![]() 3220 / 1747 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
20.08.2014, 02:57 | 13 |
Мне кажется, у каждого поезда должно быть расписание, по которому он должен следовать с некоторыми случайными отклонениями. У каждого пассажира должен быть билет, в котором указаны соответствующие данные (если мы не предусмотрим левых пассажиров, которые за наличку едут). На станции сажать пассажиров по билетам. Каждому месту в вагоне должен соответствовать пассажир с билетом. Можно еще предусмотреть случайные отклонения пассажиров от своего "расписания", например, опоздания сесть на поезд или сойти на своей станции. Также у платформы должен быть список стоящих на ней пассажиров, меняющийся в реальном времени.
0
|
47 / 39 / 15
Регистрация: 28.09.2012
Сообщений: 818
|
|
20.08.2014, 03:36 | 14 |
ну написать еще можно много чего, я всево лишь базовую простейшую систему описал по которой дальше б можно было по нужде улучшать. Зачем например продумывать все ето если задача стоит лишь в том что выше описал, а остальное можно легко добавить что надо будет уже ему
Добавлено через 2 минуты тем болие автор и написал что ему просто надо систему по которой я сделал описание, тоесть еслибы ему билеты и лишняя дребидень надо было он бы отписал). Да да добавлять в такую систему можно много чего
0
|
20.08.2014, 05:14 | 15 | |||||
0
|
20.08.2014, 05:14 | |
Помогаю со студенческими работами здесь
15
Работа с крупными файлами и ускорение их сверки между собой Работа с контейнерами: данные обнуляются при взаимодействии форм между собой Задача о городах Задача о дорогах и городах Задача о трех городах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |