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

Работа с классами и конструктором

28.01.2016, 23:52. Показов 917. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу работы с классами. Реализовать класс Date с конструктором, принимающим 4 целочисленные переменные (days, hours, minutes, seconds).
Создать для каждой принимаемой переменной закрытые члены класса и открытые возвращающие методы. Продемонстрировать работу класса в главной функции.

Правильно ли я решил задание?
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _22
{
    class Program
    {
        static void Main(string[] args)
        {
            int days = 0, hours = 0, minutes = 0, seconds = 0;
            Date info = new Date(7, 4, 6, 23);
            info.Information(days, hours, minutes, seconds);
 
            Console.ReadLine();
        }
    }
 
    public class Date
    {
        private int one;
        private int two;
        private int three;
        private int four;
 
         public Date(int days, int hours, int minutes, int seconds)
        {
            one = days;
            two = hours;
            three = minutes;
            four = seconds;
        }
 
        public int days { get { return one; } }
        public int hours { get { return two; } }
        public int minutes { get { return three; } }
        public int seconds {  get { return four; } }
 
        public void Information(int days, int hours, int minutes, int seconds)
        {
            days = this.days;
            hours = this.hours;
            minutes = this.minutes;
            seconds = this.seconds;
 
            Console.Write("days {0}, hours {1}, minutes {2}, seconds {3}", days, hours, minutes, seconds);
        }
    }
}
Или метод лучше совсем убрать, а в главной функции создать переменные и присвоить им значение свойств, а потом вывести на экран?
вот так
C#
1
2
3
4
5
int day = info.days; 
int hour = info.hours; 
int minute = info.minutes; 
int seconds = info.seconds;
Console.WriteLine("d {0}, h {1}, m {2}, s {3}", day, hour, minute, seconds);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2016, 23:52
Ответы с готовыми решениями:

В чем разница между конструктором по умолчанию и конструктором с параметрами?
Объясните пожалуйста в чем разница между конструктором по умолчанию и конструктором с параметрами, константа внутри класса объявляется...

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

Работа с конструктором
Здравствуйте форумчане! Не пинайте сильно, я начинающий программер и у меня возникли такие проблемы: При вводе ФИО, если ввести только...

4
26 / 26 / 14
Регистрация: 09.06.2014
Сообщений: 162
29.01.2016, 00:06
Метод не универсален, он работает только с консолью. Я не думаю что преподавателю критично будет наличие или отсутствие метода. Если следовать чётко ТЗ, то его не должно быть)
И свойства (get set) лучше именовать с заглавной буквы.
C#
1
public int Days { get { return one; } }
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
29.01.2016, 00:26
Цитата Сообщение от Iron Brain Посмотреть сообщение
Правильно ли я решил задание?
Почти, но, я думаю, что ты тоже самое уже у препода спрашивал

Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
namespace _22
{
    class Program
    {
        static void Main(string[] args)
        {
            
            Date date = new Date(7, 4, 6, 23);
            Console.WriteLine(date);
            Console.WriteLine();
            try
            {
                Date date1 = new Date(47, 4, 6, 23);
                Console.WriteLine(date1);
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }
 
            Console.WriteLine();
            Date date2 = new Date(31, 19, 57, 57);
            Console.WriteLine(date2);
 
            Console.ReadLine();
        }
    }
 
    public class Date
    {
        private int days;
        public int Days
        {
            get { return days; }
            set
            {
        
            if (value < 32 && value > 0) days = value;
            else throw new ArgumentException("День от 1 до 31!","Day");
        
        } }
 
        private int hours;
        public int Hours
        {
            get { return hours; }
            set
            {
 
            if (value < 24 && value >= 0) hours = value;
            else throw new ArgumentException("Часы от 0 до 23!","Hours");
        
        } }
 
        private int minutes;
        public int Minutes
        {
            get { return minutes; }
            set
            {
 
                if (value < 60 && value >= 0) minutes = value;
                else throw new ArgumentException("Минуты от 0 до 59!","Minutes");
 
            }
        }
 
        private int seconds;
        public int Seconds
        {
            get { return seconds; }
            set
            {
 
                if (value < 60 && value >= 0) seconds = value;
                else throw new ArgumentException("Секунды от 0 до 59!", "Seconds");
 
            }
        }
        //конструктор по умолчанию
        public Date()
        {
            Days = 1;
            Hours = 0;
            Minutes = 0;
            Seconds = 0;
        }
        //конструктор с параметрами
        public Date(int _days, int _hours, int _minutes, int _seconds)
        {
            Days = _days;
            Hours = _hours;
            Minutes = _minutes;
            Seconds = _seconds;
        }
        //конструктор копирования
        public  Date(Date _date)
        {
            Days = _date.Days;
            Hours = _date.Hours;
            Minutes = _date.Minutes;
            Seconds = _date.Seconds;
        }  
 
 
 
        public override string ToString()
        {
            return string.Format("{0} {1}:{2}:{3}", Days.ToString().PadLeft(2, '0'), Hours.ToString().PadLeft(2, '0'),
                                               Minutes.ToString().PadLeft(2, '0'), Seconds.ToString().PadLeft(2, '0'));
        }
    }
}
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
29.01.2016, 02:12
Woldemar89, я бы так делал
C#
1
2
3
4
5
6
7
8
9
10
11
private int seconds;
public int Seconds
{
    get { return seconds; }
    set
    {
        seconds = value % 60;
        minutes += value / 60;
        //Аналогично с минутами и часами
    }
}
Добавлено через 1 минуту
это позволит, например, в цикле писать date.Seconds++, не волнуясь о превышении лимита в 60 секунд
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
29.01.2016, 12:51
Цитата Сообщение от rattrapper Посмотреть сообщение
я бы так делал
Да, есть такая практика - хранить время в секундах\тиках\мсек, деньги и валюту в копейках и центах.
Но, задача перегрузки операторов не стояла, поэтому я шибко не напрягался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2016, 12:51
Помогаю со студенческими работами здесь

Работа с конструктором
Сейчас написал небольшой класс с конструктором но выводит данные не понятно для меня как . class shop { function...

Работа с конструктором
Доброго времени суток. Обращаюсь к вам с двумя проблемами. Во-первых, Code Blocks выдаёт у меня ошибку multiple definition. Связано ли...

Работа с конструктором
Доброе время. Такое вот дело:Я пишу примитивную игру. У меня есть вот такой код. Это клас персонажа. class Class2 { ...

Работа с массивами и конструктором
Задание: В программе должно быть не менее двух классов связанных отношением наследования. Наличии конструктора обязательно Если все...

Прекращена работа программы, неполадки с конструктором
При запуске выбывает &quot;Прекращена работа программы&quot;. Скорее всего проблемы с конструктором для Note mas; . Может намудрил с указателем на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru