Вариант 3. Дата

Сложность

12 баллов

Описание

Спроектировать и реализовать класс Date, позволяющий хранить дату, и производить набор основных операций с датами.

В классе должны быть определены различные конструкторы (по умолчанию, по строке, по трем целым числам (число, месяц, год), конструктор копирования).

Должны быть перегружены следующие операторы: + (правый операнд - целое число, обозначающее количество дней), - (правый операнд - целое число, обозначающее количество дней), +=, -=, ==, !=, <, >, <=, >=, << (вывод в поток типа ostream).

[Замечание]Замечание

При реализации операций не обязательно учитывать переход с юлианского календаря на грегорианский.

Защита

Для защиты лабораторной работы необходимо представить:

  • Работающую программу.
  • Диаграмму классов, на которой должны быть показаны все операции и атрибуты реализованного класса, причем для каждой операции должна быть показана сигнатура и спецификатор доступа
  • Распечатку откомментированного листинга программы

Пример

Разработанный класс Date должен допускать такое использование:

/*...*/

int main() {
	Date a;
	Date b("01/12/06");   
	Date c(2,12,6);       

	if (b+1 != c) cout << "Something wrong\n"; else cout << "As expected\n";

	if (b < c) cout << "As expected\n"; else cout << "Something wrong\n";
	
	cout << b++ << endl
	     << c-1 << endl
	     << (b+=7) << endl;

	return 0;
}
Сайт управляется системой uCoz