Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Malin Klein
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 18
#1

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

15.06.2011, 17:38. Просмотров 1312. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс для хранения календарных дат. (C++):

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

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

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

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

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

Создать класс-шаблон, содержащий поля для хранения одномерного массива - C++
Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и...

3
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
15.06.2011, 18:56 #2
если ты всё это сам писал, думаю написать копирующий консттруктор не проблема
0
Jupiter
Каратель
Эксперт С++
6564 / 3985 / 227
Регистрация: 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
18.06.2011, 18:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2011, 18:21
Привет! Вот еще темы с ответами:

Перевод календарных дат различных форматов в текст - C++
Дали такую тему курсача. Написал пока только перевод самого месяца,но только в одном формате... помогите пожалуйста написать перевод числа...

Создать класс который может быть использован для хранения информации и студентах - C++
создать класс который может быть использован для хранения информации и студентах

Создать класс, содержащий поля, которые можно использовать для хранения данных - C++
Создать класс &lt;имя класса&gt; (имя класса задается в соответствии с выбранным вариантом), содержащий поля, которые можно использовать для...

Класс для хранения пары значений - C++
Есть ли какой нибудь класс для хранения пары значений: &lt;char *key, some_struc *s&gt;. Чтобы можно было по ключу получить элемент: ...


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

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

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