2 / 2 / 0
Регистрация: 24.02.2014
Сообщений: 28
1

Класс Триада, Дата и Время

08.04.2015, 07:33. Показов 1277. Ответов 3
Метки нет (Все метки)

Всем привет. Я в программировании новичок
пожалуйста, помогите написать программу.

Создать класс Triad (тройка) с виртуальными методами увеличения на 1. На его основе реализовать классы Date (дата) и Time (время). В фасадном классе Memories, создать массив пар (дата-время) объектов этих классов в динамической памяти. Предусмотреть возможность выборки самого раннего и самого позднего событий.

вот что есть у меня. просто куча ошибок.не пойму:
1) как правильно реализовать этот ввод данных.
2) как выполнить сравнение даты и времени и выбрать самое раннее и позднее событие.
3) как инкрементировать так,чтобы к примеру если в Time было 59 секунд после операции стало 00.

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
#pragma once
#include <iostream>
using namespace std;
class Triad
{
public:
virtual void setValue()=0;
virtual void getValue()=0;
virtual void incValue()=0;
virtual ~Triad(){};
 
};
 class Date: public Triad
 {
    int day, month, year;
 public:
     void setValue()
     {
     cin >> day >> month >> year;
     if ((day < 1) || (day > 31))
     { 
         cerr << "Error! Choose correct date"; 
         return;
     }
         if ((month < 1) || (month > 12))
     { 
         cerr << "Error! Choose correct date"; 
         return;
     }
             if ((year < 1800) || (year > 3000))
     { 
         cerr <<  "Error! Choose correct date"; 
         return;
     }
     }
     void getValue() 
     {
         cout << "Date: " << day << "/" << month << "/" << year << endl;
     }
     void incValue()
     {
     day++;
     month++;
     year++;
     }
     ~Date() {}
 };
 class Time: public Triad
 {
     int hour, min, sec;
 public:
     void setValue()
     {
     cin >> hour >> min >> sec;
     if ((hour < 0) || (hour > 23))
     { 
         cerr << "Error! Choose correct time"; 
         return;
     }
     if ((min < 0) || (min > 59))
     { 
         cerr << "Error! Choose correct time"; 
         return;
     }
     if ((sec < 0) || (sec > 59))
 
     { 
         cerr <<  "Error! Choose correct time"; 
         return;
     }
     }
     void getValue() 
     {
         cout << "Time: " << hour << ":" << min << ":" << sec << endl;
     }
     void incValue()
     {
     hour++;
     min++;
     sec++;
     }
     ~Time() {}
 };
 class Memories 
 {
     static const int n = 3;
     Date* date[n]; 
     Time* time[n];
     Triad* trd;
   public: 
       Memories()
       {
           for (int i =0; i < n; i++)
           {
           date[i] = new Date;
           time[i] = new Time;
           }
       }
           void setValue() 
           {
             for (int i = 0; i < n; i++)
           {
               trd = date[i];
               trd->setValue();
               trd = time[i];
               trd->setValue();
           }
           }
           void getValue()
                {
           for (int i = 0; i < n; i++)
           {
               trd = date[i];
               trd->getValue();
               trd = time[i];
               trd->getValue();
           }
           }
           ~Memories()
           {
           for (int i=0; i<n; i++)
           {
           delete date[i];
           delete time[i];
           }
           }
 };
///////////////////////////////////////
int main()
{
setlocale(LC_ALL,"rus");
Memories obj1, obj2;
while (true)
{
    obj1.setValue();
    obj2.setValue();
    cout << "Выберите действие: " << endl;
    cout << "1 - увеличить значения на 1";
    cout << "2 - вывод самого раннего события";
    cout << "3 - вывод самого позднего события";
    cout << "4 - выход из программы";
    int action;
    cin >> action;
    cout << endl;
    switch(action)
    {
    case 1:
    obj1.incValue();
    obj2.incValue();
    break;
    /*case 2:
        break;
 
    case 3:
        break;
        */
    case 4:
        return 0;
        break;
 
    default:
        cout << "Error!!!";
            break;
        }
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2015, 07:33
Ответы с готовыми решениями:

Класс Дата-Время. Создать наследников класса:
Приветствую вас уважаемое сообщество. Я только начал изучать наследование. В теории знаю, что...

Создать класс "Триада" и перегрузить некоторые операторы
1) Создать базовый класс &quot;Триада&quot; (три числа). Определить методы: конструктор, виртуальные функции...

Класс Дата-Время
Не могу понять чё от меня хочет. #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;ctime&gt; using...

Создать свой класс дата и время
Здравствуйте. У меня проблемма с программой состоящая из 2-х частей, в которой очень много чего...

3
0 / 0 / 1
Регистрация: 17.02.2014
Сообщений: 10
08.04.2015, 08:02 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
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
#pragma once
#include <iostream>
using namespace std;
class Triad
{
public:
virtual void setValue()=0;
virtual void getValue()=0;
virtual void incValue()=0;
virtual ~Triad(){};
 
};
class Date: public Triad
{
int day, month, year;
public:
void setValue()
{
cin >> day >> month >> year;
if ((day < 1) || (day > 31))
{
cerr << "Error! Choose correct date";
return;
}
if ((month < 1) || (month > 12))
{
cerr << "Error! Choose correct date";
return;
}
if ((year < 1800) || (year > 3000))
{
cerr << "Error! Choose correct date";
return;
}
}
void getValue()
{
cout << "Date: " << day << "/" << month << "/" << year << endl;
}
void incValue()
{
day++;
month++;
year++;
}
~Date() {}
};
class Time: public Triad
{
int hour, min, sec;
public:
void setValue()
{
cin >> hour >> min >> sec;
if ((hour < 0) || (hour > 23))
{
cerr << "Error! Choose correct time";
return;
}
if ((min < 0) || (min > 59))
{
cerr << "Error! Choose correct time";
return;
}
if ((sec < 0) || (sec > 59))
 
{
cerr << "Error! Choose correct time";
return;
}
}
void getValue()
{
cout << "Time: " << hour << ":" << min << ":" << sec << endl;
}
void incValue()
{
hour++;
min++;
sec++;
}
~Time() {}
};
class Memories
{
static const int n = 3;
Date* date[n];
Time* time[n];
Triad* trd;
public:
Memories()
{
for (int i =0; i < n; i++)
{
date[i] = new Date;
time[i] = new Time;
}
}
void setValue()
{
for (int i = 0; i < n; i++)
{
trd = date[i];
trd->setValue();
trd = time[i];
trd->setValue();
}
}
void getValue()
{
for (int i = 0; i < n; i++)
{
trd = date[i];
trd->getValue();
trd = time[i];
trd->getValue();
}
}
~Memories()
{
for (int i=0; i<n; i++)
{
delete date[i];
delete time[i];
}
}
};
///////////////////////////////////////
int main()
{
setlocale(LC_ALL,"rus");
Memories obj1, obj2;
while (true)
{
obj1.setValue();
obj2.setValue();
cout << "Выберите действие: " << endl;
cout << "1 - увеличить значения на 1";
cout << "2 - вывод самого раннего события";
cout << "3 - вывод самого позднего события";
cout << "4 - выход из программы";
int action;
cin >> action;
cout << endl;
switch(action)
{
case 1:
obj1.incValue();
obj2.incValue();
break;
/*case 2:
break;
 
case 3:
break;
*/
case 4:
return 0;
break;
 
default:
cout << "Error!!!";
break;
}
}
}
Ваш же код, но для лучшего чтения, впредь лучше пользоваться кнопкой оформления кода
0
2 / 2 / 0
Регистрация: 24.02.2014
Сообщений: 28
09.04.2015, 09:05  [ТС] 3
а как реализовать?
0
Почетный модератор
Эксперт С++
5848 / 2859 / 392
Регистрация: 01.11.2011
Сообщений: 6,905
09.04.2015, 09:52 4
Начните с лежания ничком.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2015, 09:52
Помогаю со студенческими работами здесь

Как разделить колонку с форматом Дата/время на две - Дата и время
Здравствуйте. Подскажите пожалуйста, как разделить колонку с форматом Дата/время на две - Дата и...

Расписание. Хранит список (время начала, время окончания, дата, место, текст (комментарий)
Расписание. Хранит список (время начала, время окончания, дата, место, текст (комментарий))....

Написать скрипт, содержащий текущее время и дату в текстовых полях время и дата. Попробуйте создать изображени
Написать скрипт, содержащий текущее время и дату в текстовых полях время и дата. Попробуйте создать...

Разработать приложение «Аэропорт», включающую следующую информацию: дата, № рейса, время вылета, время прилета, пункт от
Разработать приложение «Аэропорт», включающую следующую информацию: дата, № рейса, время вылета,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru