Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для Deimos_
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352

Структура Train (Вывод поезда на консоль)

14.03.2016, 13:11. Показов 2378. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел эту задачу, очень понравилась для практики.
Начал делать сам и вот тут заклинило, как вытащить из моего обьетка(TrainHangar) эти поезда на консоль.
Вот класс Train
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Train
    {
        //---------------------------------ПЕРЕМЕННЫЕ ---------------------------------
        protected string Target;
        protected int numberTrain;
        protected DateTime DepartureTime = new DateTime();
 
        //---------------------------------КОНСТРУКТОРЫ ---------------------------------
        public Train() { }
        public Train(string TargetPlace,int TrainN, DateTime StartDate)
        {
            Target = TargetPlace;
            numberTrain = TrainN;
            DepartureTime = StartDate;
        }
        //---------------------------------СВОЙСТВА ---------------------------------
        protected string Targer
        {
            get { return Target; }
            set
            {
                if(value.Length >= 15)
                    Console.WriteLine("Error! too long name");
                else
                    Target = value;
            }
        }
        protected int NumberTrain
        {
            get { return numberTrain; }
            set { numberTrain = value; }
        }
        protected DateTime Departure
        {
            get { return DepartureTime; }
            set { DepartureTime = value; }
        }
        //---------------------------------МЕТОДЫ ---------------------------------
        public void DisplayInfo()
        {
            Console.WriteLine("Номер поезда: {0}", numberTrain);
            Console.WriteLine("Место отправки: {0}", Target);
            Console.WriteLine("Время отправки: {0:T}", DepartureTime);
        }
    }
А вот основной метод
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
static void Main(string[] args)
        {
            /*необходимо описать структуру с именем TRAIN, содержащую следующие поля: 
            название пункта назначения; 
            номер поезда;
            время отправления.
            Написать программу, выполняющую следующие действия:
            ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; 
            записи должны быть упорядочены по времени отправления поезда;
            вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры;
            если таких поездов нет, выдать на дисплей соответствующее сообщение.*/
            string PlaceName;
            int numberTrain;
            string patternTime = "HH:mm:ss";
            object[] TrainHangar = new object[2];
 
            for(int i = 0; i < 2; i++)
            {
                PlaceName = "Moscow";
                numberTrain = 1234;
                string DateValue = Console.ReadLine();
 
                Train myTrain = new Train(PlaceName, numberTrain, DateTime.ParseExact(DateValue, patternTime, null));
                TrainHangar[i] = myTrain;               
            }
 
            Console.ReadKey();
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.03.2016, 13:11
Ответы с готовыми решениями:

Структура Train, определить для каждого поезда процент заполнения вагонов
Ребята, помогите, пожалуйста, определить для каждого поезда процент заполнения вагонов и посчитать средний процент заполнения вагонов для...

Структура Train, вывод информации о поездах
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать...

Структура TRAIN: вывод информации о поездах направляющихся в заданный пункт
Описать структуру с именем TRAIN,содержащую следующие поля: -название пункта назначения -номер поезда -время отправления Написать...

6
60 / 60 / 54
Регистрация: 19.02.2012
Сообщений: 262
14.03.2016, 13:20
А зачем вам массив object, когда можно создать обобщенный лист и добавлять данные (List<Train>), плюс не нужна будет распаковка и запаковка переменных
0
 Аватар для Deimos_
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
14.03.2016, 13:27  [ТС]
ммм... просто создать лист с типом Train и таким же способом добавлять их?

Добавлено через 52 секунды
Я лист не люблю не умею с ним вообше работать.

Добавлено через 3 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string PlaceName;
            int numberTrain;
            string patternTime = "HH:mm:ss";
            List<Train> TrainHangar = new List<Train>();
 
            for(int i = 1; i <= 2; i++)
            {
                PlaceName = "Moscow";
                numberTrain = 1234;
                string DateValue = Console.ReadLine();
 
                Train myTrain = new Train(PlaceName, numberTrain, DateTime.ParseExact(DateValue, patternTime, null));
                TrainHangar[i] = myTrain;               
            }
 
            Console.ReadKey();
Вот так изменил теперь при добавлении выходит ошибка индекс за пределами.(строка 12)
Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
14.03.2016, 13:30
Лучший ответ Сообщение было отмечено Deimos_ как решение

Решение

Deimos_,
Во-первых, зачем массив object, если можно сделать массив Train
C#
15
Train[] TrainHangar = new Train[2];
После этого можно будет обратиться к методу DisplayInfo.
Во-вторых, плохая идея в классе обращаться к консоли, лучше перегрузить ToString для класса Train:
C#
1
2
3
4
public override string ToString()
{
    return string.Format("Номер поезда: {0}\nМесто отправки: {1}\nВремя отправки: {2:T}", numberTrain, Target, DepartureTime);
}
И выводить так:
C#
1
Console.WriteLine(TrainHangar[i]);
Добавлено через 2 минуты
Deimos_,
если решили использовать List, то добавляйте поезда так:
C#
1
TrainHangar.Add(new Train(PlaceName, numberTrain, DateTime.ParseExact(DateValue, patternTime, null)));
1
 Аватар для Deimos_
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
14.03.2016, 13:32  [ТС]
Цитата Сообщение от Даценд Посмотреть сообщение
плохая идея в классе обращаться к консоли
А идея плоха в смысле много времени занимает обработка или небезопасно ?

Добавлено через 30 секунд
Все понял суть в самом массиве, буду дальше делать.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
14.03.2016, 13:41
Цитата Сообщение от Deimos_ Посмотреть сообщение
А идея плоха в смысле много времени занимает обработка или небезопасно?
Идея плоха, тем что теряется универсальность применения класса. Организуя вывод в консоль из класса, теряете позможность применения класса в WF, WPF и т.п.
1
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
14.03.2016, 14:16
Deimos_, Да и вообще старайтесь минимизировать различные ненужные зависимости, связи и прочее в коде. Плюс, с точки зрения ООП, ваш класс Треин является представлением поезда, у которого нет такого поведения, как вывод своей информации в консоль

пс. в заголовке вы написали структура, а в коде создаете класс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2016, 14:16
Помогаю со студенческими работами здесь

Описать структуру Train, содержащую информацию о маршруте поезда
Здравствуйте, уважаемые профи! Подскажите с задачей Описать структуру с именем Train, содержащую следующие поля: nazn-название пункта...

Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; • номер поезда; •
Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; • номер поезда; • время отправления. ...

Реализовать класс Train, в котором хранится информация о номере поезда, его времени отправления и пункте назначения
Запишите определение класса TRAIN, в котором хранится информация о номере поезда, его времени отправления и пункте назначения. В классе...

Описать запись с именем TRAIN, содержащую следующие поля:название пункта назначения; номер поезда;время отправления
привет мальчики, помогите решить задачки пожалуйста, сегодня скинули, оказывается без них я не смогу получить зачёт :( Вариант 7. В...

Структура TRAIN
Структуры Вариант 8 1. Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; • номер поезда; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru