С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 23.02.2015
Сообщений: 1
1

Конструкторы класса Time

23.02.2015, 00:39. Показов 2417. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть вот такая вот прога (см. ниже). По заданию нужно было определить функции, которые читают время из потока ввода, выводят время. Определить функцию (с параметрами по умолчанию), которая добавляет часы, минуты или секунды ко времению Определить функцию, которая возвращает количество секунд прошедших от time 1 до time 2.

Как оказалось, необходимы конструкторы класса Time для получившейся программы. Как и добавить?

Код:

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
#include <iostream>
using namespace std;
 
 
struct Time
{
    unsigned h; //часы
    unsigned m; //минуты
    unsigned s; //секунды
};
Time time1;
Time time2;
 
void vvod(void);
void add(void);
void razn(void);
void menu(void);
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    for (;;)
    {
    
            vvod();
 
            if ((time1.h >= 60 || time1.m >= 60 || time1.s >= 60) || (time2.h >= 60 || time2.m >= 60 || time2.s >= 60))
            {
                cout << "Ошибка ввода, введите значения заного\n\n";
                continue;
            }
 
 
            else
            {
 
                cout << "\nВремя time1: " << time1.h; cout << ":"; cout << time1.m; cout << ":"; cout << time1.s;
                cout << "\nВремя time2: " << time2.h; cout << ":"; cout << time2.m; cout << ":"; cout << time2.s;
                cout << "\n";
                break;
            }
 
    }
 
    menu();
    /*
 
    */
    for (;;)
    {
        int gm=0;
        cout << "В главное меню - [1], Выход - [2]\n";
 
        cin >> gm;
        if (gm == 1)
            {
            menu();
            }
            
        else if (gm == 2)
        {
            break;
        }
 
        else
            cout << "Такого выбора нет, повторите ввод\n";
    }
 
 
 
    return 0;
    
 
 
}
 
void vvod(void)
{
 
 
    cout << "Введите час для time1\n";
    cin >> time1.h;
    cout << "Введите минуты для time1\n";
    cin >> time1.m;
    cout << "Введите секунды для time1\n";
    cin >> time1.s;
 
    cout << "\n\nВведите час для time2\n";
    cin >> time2.h;
    cout << "Введите минуты для time2\n";
    cin >> time2.m;
    cout << "Введите секунды для time2\n";
    cin >> time2.s;
 
 
}
 
 
void menu(void)
{
    
    for (;;)
    {
 
        int menu;
        cout << "[1]- Добавить время [2] - Узнать разницу time1 - time2 ";
        cin >> menu;
 
        if (menu == 1)
        {
            add();
            break;
        }
 
        else if (menu == 2)
        {
            razn();
            break;
        }
 
 
        else
            cout << "Выбранно не верное значение повторите ввод\n";
        continue;
    }
}
 
 
void add(void)
{
    cout << "Сколько секунд добавляем в time1? ";
    int add1;
    cin >> add1;
 
    time1.s = time1.s + add1;
 
    for (;;)
    {
        if (time1.s >= 60)
        {
            time1.s = time1.s - 60;
            time1.m = time1.m + 1;
 
            if (time1.m >= 60)
            {
                time1.m = time1.m - 60;
                time1.h = time1.h + 1;
 
                if (time1.h > 24)
                    time1.h = 0;
            }
        }
        else
        break;
    }
 
        
 
    cout << "Новое время для time1: ";
    cout << "Время time1: " << time1.h; cout << ":"; cout << time1.m; cout << ":"; cout << time1.s;
}
 
void razn(void)
{
    
    int raz1=0, raz2=0;
    raz1 = ((time1.h * 60) + time1.m)*60+time1.s;
    raz2 = ((time2.h * 60) + time2.m) * 60 + time2.s;
    raz1 = raz2 - raz1;
    cout << "\nСекунд прошло от time1: "<<raz1;
    cout << "\n";
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2015, 00:39
Ответы с готовыми решениями:

Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time ().
Помогите пожалуйста написать программу на С++. Просто скоро курсовую сдавать, а классы мы еще не...

Конструкторы класса в С++
В классе я объявил два конструктора: Node( int Depth = 0, string FunctionName = &quot;NULL&quot;, double...

Методы и конструкторы класса
Добрый день) Предположим, имеется некоторый класс &quot;Tfunction&quot; представляющий математическую...

Задача на конструкторы класса
Дан класс, содержащий единственное поле типа int. Необходимо создать:  конструктор по...

1
Модератор
Эксперт С++
13720 / 10917 / 6478
Регистрация: 18.12.2011
Сообщений: 29,146
23.02.2015, 09:44 2
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
class Time
{
    unsigned h; //часы
    unsigned m; //минуты
    unsigned s; //секунды
public:
Time():h(0),m(0),s(0){}
Time(int h0,int m0,int s0):h(h0),m(m0),s(s0){}
void vvod();
void vyvod();
};
 
void Time::vvod()
{
    cout << "Введите час\n";
    cin >> this->h;
    cout << "Введите минуты\n";
    cin >> this->m;
    cout << "Введите секунды\n";
    cin >> this->s;
 }
void Time::vyvod()
{
   cout<<h<<':'<<m<<':'<<s<<endl;
}
int main()
{
   Time t1(12,59,59);
   t1.vyvod();
   Time t2;
   t2.vvod();
   t2.vyvod();
  return 0;
}
0
23.02.2015, 09:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2015, 09:44
Помогаю со студенческими работами здесь

Конструкторы template класса
задача собственно написать класс, который создает массив произвольного типа и хранит указатель на...

Конструкторы и указатели на объект класса
Добрый вечер. Помогите, пожалуйста, прояснить 2 вещи: 1) В чём будет отличие между...

Где создаются конструкторы класса?
Добрый день, я начал учиться по книге Стэнли Липмана основам c++. Сейчас делаю программу, которая с...

Конструкторы и деструктор класса BigInteger
Задание выглядит так. Определить класс BigInteger в файле BigInteger.h, который может быть...


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

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