Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
выручайте 23
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 30
#1

Есть перегруженная функция, нужно сделать из нее виртуальную функцию заранее спс - C++

11.12.2013, 17:05. Просмотров 151. Ответов 0
Метки нет (Все метки)

Задание. Дата в формате (день, месяц, год). ++увеличение даты на 1 сутки, -- уменьшение даты на 1 сутки, + сложение двух дат.
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
#include <iostream>
#include <math.h>
using namespace std;
 
class date
{
        public:
             int day,month,year;
             friend date operator ++(date d1);
             friend date operator --(date d2);
             friend date operator +(date d1,date d2);
};
 
date operator ++(date d1)
{
     if ((d1.month==1) || (d1.month==3) || (d1.month==5) || (d1.month==7) || (d1.month==8) || (d1.month==10))
     {
                    if (d1.day==31)
                    {
                                  d1.day=1;
                                  d1.month=d1.month+1;
                    }
                    else {d1.day=d1.day+1;}
     }
     else if ((d1.month==4) || (d1.month==6) || (d1.month==9) || (d1.month==11))
     {
                      if (d1.day==30)
                    {
                                  d1.day=1;
                                  d1.month=d1.month+1;
                    }
                    else {d1.day=d1.day+1;}
     }
     else if (d1.month==12)
     {
          if(d1.day==31)
          {
                       d1.day=1;
                       d1.month=1;
                       d1.year=d1.year+1;
          }
          else {d1.day=d1.day+1;}
     }
     else if (d1.month==2)
     {
                        if (d1.day==28)
                    {
                                  d1.day=1;
                                  d1.month=d1.month+1;
                    }
                    else {d1.day=d1.day+1;}
     }
     else {cout <<"Data error!";}
     return d1;
}
 
date operator --(date d2)
{
     if ((d2.month==2) || (d2.month==4) || (d2.month==6) || (d2.month==8) || (d2.month==9) || (d2.month==11))
     {
                    if (d2.day==1)
                    {
                                  d2.day=31;
                                  d2.month=d2.month-1;
                    }
                    else {d2.day=d2.day-1;}
     }
     else if ((d2.month==5) || (d2.month==7) || (d2.month==10) || (d2.month==12))
     {
                      if (d2.day==1)
                    {
                                  d2.day=30;
                                  d2.month=d2.month-1;
                    }
                    else {d2.day=d2.day-1;}
     }
     else if (d2.month==1)
     {
          if(d2.day==1)
          {
                       d2.day=31;
                       d2.month=12;
                       d2.year=d2.year-1;
          }
          else {d2.day=d2.day-1;}
     }
     else if (d2.month==3)
     {
              if (d2.day==1)
                    {
                                  d2.day=28;
                                  d2.month=d2.month-1;
                    }
                    else {d2.day=d2.day-1;}
     }
     else {cout <<"Data error!";}
     return d2;
}
 
date operator +(date d1,date d2)
{
     date d;
     d.year=d1.year+d2.year;
     d.month=d1.month+d2.month;
     d.day=d1.day+d2.day;
     if (d.month>12){d.month=d.month-12;d.year=d.year+1;}
     if (d.day>31){d.day=d.day-31;d.month=d.month+1;}
     if (d.month>12){d.month=d.month-12;d.year=d.year+1;}
     return d;
}
 
int main()
{
     date d1,d2,d3;
     cout <<"Enter first date:"<<endl;
     cout <<"Day:";
     cin >>d1.day;
     cout <<"Month:";
     cin >>d1.month;
     cout <<"Year:";
     cin >>d1.year;
     cout <<endl<<"Enter second date:"<<endl;
     cout <<"Day:";
     cin >>d2.day;
     cout <<"Month:";
     cin >>d2.month;
     cout <<"Year:";
     cin >>d2.year;
     cout <<endl;
     d3=d1+d2;
     d1=++d1;
     d2=--d2;
     cout <<"First date increased by the day:"<<d1.day<<"."<<d1.month<<"."<<d1.year<<endl;
     cout <<"Second date less the day:"<<d2.day<<"."<<d2.month<<"."<<d2.year<<endl;
     cout <<"Add two date:"<<d3.day<<"."<<d3.month<<"."<<d3.year<<endl;
     system ("PAUSE");
     return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 17:05     Есть перегруженная функция, нужно сделать из нее виртуальную функцию заранее спс
Посмотрите здесь:

Перегруженная функция - C++
Где неправильно #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; using namespace...

Перегруженная функция - C++
У меня тут задача я её правильно написал но почему то визуалка говорит что перегруженная функция. #include &lt;iostream&gt; #include &lt;cmath&gt; ...

Перегруженная функция - C++
Написать перегруженную функцию, которая возвращает значение в зависимости от набора формальных параметров: x+x/2 Z={ ...

Перегруженная функция - C++
Помогите преобразовать функцию в перегруженную... Бьюсь уже хрен знает сколько.... Условия: В одномерном массиве, состоящем из п...

Перегруженная функция - C++
есть два задания. 1) - посчитать количество чисел в самой длинной возрастающей последовательности например, массив a={7, 2, 4, 48, 54,...

Перегруженная функция sqrt - C++
# include&lt;iostream&gt; #include&lt;cmath&gt; using namespace std; #define PI 3.14159265 int main(){ double z1,z2,a; cout &lt;&lt;&quot;enter a...

Перегруженная функция Signum(x) - C++
Напишите программу, в которой бы использовалась перегруженная функция Signum(x). Эта функция должна возвращать +1, если число x, является...

Перегруженная константная функция - C++
В Qt в классе QByteArray есть две функции: char *data(); const char *data() const; Как компилятор понимает какую функцию вызвать?

Перегруженная функция sqrt - C++
начал писать программу,а тут такая фигня перегруженная функция sqrt,в чем фокус не пойму я еще ничего не написал толком а уже перегруз ...

Перегруженная функция Haar(x) - C++
Напишите программу, в которой бы использовалась перегруженная функция Haar(x). Эта функция должна возвращать +1, если 0&lt;=x&lt;1, и 0, если в...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru