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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Malin Klein
 Аватар для Malin Klein
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 18
15.06.2011, 17:38     Создать класс для хранения календарных дат. #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
//---------------------------------------------------------------------------
 
#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;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2011, 17:38     Создать класс для хранения календарных дат.
Посмотрите здесь:

C++ Создать класс для хранения календарных дат
Создать класс который может быть использован для хранения информации и студентах C++
Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад C++
Создать класс, содержащий поля, которые можно использовать для хранения данных C++
Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в различных форматах C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
15.06.2011, 18:56     Создать класс для хранения календарных дат. #2
если ты всё это сам писал, думаю написать копирующий консттруктор не проблема
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.06.2011, 20:04     Создать класс для хранения календарных дат. #3
Цитата Сообщение от Malin Klein Посмотреть сообщение
НО МНЕ НУЖНО ЕЩЕ ВСТАВИТЬ КОПИРУЮЩИЙ КОНСТРУКТОР(В ВИДЕ КОПИЙ)
нафиг он сдесь, перераспределять память-то не надо
Malin Klein
 Аватар для Malin Klein
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 18
18.06.2011, 18:21  [ТС]     Создать класс для хранения календарных дат. #4
мне препод сказал написать) я сама писала, написала в принципе,но не правильно..ошибка
Yandex
Объявления
18.06.2011, 18:21     Создать класс для хранения календарных дат.
Ответ Создать тему
Опции темы

Текущее время: 17:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru