Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 19.11.2017
Сообщений: 60

Класс: Реализовать класс "Время" по заданному описанию. Сравнить Т1 и Т2.

20.10.2018, 09:41. Показов 1263. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Язык C#
Класс- "Время"

Члены класса :
Часы, минуты,секунды;(Поля должны быть закрытыми)

Методы :
Конструктор, метод вывода времени и составляющей суток (до 6 –ночь, до 12 – утро, до 18 – день, до 24- вечер)

Операторы перегрузки:
Cложение (+),вычитание (-), сравнение времени < и >

Исходные данные :
t1, t2 ,t3, t4 -время

Результат :
T1 = t1+ t3
T2 = t4 – t2

Сравнить Т1 и Т2
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2018, 09:41
Ответы с готовыми решениями:

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

Класс ATC, реализовать сортировку и поиск по заданному ключу
Предусмотреть в программе с работающей со структурой, описанной ниже, сохранение вводимых данных в файл и возможность чтение из ранние...

Реализовать класс Время
Язык C# (Помогите с перегрузкой пожалуйста) Класс- &quot;Время&quot; .Поля ,Часы, минуты,секунды; Методы:Конструктор, метод вывода времени и...

6
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
20.10.2018, 13:41
wiktoriya04, сначала опишем класс Время:
Кликните здесь для просмотра всего текста

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
public class Время
{
    // закрытые поля класса
    private int часы, минуты, секунды;
 
    // конструктор без параметров
    public Время()
    {
        var now = DateTime.Now;
        часы = now.Hour;
        минуты = now.Minute;
        секунды = now.Second;
    }
 
    // конструктор с параметрами
    public Время(int hour, int minute, int second)
    {
        часы = hour;
        минуты = minute;
        секунды = second;
    }
 
    // вычисление составляющей суток
    private string DayComponent()
    {
        return часы < 6 ? "ночь" 
                        : часы < 12 ? "утро" 
                                    : часы < 18 ? "день" 
                                                : "вечер";
    }
 
    // метод вывода времени и составляющей суток
    public override string ToString()
    {
        return string.Format("{0:D2}:{1:D2}:{2:D2} - {3}",
                                часы, минуты, секунды, DayComponent());
    }
 
    // перегрузка операции сложения
    public static Время operator +(Время time1, Время time2)
    {
        var ts1 = new TimeSpan(time1.часы, time1.минуты, time1.секунды);
        var ts2 = new TimeSpan(time2.часы, time2.минуты, time2.секунды);
        var sum = ts1 + ts2;
        return new Время(sum.Hours, sum.Minutes, sum.Seconds);
    }
 
    // перегрузка операции вычитания
    public static Время operator -(Время time1, Время time2)
    {
        var ts1 = new TimeSpan(time1.часы, time1.минуты, time1.секунды);
        var ts2 = new TimeSpan(time2.часы, time2.минуты, time2.секунды);
        var sub = ts1 - ts2;
        return new Время(sub.Hours, sub.Minutes, sub.Seconds);
    }
 
    // перегрузка оператора меньше
    public static bool operator <(Время time1, Время time2)
    {
        var ts1 = new TimeSpan(time1.часы, time1.минуты, time1.секунды);
        var ts2 = new TimeSpan(time2.часы, time2.минуты, time2.секунды);
        return ts1 < ts2;
    }
 
    // перегрузка оператора больше
    public static bool operator >(Время time1, Время time2)
    {
        var ts1 = new TimeSpan(time1.часы, time1.минуты, time1.секунды);
        var ts2 = new TimeSpan(time2.часы, time2.минуты, time2.секунды);
        return ts1 > ts2;
    }
}

потом в методе Main() программы напишем использование класса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var t1 = new Время(5, 45, 12);
var t2 = new Время(9, 3, 4);
var t3 = new Время(18, 5, 8);
var t4 = new Время(23, 18, 59);
var T1 = t1 + t3;
var T2 = t4 - t2;
Console.WriteLine("t1: " + t1);
Console.WriteLine("t2: " + t2);
Console.WriteLine("t3: " + t3);
Console.WriteLine("t4: " + t4);
Console.WriteLine("T1 (t1+t3): " + T1);
Console.WriteLine("T2 (t4-t2): " + T2);
if (T1 > T2)
    Console.WriteLine("T1 больше T2");
else
    Console.WriteLine("T1 не больше T2");
1
0 / 0 / 0
Регистрация: 19.11.2017
Сообщений: 60
20.10.2018, 17:23  [ТС]
Спасибо Вам большое за помощь)
0
0 / 0 / 0
Регистрация: 19.11.2017
Сообщений: 60
01.11.2018, 21:30  [ТС]
ashsvis,(Если можете,помогите пожалуйста )
C#
1
2
3
4
private string DayComponent()
        {
return chas < 6 ? "ночь" : chas < 12 ? "утро" : chas < 18 ? "день" : "вечер";
        }
(Можно ли как-нибудь реализовать по-другому :не через условную операцию?)

Добавлено через 6 минут
т.е через if)
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
01.11.2018, 21:34
wiktoriya04, То есть перегрузка операторов и переопределение методов вам не смущает, а тернарный оператор да.
C#
1
2
3
4
            if (chas < 6) return "ночь";
            else if (chas < 12) return "утро";
            else if (chas < 18) return "день";
            else return "вечер";
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
02.11.2018, 08:09
wiktoriya04, надеюсь, ответ PoPsa85 Вас устроит?
0
0 / 0 / 0
Регистрация: 19.11.2017
Сообщений: 60
02.11.2018, 17:40  [ТС]
Конечно))Спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2018, 17:40
Помогаю со студенческими работами здесь

Описать класс «Домашняя библиотека»; реализовать поиск книги по заданному признаку
Помогите решить програму: Описать класс «домашняя библиотека». предусмотреть возможность работы с произвольным числом книг, поиска...

Создать класс по описанию на с++
// Описать класс с именем WORKER, содержащий следующие поля: ■ NAME — фамилия и инициалы работника; ■ POS — название должности; ■ YEAR —...

Найти класс по описанию
Такое задание: Найти класс по описанию 1. Реализует интерфейс List 2. Является приватным статическим классом внутри популярного...

Создать класс Время. Члены класс Часы, минуты, секунды
Сам себя запутал в коде. Никак не выходит то, что требуется. Новичок, поэтому ошибки свойственны) В скрине приложил само задание. ...

Реализовать класс Triangle, опираясь на класс Angle для представления углов
Реализовать класс Triangle, опираясь на класс Angle для представления углов.Класс Triangle является классом для представления треугольника....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru