Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/124: Рейтинг темы: голосов - 124, средняя оценка - 4.84
0 / 9 / 1
Регистрация: 21.03.2012
Сообщений: 27
1

Описать класс "поезд", содержащий поля "пункт назначения", "номер поезда", "время отправления"

21.03.2012, 19:19. Показов 24514. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с классом

Описать класс «поезд», содержащий следующие закрытые поля:
• название пункта назначения;
• номер поезда (может содержать буквы и цифры);
• время отправления.
• Предусмотреть свойства для получения состояния объекта.
• Описать класс «вокзал», содержащий закрытый массив поездов. Обеспечить сле¬дующие возможности:
• вывод информации о поезде по номеру с помощью индекса;
• вывод информации о поездах, отправляющихся после введенного с клавиату¬ры времени;
• перегруженную операцию сравнения, выполняющую сравнение времени от¬правления двух поездов;
• вывод информации о поездах, отправляющихся в заданный пункт назначения.
Информация должна быть отсортирована по времени отправления.
Написать про¬грамму, демонстрирующую все разработанные элементы классов.
2
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2012, 19:19
Ответы с готовыми решениями:

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

Класс с именем BUS, содержащий следующие поля: номер рейса, тип автобуса, пункт назначения, время отправления
Класс с именем BUS, содержащий следующие поля: номер рейса, тип автобуса, пункт назначения,...

Описать класс "Поездка". Поля: номер поезда, пункт назначения, дни следования, время прибытия, время стоянки
Описать класс "Поездка". Поля: номер поезда, пункт назначения, дни следования, время прибытия,...

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

1
0 / 9 / 1
Регистрация: 21.03.2012
Сообщений: 27
08.04.2012, 00:06  [ТС] 2
Лучший ответ Сообщение было отмечено MaZaHaKa как решение

Решение

Вообщем вот, сделал:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace poezda_vokzal
{
    class Program
    {
        static void Main(string[] args)
        {
            Vokzal vokzal = new Vokzal();
            int Kol = 4;
            for (int i = 0; i < Kol; i++)
            {
                vokzal.Add();
            }
            vokzal[0].ShowInfo();
            vokzal[1].ShowInfo();
            vokzal[2].ShowInfo();
            vokzal.ShowLastTime();
            vokzal.ShowEndPunct();
            Console.ReadKey();
        }
    }
 
    class Vokzal      //КЛАСС ВОКЗАЛ
    {
        List<Poezd> Poezda = new List<Poezd>();     //объявление коллекции поездов
 
        public Poezd this[int index]    //пользовательский индексатор для класса
        {
            get
            {
                return Poezda[index];
            }
            set
            {
                if (index >= 0 && value is Poezd)
                {
                    Poezda.Add(value);
                    Poezda.Sort();
                }
            }
        }
 
        public void Add()       //метод добавления поезда в коллекцию
        {
            int namber = 0;
            bool flag = true;
            while(flag)
            {
                try
                {
                    Console.Write("Введите номер поезда: ");
                    namber = Convert.ToInt32(Console.ReadLine());
                    flag = !flag;
                }
                catch
                {
                    Console.WriteLine("Неверный формат номера");
                }
            }
 
            Console.Write("Введите конечный пункт назначения: ");
            string EndPunct = Console.ReadLine();
            Poezd poezd = new Poezd(EndPunct, namber);
            Poezda.Add(poezd);
            Poezda.Sort();
        }
 
        public void ShowLastTime()  //метод для вывода информации поездов отправляемых после заданного времени
        {
            Console.Write("Введите время для сравнения: ");
            Poezd p1 = new Poezd("null", 1);
            for (int i = 0; i < Poezda.Count; i++)
                if (p1 < this[i])
                    this[i].ShowInfo();
        }
 
        public void ShowEndPunct() //метод для вывода ин-ии о поездах, отправляющихся в заданный пункт назначения
        {
            Console.Write("Введите пункт назначения: ");
            string punkt = Console.ReadLine();
            int num=0;
            for (int i = 0; i < Poezda.Count; i++)
            {
                if (Poezda[i].EndPunct == punkt)
                {
                    Console.WriteLine(Poezda[i]);
                    num++;
                }
            }
            if (num == 0)
                Console.WriteLine("В заданный пункт назначения поезда не ходят!");
        }
 
    }
 
    class Poezd: IComparable     //КЛАСС ПОЕЗД
    {
        String endPunct;            //поле понкта назначения
        public String EndPunct      //свойство поля пункта назначения
        {
            get { return endPunct; }
            set { endPunct = value; }
        }
 
        int namber;                 //поле номера поезда
        public int Namber           //свойство поля номера поезда
        {
            get { return namber; }
            set 
            {
                if(value>0)
                    namber = value; 
            }
        }
 
        DateTime time;              //поле времени отправления
        public DateTime Time        //свойство поля времени отправления
        {
            get { return time; }
            set { time = value; }
        }
 
        void SetTime()       //метод для ввода времени
        {
            while (true)
            {
                int hour = 0;
                int minute = 0;
                Console.Write("Введите время отправления поезда [hour.minute]: ");
                string t = Console.ReadLine();
                string h = "";
                string m = "";
                int q;
                bool flag = false;
                for (int i = 0; i < t.Length; i++)
                {
                    if (!flag)
                    {
                        if (Int32.TryParse(Convert.ToString(t[i]), out q))
                        {
                            h = h + t[i];
                        }
                        else
                        {
                            flag = true;
                            continue;
                        }
                    }
                    if (flag)
                    {
                        if (Int32.TryParse(Convert.ToString(t[i]), out q))
                        {
                            m = m + t[i];
                        }
                    }
                }
                try
                {
                    hour = Int32.Parse(h);
                    minute = Int32.Parse(m);
                    Time = new DateTime(2012, 12, 12, hour, minute, 0);
                    return;
                }
                catch
                {
                    Console.WriteLine("Введен неверный формат времени");
                }
 
            }
        }
 
        public Poezd(string EndPunct, int Namber)       //Перегруженный конструктор класса
        {
            this.EndPunct = EndPunct;
            this.Namber = Namber;
            SetTime();
        }
        public Poezd(string EndPunct, int Namber, DateTime Time)       //Перегруженный конструктор класса
        {
            this.EndPunct = EndPunct;
            this.Namber = Namber;
            this.Time = Time;
        }
 
        public int CompareTo(object input)   //реализования метода интерфейса IComparable для сортировки поездов по времени отправления
        {
            if (input is Poezd)
            {
                Poezd p1 = (Poezd)input;
                if (this.Time > p1.Time)
                    return 1;
                else if (this.Time < p1.Time)
                    return -1;
                else
                    return 0;
            }
            return 0;
        }
 
        public override string ToString()    //переопределение метода ToString()
        {
            string info = String.Format("Поезд №{0} следует в пункт назначения {1}. Время отправления: {2}.{3}!",
                Namber,EndPunct,time.Hour,time.Minute);
            return info;
        }
        public void ShowInfo()      //вывод информации о поезде
        {
            Console.WriteLine(ToString());
        }
 
        public static bool operator >(Poezd p1, Poezd p2)   //Перегрузга оператора >
        {
            if (p1.Time > p2.Time)
                return true;
            return false;
        }
        public static bool operator <(Poezd p1, Poezd p2)   //Перегрузга оператора <
        {
            if (p1.Time < p2.Time)
                return true;
            return false;
        }
        public static bool operator ==(Poezd p1, Poezd p2)   //Перегрузга оператора ==
        {
            if (p1.Time == p2.Time)
                return true;
            return false;
        }
        public static bool operator !=(Poezd p1, Poezd p2)   //Перегрузга оператора !=
        {
            if (p1.Time != p2.Time)
                return true;
            return false;
        }
    }
}

А вот другое задание к этой-же работе:
Выполнить задания лабораторной работы 8(т.е код которой выше), используя для хранения экземпляров разработанных классов стандартные параметризованные коллекции. Во всех классах реализовать интерфейс IComparable и перегрузить операции отношения для реализации значимой семантики сравнения объектов по какому-либо полю на усмотрение студента.
Можете объяснить как это делать
2
08.04.2012, 00:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2012, 00:06
Помогаю со студенческими работами здесь

Разработать класс для Train: Пункт назначения, Номер поезда, Время отправления, Число общих мест, Купейных, Плацкартных
Разработать класс для описанного ниже объекта. Включить в класс методы set (…), get (…), show (…)....

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

Создать БД с расписанием движения поездов: номер поезда, пункт назначения, время отправления ,время в пути, ст
Создать БД с расписанием движения поездов: номер поезда, пункт назначения, время отправления ,время...

Train: Пункт назначения,Номер поезда,Время отправления,Число общих мест,Купейных, Плацкартных
Train: Пункт назначения, Номер поезда, Время отправления, Число общих мест, Купейных, Плацкартных....

Train: Пункт назначения, номер поезда, время отправления, число мест(общих, купе, плацкарт, люкс)
Train: Пункт назначения, номер поезда, время отправления, число мест(общих, купе, плацкарт, люкс)....

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

Python Train: Пункт назначения,Номер поезда,Время отправления,Число общих мест,Купейных, Плацкартных. Создать массив объ
6. Train: Пункт назначения, Номер поезда, Время отправления, Число общих мест, Купейных,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru