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

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

Войти
Регистрация
Восстановить пароль
 
LordSilren
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 32
#1

Описать классы - C++

06.06.2013, 15:58. Просмотров 348. Ответов 3
Метки нет (Все метки)

Ребят, нужна помощь к завтрашнему дню..

1) Составить описание класса для представления даты. Предусмотреть методы получения даты следующего дня, увеличения даты на n дней, определения високосности года, получения отдельных частей даты (год, месяц, день), сравнения дат.

2) Описать класс "многоугольник" с полем - массив объектов класса "вершина". Предусмотреть возможность работы с произвольным числом вершин, поиска вершины с заданными координатами, добавления и удаления вершины.


такие задачи вообще не шарю как решать...

Добавлено через 48 минут
был бы рад, если бы еще к программе было небольшое объяснение, где, что и как делается

Добавлено через 2 часа 14 минут
ребят, помогите, завтра зачет сдать надо..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать классы (C++):

описать классы - C++
Помогите пожалуйста написать программу.ТЗ:Написать программу,в которой описана иерархия...

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

Классы С++ (как описать методы и свойства к массиву) - C++
Есть Класс Массив. помогите описать для него простой метод и свойство. Метод: Сумма или Среднее арифметическое элементов массива....

Классы. Многофайловые проекты. Описать класс с именем STUDENT - C++
Описать класс с именем STUDENT, содержащий поля:  фамилия и инициалы;  номер группы;  успеваемость (массив из пяти элементов). ...

Классы (Описать класс, реализующий тип данных «вещественная матрица» и работу с ними) - C++
само задание звучит так:Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие...

Классы с наследованием. Описать класс fruit, содержащий поля сорт, размер, описание - C++
В программе описать класс fruit содержащий поля сорт, размер, описание. Наследующий классы Apple с полем качество сока и Orrange с полем...

3
MarVaL
С++ Beginner
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
06.06.2013, 17:23 #2
main.cpp:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include "Date.h"
 
int main() {
  setlocale(0, "");
  Date d1, d2;
  std::cout << "Введите дату в формате [DD/MM/YYYY]: " << std::endl;
  std::cin >> d1;
  std::cout << d1;
  std::cout << "\nВведите дату в формате [DD/MM/YYYY]: " << std::endl;
  std::cin >> d2;
  std::cout << d2;
  if(d1 > d2)
    std::cout << "\nПервая дата больше" << std::endl;
  else
    std::cout << "\nВторая дата больше" << std::endl;
  
  Date d3(d2);
  std::cout << std::endl << d3;
  Date d4;
  d4 = d1;
  std::cout << std::endl << d1;
 
  std::cin.ignore();
  std::cin.get();
  return 0;
 
}

Date.cpp:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include "Date.h"
 
Date::Date() : d(1), m(1), y(2000) { }
 
Date::Date(const Date& obj) {
  d = obj.d;
  m = obj.m;
  y = obj.y;
}
 
Date::Date(int _d, int _m, int _y) { setDate(d, m, y); }
 
Date::~Date() { }
 
Date& Date::operator=(Date& obj) {
  if(this == &obj)
    return *this;
  d = obj.d;
  m = obj.m;
  y = obj.y;
  return *this;
}
 
std::ostream& operator<<(std::ostream &out, Date& obj) {
  obj.d < 10 ? out << "0" << obj.d : out << obj.d;
  out << "/";
  obj.m < 10 ? out << "0" << obj.m : out << obj.m;
  out << "/";
  if(obj.y < 10)
    out << "000" << obj.y;
  if(obj.y < 100)
    out << "00" << obj.y;
  if(obj.y < 1000)
    out << "0" << obj.y;
  if(obj.y >= 1000)
    out << obj.y;
  return out;
}
 
std::istream& operator>>(std::istream &in, Date& obj) {
  int _d, _m, _y;
  in >> _d;
  in.ignore();
  in >> _m;
  in.ignore();
  in >> _y;
  obj.setDate(_d, _m, _y);
  return in;
}
 
bool operator>(Date& d1, Date& d2) {
  if(d1.y * 365 + d1.m * 30 + d1.d > d2.y * 365 + d2.m * 30 + d2.d)
    return true;
  return false;
}
 
void Date::setDate(int _d, int _m, int _y) {
  if(_y > 0)
    y = _y;
  else
    y = 1;
 
  if(_m >= 1 && _m <= 12)
    m = _m;
  else
    m = 1;
 
  if(_d >= 1 && _d <= 31)
    d = _d;
  else
    d = 1;
}

Date.h:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
class Date {
public:
  Date();
  Date(int, int, int);
  Date(const Date&);
  ~Date();
  void setDate(int, int, int);
  int getDay() const;
  int getMonth() const;
  int getYear() const;
  
  Date& operator= (Date&);
  friend bool operator>(Date&, Date&);
  friend std::ostream& operator<<(std::ostream&, Date&);
  friend std::istream& operator>>(std::istream&, Date&);
private:
  int d, m, y;
};
0
LordSilren
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 32
06.06.2013, 18:16  [ТС] #3
MarVaL, спасибо огромное, сейчас попробую разобраться.

тогда вместо второй такое задание.
Перегрузить операторы >, <, == сравнения дат. Оператор ++ для увеличения даты на 1 день. Оператор + сложения даты с целым числом, обозначающим кол-во дней (результат сложения - дата, полученная путем прибавления к исходной дате указанного кол-ва дней)
0
MarVaL
С++ Beginner
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
06.06.2013, 20:11 #4
main:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include "Date.h"
 
int main() {
  setlocale(0, "");
  Date d1, d2;
  std::cout << "Введите дату в формате [DD/MM/YYYY]: " << std::endl;
  std::cin >> d1;
  std::cout << d1;
  std::cout << "\nВведите дату в формате [DD/MM/YYYY]: " << std::endl;
  std::cin >> d2;
  std::cout << d2;
  if(d1 > d2)
    std::cout << "\nПервая дата больше" << std::endl;
  else
    std::cout << "\nПервая дата меньше" << std::endl;
  
  if(d2 < d1)
    std::cout << "\nВторая дата меньше" << std::endl;
  else
    std::cout << "\nВторая дата больше" << std::endl;
  
  if(d1 == d2)
    std::cout << "Даты равны" << std::endl;
  else
    std::cout << "Даты не равны" << std::endl;
 
  std::cout << "d1++: " << d1++ << std::endl;
 
  Date d3(d2);
  std::cout << std::endl << d3;
  Date d4;
  d4 = d1;
  std::cout << std::endl << d1;
 
  std::cin.ignore();
  std::cin.get();
  return 0;
 
}

date.h:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
class Date {
public:
  Date();
  Date(int, int, int);
  Date(const Date&);
  ~Date();
  void setDate(int, int, int);
  int getDay() const;
  int getMonth() const;
  int getYear() const;
  
  Date& operator=(Date&);
  friend Date& operator++(Date&);
  friend bool operator>(Date&, Date&);
  friend bool operator<(Date&, Date&);
  friend bool operator==(Date&, Date&);
  friend std::ostream& operator<<(std::ostream&, Date&);
  friend std::istream& operator>>(std::istream&, Date&);
private:
  int d, m, y;
};

date.cpp:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include "Date.h"
 
Date::Date() : d(1), m(1), y(2000) { }
 
Date::Date(const Date& obj) {
  d = obj.d;
  m = obj.m;
  y = obj.y;
}
 
Date::Date(int _d, int _m, int _y) { setDate(d, m, y); }
 
Date::~Date() { }
 
Date& Date::operator=(Date& obj) {
  if(this == &obj)
    return *this;
  d = obj.d;
  m = obj.m;
  y = obj.y;
  return *this;
}
 
std::ostream& operator<<(std::ostream &out, Date& obj) {
  obj.d < 10 ? out << "0" << obj.d : out << obj.d;
  out << "/";
  obj.m < 10 ? out << "0" << obj.m : out << obj.m;
  out << "/";
  if(obj.y < 10)
    out << "000" << obj.y;
  if(obj.y < 100)
    out << "00" << obj.y;
  if(obj.y < 1000)
    out << "0" << obj.y;
  if(obj.y >= 1000)
    out << obj.y;
  return out;
}
 
std::istream& operator>>(std::istream &in, Date& obj) {
  int _d, _m, _y;
  in >> _d;
  in.ignore();
  in >> _m;
  in.ignore();
  in >> _y;
  obj.setDate(_d, _m, _y);
  return in;
}
 
bool operator==(Date& d1, Date& d2) {
  if((d1.d == d2.d) && (d1.m == d2.m) && (d1.y == d2.y))
    return true;
  return false;
}
 
bool operator>(Date& d1, Date& d2) {
  if(d1.y * 365 + d1.m * 30 + d1.d > d2.y * 365 + d2.m * 30 + d2.d)
    return true;
  return false;
}
 
bool operator<(Date& d1, Date& d2) {
  if(d1.y * 365 + d1.m * 30 + d1.d < d2.y * 365 + d2.m * 30 + d2.d)
    return true;
  return false;
}
 
Date& operator++(Date& obj) {
  obj.d++;
  if(obj.d == 32) {
    obj.m++;
    obj.d = 1;
    if(obj.m == 13)
      obj.y++;
  }
  return obj;
}
 
void Date::setDate(int _d, int _m, int _y) {
  if(_y > 0)
    y = _y;
  else
    y = 1;
 
  if(_m >= 1 && _m <= 12)
    m = _m;
  else
    m = 1;
 
  if(_d >= 1 && _d <= 31)
    d = _d;
  else
    d = 1;
}
0
06.06.2013, 20:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 20:11
Привет! Вот еще темы с ответами:

Описать базовый класс автомобиль и от него наследуются классы: грузовые авто, уборочные авто, спортивные авто - C++
Всем привет!:) хочу спросить кто нибудь писал программы с наследованием на С++? Интересны задачи типа : &quot;Описать базовый класс автомобиль...

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class Point { public: void SetX(int...

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

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...


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

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

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