Инструменты пользователя

Инструменты сайта


reshenie_zadachi_13

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

reshenie_zadachi_13 [2011/01/12 08:44] (текущий)
Строка 1: Строка 1:
 +====== Задача 13 ======
 +**Задача 13:** Создайте класс, который будет содержать информацию о дате (день, месяц, год). С помощью механизма перегрузки операторов,​ определите операцию разности двух дат (результат в виде количества дней между датами),​ а также операцию увеличения даты на определенное количество дней.
 +<​file>​
 +/* 
 + * Created on January 12, 2011, 11:38 AM
 + */
  
 +#include <​cstdlib>​
 +#include <​iostream>​
 +#include <​ctime>​
 +#include <​cstdio>​
 +
 +using namespace std;
 +
 +class myClassDate {
 +    struct tm *initime;
 +    time_t rawtime;
 +    struct mydate {
 +        int my_day;
 +        int my_mon;
 +        int my_year;
 +    } myinitdate;
 +public:
 +    myClassDate();//​конструктор
 +    myClassDate(const myClassDate &​c){};//​конструктор копирования
 +    ~myClassDate(){};//​деструктор
 +    myClassDate operator-(const myClassDate &N)
 +    {
 + myClassDate temp;
 +        temp.myinitdate.my_day=myinitdate.my_day-N.myinitdate.my_day;​
 + //​temp.dig=dig-N.dig;​
 + return temp;
 + }
 +
 +    void printdate(){cout<<​myinitdate.my_day<<​myinitdate.my_mon<<​myinitdate.my_year<<"​\n";​ };
 +    void addday(int days);
 +};
 +
 +myClassDate::​myClassDate() {
 +    rawtime = time (NULL);
 +    initime = localtime (&​rawtime);​
 +    myinitdate.my_day=initime->​tm_mday;​
 +    myinitdate.my_mon=initime->​tm_mon;​
 +    myinitdate.my_year=initime->​tm_year;​
 +}
 +void myClassDate::​addday(int days) {
 +    if (myinitdate.my_day+days>​31) cout<<"​Error! myinitdate.my_day+days>​31"<<"​\n";​
 +    else myinitdate.my_day+=days;​
 +}
 +
 +int main(int argc, char** argv) {
 +    myClassDate A,B,C;
 +    A.printdate();​
 +    A.addday(40);​ //Error
 +    A.addday(5);​
 +    A.printdate();​
 +       //​разность двух дат
 +    B.printdate();​
 +    C=A-B;
 +    C.printdate();​
 +
 +    return (EXIT_SUCCESS);​
 +}
 +</​file>​
загрузка...
reshenie_zadachi_13.txt · Последние изменения: 2011/01/12 08:44 (внешнее изменение)