Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
14 / 14 / 11
Регистрация: 14.11.2016
Сообщений: 276
1

Методы класса

08.09.2018, 14:56. Показов 878. Ответов 2
Метки нет (Все метки)

Задан класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
enum month {jan=1, feb, mar, apr, may, jun, jul, aug, sep, okt, nov, dek};
сlass DATE
{
public:
     DATE(unsigned dd, month mm,unsigned yy); /*  Инициализация в формате ДД.ММ.ГГ*/
     void Print(char format);  /*  Вывести дату по формату ДД*ММ*ГГ, где * - char format*/
     void Setformat (char format); /*  Задать char format*/
     unsigned SetDATE(month mm, unsigned dd, unsigned yy);/*  Изменить дату*/
private:
     unsigned dd;
     month mm;
     unsigned yy;
     char format;
};
Реализуйте следующие методы одного из классов и напишите демонстрационную программу, инициализирующую несколько переменных посредством указанного конструктора, выводящую их, производящую над ними некоторые действия с помощью метода, данного в варианте задания, и выводящую результаты.

Вот такое задание, вообще не пойму что от меня хотят, только начинаю изучать c++, поясните пожалуйста что делать и каким образом хоть немного, спасибо.

В моем понимании я должна вывести какую-то дату (любую или ее ввести и изменить формат?), потом задать формат, то есть дата через "." или "/", далее скорректировать дату по новому формату и потом заменить ее на другую дату
Но как начать не знаю
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2018, 14:56
Ответы с готовыми решениями:

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

Почему VS при обращении к методам класса через точку показывает в том числе и private методы унаследованного класса?
Есть два класса. Один наследует другой с модификатором наследования private. Соответственно...

Почему при обращении к методам класса через точку VS показывает в том числе и private методы унаследованного класса?
Есть три класса. Каждый наследует другой с модификатором наследования private. Соответственно...

Методы класса внутри определения класса
Все привет! Решил закрепить свои знания по C++, читаю Р.Лафоре - "Объектро-ориентированное...

2
"C with Classes"
1653 / 1270 / 481
Регистрация: 16.08.2014
Сообщений: 5,330
Записей в блоге: 1
08.09.2018, 15:39 2
Цитата Сообщение от KatrinLuxury Посмотреть сообщение
вообще не пойму что от меня хотят
если ты вообще не понимаешь что от тебя хотят, это плохо,
тем более
Цитата Сообщение от KatrinLuxury Посмотреть сообщение
только начинаю изучать c++
Добавлено через 1 минуту
тебе нужно прочитать про базовые конструкции С++, потом классы С++, и уже потом начинать делать задание.

Добавлено через 3 минуты
если с базовыми конструкциями С++ знакома то советую читать про классы и про класс Дата книгу "Бьерн Страуструп Язык программирования C++ Специальное издание Перевод с английского Н.Н. Мартынова Москва Издательство БИНОМ 2011" глава 10.

Добавлено через 22 минуты
KatrinLuxury, если что то конкретное не понятно при изучении создавай тему на форуме. чем короче и четче вопрос тем качественней ответ.

Добавлено через 4 минуты
KatrinLuxury, еще пара возможно полезных ссылок
Как пользоваться отладчиком (в Visual Studio)
https://www.cyberforum.ru/post1993739.html
1
14 / 14 / 11
Регистрация: 14.11.2016
Сообщений: 276
08.09.2018, 20:57  [ТС] 3
Выполнила задания 2 и 4, но остались вопросы, как заменить метод инициализации
C++
1
DATE();
на
C++
1
DATE(unsigned dd, month mm, unsigned yy);
и корректно использовать метод
C++
1
void Setformat(char format);
, сейчас метод объявлен, но никак не влияет на программу
Подскажите пожалуйста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#define Date_hpp
#include <iostream>
 
enum month { jan = 1, feb, mar, apr, may, jun, jul, aug, sep, okt, nov, dek };
class DATE
{
public:
    void Printsource();  //Вывод даты с помощью исходного разделителя «–«)
    void Printsource2();
    unsigned Valid(unsigned dd, month mm, unsigned yy); /* Проверка значений ДД.ММ.ГГ на корректность ввода */
    DATE();     
    unsigned SetDATE(unsigned dd, month mm, unsigned yy);   //Изменить дату, задать новую пользовательскую дату/
    /*-------------------------------------------*/
    DATE(unsigned dd, month mm, unsigned yy);/*  Инициализация в формате ДД.ММ.ГГ*/
    void Print(char format);  /*4  Вывести дату по формату
                              ДД*ММ*ГГ, где * - char format*/
    void Print2(char format);
    void Setformat(char format); /* Задать char format*/
private:
    unsigned dd; //число
    month mm;     //месяц
    unsigned yy; //год
    char format; //разделитель исходный
};
C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//main.cpp
int main() {
    setlocale(LC_ALL, "Russian");
    DATE myDate;   //?
    unsigned flag = 0;
    do
    {
        cout << "\n";
        if (flag == 1) {
            cout << "To display the saved date, press 1.\n";
            cout << "To enter the date, press any number except 1 ( <>1) \n";
        }
        else if (flag == 0) {
            cout << "To display the saved date, press 1.\n";
            cout << "To enter the date, press any number except 1 ( <>1) \n";
        }
        int answer;
        cin >> answer;
        if (answer == 1) {
            cout << "Entered date -> ДД.ММ.ГГ \n";
            myDate.Printsource();
            cout << "Modified date #14 -> ММ.ДД.ГГ \n";
            myDate.Printsource2();
        }
        else {
            cout << "Enter the date you want to remember \n\n";
            string str;
            cin >> str;
            std::string DD = str.substr(0, 2); // возвращение 2 символов строки str начиная с 0 символа
            std::string MM = str.substr(3, 2);
            std::string YY = str.substr(6, 8);
 
            int DDint = atoi(DD.c_str()); //преобразование строки string в int
 
            int YYint = atoi(YY.c_str());
 
            int MMint = atoi(MM.c_str());
 
            if ((myDate.SetDATE(DDint, (month)MMint, YYint)) == 0) {
                cout << "Enter a divider for date output OR PRESS 0 TO OUTPUT IT FROM THE PROGRAM \n";
                char divider = 0;
                cin >> divider;
                cout << "\n";
                if (divider == '0') {
                    cout << "Entered date -> ДД.ММ.ГГ \n";
                    myDate.Printsource();
                    cout << "Modified date #14 -> ММ.ДД.ГГ \n";
                    myDate.Printsource2();
                }
                else {
                    cout << "Entered date -> ДД.ММ.ГГ \n";
                    myDate.Print(divider);
                    cout << "Modified date #4 -> ММ.ДД.ГГ \n";
                    myDate.Print2(divider);
                }
                flag = 1;
            }
            else {
                cout << "The date is not valid! Try arain!\n";
            }
        }
 
    } while (true);
 
 
    return 0;
}
C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
.cpp
#include "stdafx.h"
#include "Header.h"
 
DATE::DATE() {      //конструктором задаем параметры по умолчанию  ???
    this->dd = 8;
    this->mm = (month)9;
    this->yy = 2018;
    this->format = '-';
}
 
//в этой функции устанавливаем новую дату, заданную ползователем
unsigned DATE::SetDATE(unsigned dd, month mm, unsigned yy) {
    int flag = 0;
    if ((flag = Valid(dd, mm, yy)) == 0) {
        this->dd = dd;
        this->mm = (month)mm;
        this->yy = yy;
    }
    return flag;
}
 
//печать даты на экран с разделителем даты, заданной пользователем
void DATE::Print(char format) {
...
}
 
void DATE::Print2(char format) {
...
}
 
//печать даты с исходным, заданным программой разделителем
void DATE::Printsource() {
...
}
 
void DATE::Printsource2() {
...
}
 
//функция, проверяющая на корректность новые данные, введенные пользователем
unsigned DATE::Valid(unsigned dd, month mm, unsigned yy) {
...
}
 
 
char Setformat(char format) {
    return format;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2018, 20:57

Поля класса const, методы класса const, объекты класса const
привет услышал , что есть методы и поля , и объекты const. говориться что если я сделаю вот...

методы класса
Доброго времени суток! Заранее извиняюсь за тупку. Чем отличаются вызовы c.printMe();...

Методы класса
Я щас организую разреженную матрицу через двусвязный упорядоченый циклический список... ну да не...

Указатель на методы класса
Имеется код: #include &lt;iostream&gt; using namespace std; class s { private: int a; public:...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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