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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шифр замены(код Цезаря) http://www.cyberforum.ru/cpp-beginners/thread180947.html
Привет всем!!! Шифр замены(код Цезаря) Занумеровать алфавит исходного сообщения. Пусть m-длина алфавита сообщения; n,k-целые числа и НОД(n,m)=1; A,B-коды букв исходного сообщения и шифра соответственно. Тогда B=(A*n+k) mod m и A=(B-k)*n^(-1) mod m. Заранее всем спасибо)))
C++ С помощью метода отражения найти обратную матрицу С помощью метода отражения найти обратную матрицу. Матрица размара н*н. Прошу помочь алгоритмом, исходником или хорошей книжкой. Хотя бы помогите, пожалуйста, разобраться с прямым ходом, тк обратный ход будет как в методе Гауса. из книг читал Богачева, но мало чего понял... http://www.cyberforum.ru/cpp-beginners/thread180944.html
C++ Функция замены цифр местами
Как разработать функцию, которая меняет в двузначном числе цифры местами, а остальные числа оставляет без изменения
C++ групировка записей
Как сгрупировать подрят все записи по фамилиям абонентов и подвести итог общей стоимости их разговоров????????
C++ Программа на языке C++ http://www.cyberforum.ru/cpp-beginners/thread180927.html
Реализовать программу, позволяющую пользователю ввести генеалогическое древо. При вводе отображать номер поколения. По окончании ввода вывести общее количество человек. Сохранять дерево не нужно. Для хранения вводимых данных не использовать массивы.
C++ Красивые приложения на Visual C++ Можно ли на Visual C++(без использования NET framework) создавать такие же красивые приложения(интерфейс),как с использованием Windows Forms? подробнее

Показать сообщение отдельно
mkobozev
Сообщений: n/a

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

24.10.2010, 19:48. Просмотров 2388. Ответов 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;
}
Прошу вашей помощи в разборе задачи, и как используя пример решить поставленную задачу. Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru