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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
mkobozev
Сообщений: n/a
#1

Описать класс ДАТА с полями ЧИСЛО, МЕСЯЦ, ГОД - C++

24.10.2010, 19:48. Просмотров 2441. Ответов 0
Метки нет (Все метки)

Доброго времени суток, форумчане. Прошу у вас помощи с решением задачи

Описать класс ДАТА с полями ЧИСЛО, МЕСЯЦ, ГОД и следующими методами:
a) ввода и вывода на экран даты;
b) по году и порядковому номеру дня в году вычисляющую число и месяц года, соответствующему этому дню;
c) находящую в массиве введенных дат самую позднюю.

есть пример: Описать класс ДАТА с полями ЧИСЛО, МЕСЯЦ, ГОД и следующими методами:
a) ввода и вывода на экран даты;
b) вычисления порядкового номера дня в году по введенной дате;
c) нахождения в массиве введенных дат самой ранней.

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
// Файл date.h
#ifndef __DATE_H
#define __DATE_H
 
class date
{
    int year;
    int month;
    int day;
    int visokos(int) const;//скрытый метод, проверяющий 
                        //является ли год високосным 
 
public:
    date ();//Конструктор
    int get_year() const {return year;}// метод, 
                            //возвращающий год
    int get_month() const {return month;} ;}// метод, возвращающий месяц
    int get_day() const {return day;} ;}// метод, 
                            //возвращающий день
    void vvod();// метод, обеспечивающий ввод даты
    void vivod () const; ();// константный метод, 
                        //обеспечивающий вывод даты
    int day_number() const; // константный метод, вычисляющий
                        // порядковый номер дня в 
                    //году по введенной дате; 
 
    date & min (date & ) ;// метод, возвращающий самую 
                        //раннюю из двух дат
};
 
#endif
 
// Файл date.cpp
#include <iostream.h>
#include <iomanip.h>
#include "date.h"
 
int tab_day [2][12]= {{31,28,31,30,31,30,31,31,30,31,30,31},
                 {31,29,31,30,31,30,31,31,30,31,30,31}};
 
 
date:: date (){cout<<"Done!";}
 
//******* Метод, проверяющий является ли год високосным******
int date:: visokos(int year) const
{
    int k=year%4==0&&year%100!=0||year%400==0;
    return k;
}
 
//*********Метод, обеспечивающий  ввод даты*****************
void  date::vvod()
{
    N: cout<<"Введите день, месяц, год\n";
    cin>>day>>month>>year;
    int k=visokos(year);
    if (day<1||day>tab_day[k][month-1]||month<1||month>12||year<0)
        {cout<<"Ошибка ввода\n"; goto N;}
    else cout<<"Дата введена\n";
}
//*********Метод, обеспечивающий  ввод даты****************
void date:: vivod () const
{
  cout<<setw(2)<<day<<'.'<<setw(2)<<month<<'.'<<year<<"\n";
}
 
//Метод, вычисляющий порядковый номер дня в году по //веденной дате
int date::day_number() const
{
    int d=day;
    int k=visokos(year);
    for (int i=0; i<month-1; i++)
        d+=tab_day[k][i];
    return d;
}
 
//********Метод, возвращающий раннюю из двух дат **********
date & date:: min (date & M)
{
        if (year<M.get_year() || year==M. get_year()&&(month<M.get_month()|| month==M.get_month()&& day<M.get_day())) return *this;
        return M;
}
 
//Файл date_main.cpp
# include <iostream.h>
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
# include "date.h"
 
main ()
{
N:
    clrscr();
    cout<< "Выберети функцию\n";
    cout<<" 1 – Ввод даты\n";
    cout<<" 2 – Вывод даты\n";
    cout<<" 3 – Порядковый номер даты\n";
    cout<<" 4 – Самая ранняя  дата\n";
    cout<<" 0 – Выход из программы\n";
    int nom;
    cin>>nom;
    switch (nom)
    {
        case 0: exit(0);
        case 1: {date d; d.vvod(); break;}
        case 2: {date d; d.vvod(); d.vivod(); break;}
        case 3: {date d; d.vvod(); cout<<"\nПорядковый номер"<<d.day_number(); break;}
        case 4:
            {
                cout<<"\nВведите количество дат ";
                int n; cin>>n;
                date* mas = new date [n];
                for (int i=0; i<n; i++)
                    mas[i].vvod();
                cout<<"\nИз введенных дат:\n";
                date m=mas[0];
                for (int i=0; i<n; i++)
                {
                    mas[i].vivod();
                    m=mas[i].min(m);
                }
                cout<<"\nСамая ранняя  ";
                m.vivod();
                delete []mas;
                break;
            }
        default: cout<<"Ошибка ввода ";
    }
    cout<<"\nДля продолжения нажмите Enter "; getch();
    goto N;
}
Прошу вашей помощи в разборе задачи, и как используя пример решить поставленную задачу. Заранее спасибо.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать класс ДАТА с полями ЧИСЛО, МЕСЯЦ, ГОД (C++):

Из класса "Дата" с полями день, месяц, год создать класс "Время" с дополнительными полями час, минута, секунда - C++
в общем .надо класс дата полями день, месяц год.теперь мне надо создать класс &quot;Время&quot; з дополнительными полями часов,минут,секунд и...

Определить класс «дата» с компонентными данными: число, месяц, год - C++
Определить класс «дата» с компонентными данными: число, месяц, год. Перегрузить операции: &gt;&gt;, &lt;&lt; (вывод в формате «чч/мм/гггг»), &gt;=...

Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели - C++
Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели. Создайте для него метод котрый бы...

Создать класс Date – дата, содержащая поля: день, месяц, год. - C++
Создать класс Date – дата, содержащая поля: день, месяц, год. Определить операторы &quot;+&quot; и &quot;-&quot;, как методы класса, а &quot;++&quot; и &quot;--&quot; в обеих...

Дан файл , содержащий различные даты. Каждая дата – это число, месяц и год - C++
Здравствуйте,я тот несчастный студент,который учился в школе где не было программирования.Поэтому нуждаюсь в вашей помощи.Теорию удалось...

Класс "Дата": день, месяц, год - C++
Класс Date хранит информацию об определенной дате (дд-мм-гг) для чего в нем предустмотрен поля day,mounth,year: Метод Date::sethate() -...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 19:48
Привет! Вот еще темы с ответами:

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

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты - C++
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты.

Дата, год, месяц, день - C++
/* Дата год, месяц, день от 01.01.0001 до 31.12.2999 Date Високосными являются года кратные 4 и 400, но не кратные 100 ...

Дата в формате <день>.<месяц>.<год> - C++
а дальше нужно будет определить, например, сколько дней прошло с начала года и т.п. Подскажите, пожалуйста, как правильно получить...


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

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

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