Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Malin Klein
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 18
1

Создать класс для хранения календарных дат.

15.06.2011, 17:38. Просмотров 1453. Ответов 3
Метки нет (Все метки)

Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в различных форматах, изменения даты на заданное количество дней. Перегрузить операцию «–» для нахождения разности дат и операции сравнения. Для класса определить оператор <<. Стандартные функции и типы С для работы с датами не использовать.



Работа с датами в различных форматах, НО МНЕ НУЖНО ЕЩЕ ВСТАВИТЬ КОПИРУЮЩИЙ КОНСТРУКТОР(В ВИДЕ КОПИЙ). Еще нужно выводить даты в виде строки:

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
//---------------------------------------------------------------------------
 
#pragma hdrstop
#include <iostream.h>
#include <iomanip.h>
#include "include.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
class data
{  
    unsigned int day;
    unsigned int month;
    unsigned int year;
 
    public:
    data _Day(unsigned int _d)
    {
 
    };
    static char i;
    static enum {JAN=1,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC}mon;
    data(unsigned int d, unsigned int m, unsigned int y):day(d), month(m), year(y)
    {
        if (m==JAN || m==MAR || m==MAY || m==JUL || m==AUG || m==OCT || m==DEC)
        {
            while (d > 31)
            {
                cout << "Input day<=31!!!";
                cin >> d;
                day = d;
            }
 
            return;
        }
 
        if (m==APR || m==JUN || m==SEP || m==NOV)
        while (d>30)
        {
            cout << "Input day<=30!!!";
            cin >> d;
            day = d;
        }
 
        if (y/4.!=0 && m==FEB)
        {
            while (d>28)
            {
                cout<< "Input day <= 28!!!";
                cin >> d;
                day = d;
            }
            return;
        }
        if (y/4.==0&&m==FEB)
            while (d > 29)
            {
                cout<<"Input day<=29!!!";
                cin>>d;
                day=d;
            }
    }
 
    friend ostream& operator << (ostream& out,data& c);
    friend bool operator == (const data&, const data&);
};
 
void begin()
{
    cout << "Please make a choose the format of data:\n";
    cout << "1: DD/MM/YYYY\n2: MM/DD/YYYY\n3: DD-mon-YYYY\n";
    cin >> data::i;
}
ostream& operator << (ostream& out,data& c)
{
        switch (c.i)
        {
            case '1':return out<<setw(2)<<setfill('0')<<c.day<<'/'
                    <<setw(2)<<setfill('0')<<c.month<<'/'
                    <<setw(4)<<setfill('0')<<c.year;
            case '2':return out<<setw(2)<<setfill('0')<<c.month<<'/'
                    <<setw(2)<<setfill('0')<<c.day<<'/'
                    <<setw(4)<<setfill('0')<<c.year;
            case '3':cout<<setw(2)<<setfill('0')<<c.day<<'-';
                switch (c.month)
                {
                    case c.JAN:cout<<"JAN-";break;
                    case c.FEB:cout<<"FEB-";break;
                    case c.MAR:cout<<"MAR-";break;
                    case c.APR:cout<<"APR-";break;
                    case c.MAY:cout<<"MAY-";break;
                    case c.JUN:cout<<"JUN-";break;
                    case c.JUL:cout<<"JUL-";break;
                    case c.AUG:cout<<"AUG-";break;
                    case c.SEP:cout<<"SEP-";break;
                    case c.OCT:cout<<"OCT-";break;
                    case c.NOV:cout<<"NOV-";break;
                    case c.DEC:cout<<"DEC-";break;
                }
                return out << setw(4) << setfill('0') << c.year;
        }
}
bool operator == (const data& A,const data& B)
{
    if (A.day==B.day && A.month==B.month && A.year==B.year) return true;
    return false;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2011, 17:38
Ответы с готовыми решениями:

Создать класс для хранения календарных дат
Создать класс для хранения календарных дат. Обеспечить возможность работы с...

Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в различных форматах
2. Создать класс для хранения календарных дат. Обеспечить возможность работы с...

Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад
Реализуйте класс для хранения ФИО и номера телефона человека, класс для...

Создать класс Mystring, предназначенный для хранения строки из символов типа char. Класс имеет метод для определения дли
Создать класс Mystring, предназначенный для хранения строки из символов типа...

Создать класс для хранения целого числа
Задание: Создать класс, для хранения целого числа. Перегрузить операторы «+»,...

3
pito211
186 / 173 / 18
Регистрация: 22.03.2010
Сообщений: 612
15.06.2011, 18:56 2
если ты всё это сам писал, думаю написать копирующий консттруктор не проблема
0
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.06.2011, 20:04 3
Цитата Сообщение от Malin Klein Посмотреть сообщение
НО МНЕ НУЖНО ЕЩЕ ВСТАВИТЬ КОПИРУЮЩИЙ КОНСТРУКТОР(В ВИДЕ КОПИЙ)
нафиг он сдесь, перераспределять память-то не надо
1
Malin Klein
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 18
18.06.2011, 18:21  [ТС] 4
мне препод сказал написать) я сама писала, написала в принципе,но не правильно..ошибка
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2011, 18:21

Создать класс для хранения размеров четырехугольника
Создать класс для хранения размеров четырехугольника. Реализовать методы класса...

Как создать шаблонный класс-массив для хранения объектов?
Есть абстрактный класс Figure. Есть два производных от него класа: Field i...

Создать класс, для хранения целого числа. Перегрузка операторов
Создать класс, для хранения целого числа. Перегрузить операторы «+», «-», «*» и...


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

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

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