С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140

Структура класса

22.02.2013, 23:49. Показов 1057. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Только начал изучать ООП. Вообщем есть задание:
Создать класс - дата с полями в закрытой части: день (1-31), месяц (1-12), год (целое число). Определить конструктор, деструктор, функции смены дня, месяца и года, получения значений дня, месяца и года, функции вывода по образцам: "15 января 2012 г." и "15.01.2012". Функции изменения значений полей класса должны проверять корректность задаваемых параметров.

Помогите пожалуйста создать функцию смены дня, месяца и года и "Функции изменения значений полей класса должны проверять корректность параметров, задаваемых."
И подскажите, все ли я сделал правильно в программе.

C++ (Qt)
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
#include <iostream>
using namespace std;
 
class Date
{
private:
    int day;
    int month;
    int year;
public:
    
    Date() {day=month=year=0;}
    Date(int a, int b, int c) {day=a;month=b; year=c;}
    ~Date(){};
 
 void print(void);
 };
 
void Date::print(void)
  {
      cout << day<<'.'<< month <<'.'<< year<<endl;
      char *mas[]={"january","february","march","april","may","june","july","august","september","october","november","december"};
      cout << day<<' '<< mas[month-1] <<' '<< year<<endl;
  }
 
void main()
{
    Date obj1(1,3,1997);
    obj1.print();
    getchar();getchar();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2013, 23:49
Ответы с готовыми решениями:

Структура внутри класса
Есть такой вопрос, целесообразно ли делать вот так: class StudentGroup { private: struct Student { string name; string...

Структура в шаблоне класса
Есть у меня класс бинарного поискового дерева. В нем описана структура TreeNode элемента дерева. template &lt;typename T= int&gt; ...

Структура внутри класса
Добрый вечер всем! Прошу помощи в таком моменте: мне нужно было создать класс со структурой внутри, обеспечить добавление записей в файл,...

4
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
23.02.2013, 00:02
C++
1
2
3
4
5
6
7
8
int Date::setMonth(int value){
  if (value>0 && value<13) {
    month=value;
    return 0;
  }
  else 
    return 1;
}
Простейший пример. При присвоении дня следует более тщательно проверять значения

Добавлено через 2 минуты
Цитата Сообщение от ovner Посмотреть сообщение
функции вывода по образцам: "15 января 2012 г." и "15.01.2012"
Я бы попросил объяснить твоего учителя, он что, считает, что каждый класс обязан уметь производить вывод на экран? Весьма сомнительно. Похоже учитель сам не особо понимает, зачем нужно ООП.
1
 Аватар для Develops
15 / 15 / 1
Регистрация: 19.02.2013
Сообщений: 41
23.02.2013, 00:03
Ну вот так, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Date
{
// Строки кода
 
public void setDay(int d);
public void setMonth(int m);
public void setYear(int y);
 
// Строки кода
};
 
void Date::setDay(int d)
{
    if((d < 0) || (d > 31))
    {
        cout << "Передан неправильный номер дня!" << endl;
        return;
    }
    day = d;
}
// Остальные методы реализуй по аналогии с этим.
В целом всё у тебя в коде хорошо, правда поля инициализируют, как правило, вот так:
C++
1
public Date(int a, int b, int c) : day(a), month(b), year(c) { }
Хотя это лишь дело вкуса
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
23.02.2013, 00:23
ovner, тут возможно, имеется ввиду, что данные класса подчинены какой-то логике. То есть не любой месяц может иметь 31 день и не любой 30, а для февраля, ещё и нужна проверка года и его ограничение зависит от того, обычный год или високосный. Напишите метод проверки года. Потом метод проверки месяца, в котором по значению поля, скажем bool visokosniy, логика ограничения допустимых чисел для февраля ветвится. Соответственно и в конструкторе и методах установки значений, последовательность вызовов: год, месяц, число.
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.02.2013, 01:08
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Я бы попросил объяснить твоего учителя, он что, считает, что каждый класс обязан уметь производить вывод на экран? Весьма сомнительно. Похоже учитель сам не особо понимает, зачем нужно ООП.
Насчёт вывода на экран спорить не буду, но выдать дату, как строку заданного формата, классу Date не помешает.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2013, 01:08
Помогаю со студенческими работами здесь

Структура внутри класса и передача массива
Вообщем есть базовый класс. pointsClass.h #ifndef pointsClass_H class pointsClass { public:

Структура, как одно из свойств класса
Не могу разобраться, как обращаться к полям структуры, которая является свойством класса. В куске кода описание класса и шаблоны...

Структура класса(поля данных и методы)
Здравствуйте, столкнулся с забавной вещью. Большинство книг, которые я читал, использовали следующую структуру класса. Сначала идут поля...

Шаблон класса бинарного дерева и структура
Здравствуйте. Создал шаблон класса с типами int, float, double, char. //класс бинарного дерева #pragma once #include...

Как написать конструктор для класса, в котором содержится структура?
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; using namespace std; const int a = 50; struct Spec { char...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru