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

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

Войти
Регистрация
Восстановить пароль
 
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
#1

Структура класса - C++

22.02.2013, 23:49. Просмотров 549. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 23:49     Структура класса
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
23.02.2013, 00:02     Структура класса #2
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"
Я бы попросил объяснить твоего учителя, он что, считает, что каждый класс обязан уметь производить вывод на экран? Весьма сомнительно. Похоже учитель сам не особо понимает, зачем нужно ООП.
Develops
15 / 15 / 1
Регистрация: 19.02.2013
Сообщений: 40
23.02.2013, 00:03     Структура класса #3
Ну вот так, например:
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) { }
Хотя это лишь дело вкуса
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6442 / 3081 / 306
Регистрация: 04.12.2011
Сообщений: 8,483
Записей в блоге: 4
23.02.2013, 00:23     Структура класса #4
ovner, тут возможно, имеется ввиду, что данные класса подчинены какой-то логике. То есть не любой месяц может иметь 31 день и не любой 30, а для февраля, ещё и нужна проверка года и его ограничение зависит от того, обычный год или високосный. Напишите метод проверки года. Потом метод проверки месяца, в котором по значению поля, скажем bool visokosniy, логика ограничения допустимых чисел для февраля ветвится. Соответственно и в конструкторе и методах установки значений, последовательность вызовов: год, месяц, число.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2013, 01:08     Структура класса
Еще ссылки по теме:

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

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость. - C++
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать задач, тем всей группой поставим &quot;+&quot;...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар» - C++
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и «Продукты» описанной структуры. 3. Создать...

Структура DateTime, битовая структура - C++
Условие: Структура содержит информацию о дате и времени некоторого события: struct datetime { unsigned short Year; // год ...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.02.2013, 01:08     Структура класса #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Я бы попросил объяснить твоего учителя, он что, считает, что каждый класс обязан уметь производить вывод на экран? Весьма сомнительно. Похоже учитель сам не особо понимает, зачем нужно ООП.
Насчёт вывода на экран спорить не буду, но выдать дату, как строку заданного формата, классу Date не помешает.
Yandex
Объявления
23.02.2013, 01:08     Структура класса
Ответ Создать тему
Опции темы

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