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

Простейшие классы - C++

Восстановить пароль Регистрация
 
KotKot
Сообщений: n/a
11.12.2011, 22:19     Простейшие классы #1
Пожалуйста помогите решить:

Составить описание класса для представления даты.
Предусмотреть возможности установки даты и изменения ее отдельных полей (год, месяц, день) с проверкой допустимости вводимых значений. В случае недопустимых значений выбрасываются исключения.
Создать методы изменения даты на заданное количество дней, месяцев и лет.
Написать программу, демонстрирующую все разработанные элементы класса.
Создать дочерний класс, определяющий по дате день недели.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 22:19     Простейшие классы
Посмотрите здесь:

C++ Простейшие циклы
Простейшие операции с массивами C++
C++ Простейшие операции с массивами
C++ Простейшие циклы на C
Простейшие циклы С C++
C++ Циклы, массивы, простейшие программы
Простейшие вычисления C++
C++ Простейшие C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lennadij
3 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 45
11.12.2011, 22:45     Простейшие классы #2
давно что -то подобное делала, вот смотри может поможет
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
133
134
135
136
// m_date.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "date.h"
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <ctime>
#include <conio.h>
using namespace std;
 
int _tmain()
{
        cout<<"Viberite funkc\n";
        cout<<" 1. Vvod dati\n";
        cout<<" 2. Vivod\n";
        cout<<" 0. Vihod\n";
        cout<<" 3. N-aja data\n";
        cout<<"4. Sravnenie year\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.n_date(); break;}
        case 4: {const int n=3;
                date mas[n];
                                // date* mas = new date [n];
                 int v; int i;
                 cout<<"\nVvedite year v= ";
                                 cin>>v;
                       for (i=0; i<n; i++)
                          mas[i].vvod();
                            cout<<"Iz vvedennih dat: ";
                           for (i=0; i<n; i++)
                                                        mas[i].sravn(v);
                                                   cout<<"5555555555555555";
                                // delete []mas;
                              break; }
        default:cout<<"Ne werno ";
        }
}
 
++++++++++++++++++++++++
#include "StdAfx.h"
#include "date.h"
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <ctime>
#include <conio.h>
using namespace std;
 
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<<"Vvedute den, mesac, rod:\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<<"Ochibka\n"; goto N;}
        else cout<<"Data vvedena\n";
}
//Вывод даты
void date::vivod()
{
  cout<<setw(2)<<day<<'.'<<setw(2)<<month<<'.'<<year<<"\n";
}
 
//вычисляющую дату, на N дней вперед по заданной;
void date::n_date()
{ N: cout<<"Vvedute den, mesac, rod:\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<<"Ochibka\n"; goto N;}
        else cout<<"Data vvedena\n";
        cout<<"Zadaite N\n";
        cin>>n;
        day=day+n;
        while (day>tab_day[k][month-1])
        if (day>tab_day[k][month-1])
        {int i=day-tab_day[k][month-1];
        day=i;
        month++;
                if (month>12)
                {year++;
                month=1;}
        }
        cout<<setw(2)<<day<<'.'<<setw(2)<<month<<'.'<<year<<"\n";
}
 
//находящую в массиве введенных дат все даты заданного года.
void date::sravn( int v)
{ cout<<"Sovpasdayut: ";
  //              bool f=false;
    //    for (int i=0; i<=n; i++)
  //      if (v==mas[i].get_year())
 //       { mas[i].vivod();
  //              f=true;}
  //      if (f!=true) cout<<"Sovpadenii net";
 
        if (this->get_year()==v) this->vivod();
}
+++++++++++++
#pragma once
#ifndef __DATE_H
#define __DATE_H
class date
{ int day;
        int month;
        int year;
        int visokos(int) const;
        int n;
 
public:
        date();
                int get_year() const {return year;};
                int get_month() const {return month;};
                int get_day() const {return day;};
                void vvod();
                void vivod();
                void n_date();
              void sravn(int v);
};
#endif
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
11.12.2011, 23:16     Простейшие классы #3
Lennadij, уже бы в один файл занесли бы) ему так проще будет)
Yandex
Объявления
11.12.2011, 23:16     Простейшие классы
Ответ Создать тему
Опции темы

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