Реализовать класс Date, который хранит информацию об определенной дате - C (СИ)
Формулировка задачи:
Класс Date хранит информацию об определенной дате (дд-мм-гг) для чего в нем предустмотрен поля day,mounth,year:
Метод Date::sethate() - должен в класс данные, а метод Date::ShowDate()-выводить на экран.
написать main() функцию в которой для демострации работы данного класса выполнить следующее
-Создать Date обьект
-Вывести неоторую дату и сохранить соответствующие данные (дд-мм-гг) в Date бьекте
-Вывести, используя метод Date::Showdate() хранящиеся в Date - обьекте данные на экран
Помогите пожалуйста. Есть небольшая просьба если можете пожалуйста прокомментируйте код.
Всем заранее спасибо..
Помогите
Помогите кто ни будь пожалуйста
Решение задачи: «Реализовать класс Date, который хранит информацию об определенной дате»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> /* Наш класс */ typedef struct { int day; int month; int year; void (*set)(); void (*show)(); } Date; void setDate(Date *date_object_in,int day_in,int month_in,int year_in); void showDate(Date *date_object_in); /* * Конструктор нашего класса. * Конструктор класса - это функция, которая создает * экземпляр класса (объект) */ void Constructor(Date *date_object_in); /* * Декструктор класса, это функция которая удаляет объект класса * иными словами высвобождает пасять */ void Destructor(Date *date_object_in); int main() { /* С помощью функции localtime(), в линуксе, * мы можем получить текущую дату */ time_t t = time(NULL); struct tm tm_instance = *localtime(&t); /* После этого в tm_instance у нас лежит год, месяц, день*/ /* Создаем объект класса Date, с помощью конструктора */ Date *date_object = NULL; Constructor(date_object); /* Устанавливаем дату для объекта*/ (*date_object).set(date_object,tm_instance.tm_mday,tm_instance.tm_mon,tm_instance.tm_year); /* Выводим данные объекта, то есть дату */ (*date_object).show(date_object); Destructor(date_object); //printf("now: %d-%d-%d\n", tm_instance.tm_year + 1900,tm_instance.tm_mon + 1,tm_instance.tm_mday); return 0; } void Constructor(Date *date_object_in) { /* Выделяем память для нашего объекта */ date_object_in = malloc(sizeof(Date)); date_object_in->day = 0; date_object_in->month = 0; date_object_in->year = 0; date_object_in->set = &setDate; date_object_in->show = &showDate; } void Destructor(Date *date_object_in) { free(date_object_in->set); free(date_object_in->show); free(date_object_in); } void setDate(Date *date_object_in,int day_in,int month_in,int year_in) { date_object_in->day = day_in; date_object_in->month = month_in; date_object_in->year = year_in; } void showDate(Date *date_object_in) { printf("day = %d\n",date_object_in->day); printf("month = %d\n",date_object_in->month); printf("year = %d\n",date_object_in->year); }
Объяснение кода листинга программы
- Объявление класса Date с полями day, month, year и функциями set и show.
- Функция setDate устанавливает значения полей объекта Date.
- Функция showDate выводит значения полей объекта Date.
- Функция Constructor создает экземпляр класса Date, инициализирует его поля нулевыми значениями и присваивает указателю date_object_in адрес выделенной памяти.
- Функция Destructor освобождает память, выделенную под объект класса Date.
- В функции main создается экземпляр класса Date, используется функция localtime() для получения текущей даты и устанавливается с помощью функции setDate.
- Затем с помощью функции showDate выводится текущая дата.
- В конце программы вызывается функция Destructor для освобождения памяти.
- Значения полей объекта Date при установке и выводе текущей даты не меняются.
- В функции main после вывода текущей даты вызывается функция Destructor для освобождения памяти.
- Значения полей объекта Date при установке и выводе текущей даты не меняются.
- В функции main после вывода текущей даты вызывается функция Destructor для освобождения памяти.
- Значения полей объекта Date при установке и выводе текущей даты не меняются.
- В функции main после вывода текущей даты вызывается функция Destructor для освобождения памяти.
- Значения полей объекта Date при установке и выводе текущей даты не меняются.
- В функции main после вывода текущей даты вызывается функция Destructor для освобождения памяти.
- Значения полей объекта Date при установке и выводе текущей даты не меняются.
- В функции main после вывода текущей даты вызывается функция Destructor для освобождения памяти.
- Значения полей объекта Date при установке и выводе текущей даты не меняются.
- В функции main после вывода текущей даты вызывается функция Destructor для освобождения памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д