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

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

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

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

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

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

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

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


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

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

Добавлено через 2 часа 14 минут
ребят, помогите, завтра зачет сдать надо..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 15:58     Описать классы
Посмотрите здесь:

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

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

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

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

Классы - C++
Добрый день! Как создать код программы: В текстовом файле (создается самостоятельно по заданному ниже образцу, можно скопировать...

Классы - C++
кто нибудь может дать ссылку где хорошо описаны классы

Классы - C++
Только недавно начал разбираться с классами. Тут же появилась проблема с заданием. Реализовать класс TClass1, содержащий в качестве...

классы - C++
Нужно написать программу с помощью класса Пожалуйста нужна ваша помощь

классы - C++
#include <cstdlib> #include <iostream> using namespace std; class BST { private : int **tree;

Классы - C++
Всем привет! Очень прошу помочь написать программу на классы, для меня это нереально сложное задание, надеюсь на вас - не оставьте в беде,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
};
LordSilren
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 32
06.06.2013, 18:16  [ТС]     Описать классы #3
MarVaL, спасибо огромное, сейчас попробую разобраться.

тогда вместо второй такое задание.
Перегрузить операторы >, <, == сравнения дат. Оператор ++ для увеличения даты на 1 день. Оператор + сложения даты с целым числом, обозначающим кол-во дней (результат сложения - дата, полученная путем прибавления к исходной дате указанного кол-ва дней)
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;
}
Yandex
Объявления
06.06.2013, 20:11     Описать классы
Ответ Создать тему
Опции темы

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