Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 87
1

использование метода Set() для вывода информации

11.11.2020, 08:13. Показов 1513. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. У меня есть следующая программа:

.h
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
#pragma once
#include <iostream>
 
using namespace std;
 
class Ship
{
private:
    std::string name;
    int displacement;
    std::string type;
 
public:
 
    Ship(const string valueName, int valueDisplacement, string valueType); // конструктор с параметрами
 
    Ship() // конструктор по умолчанию
    {
        name = ""; //чтобы не было мусора в программе
        displacement = 0;
        type = "";
    }
 
    void Print() const; // функция вывода данных на экран
 
    void Input(); // функция ввода данных с клавиатуры
 
    //NAME
    const string &get_Name() const;
    void set_Name(const string &val);
 
    //displacement
    const int &get_Displacement() const; 
    void set_Displacement(const int &val);
 
    //type
    const string &get_Type() const;
    void set_Type(const string &val);
    
};
.cpp
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#define _CRT_SECURE_NO_WARNINGS
 
#include <cstdlib>
#include <string>
#include <iostream>
#include "main.h"
#include <Windows.h>// чтобы работала функция SetConsole
 
using namespace std;
 
Ship::Ship(const string valueName, int valueDisplacement, string valueType) //конструктор с параметрами
 
{
    name = valueName; // копируем строку valueName в строку name
    displacement = valueDisplacement; // параметру displacement присваиваем значение valueDisplacement
    type = valueType; // копируем строку valueType в строку type
 
}
 
//NAME
const string & Ship::get_Name() const
{
    return name;
}
 
void Ship::set_Name(const string & val)
{
    name = val;
}
 
//displacement
const int & Ship::get_Displacement() const
{
    return displacement;
}
 
void Ship::set_Displacement(const int & val)
{
    if (val > 1000 && val < 1000000) displacement = val;
 
    else
        cerr << "Неверно указана величина водоизмещения" << endl;
}
 
//type
const string & Ship::get_Type() const
{
    return type;
}
 
void Ship::set_Type(const string & val)
{
    type = val;
}
 
 
void Ship::Print() const // функция вывода данных на экран
{
    cout << "\nНаименование\t" << get_Name() << "\nВодоизмещение\t" << get_Displacement() << "\nТип\t\t" << get_Type() << endl;
}
 
 
void Ship::Input() // функция ввода данных с клавиатуры
{
    cout << "\nВведите наименование корабля и нажмите Enter\t" << endl; //выводим сообщение пользователю о вводимых данных
    cin >> name;
    cout << "\nВведите Водоизмещение корабля и нажмите Enter\t";  //выводим сообщение пользователю о вводимых данных
    cin >> displacement; //вводим данные с клавиатуры
    cout << "\nВведите Тип корабля и нажмите Enter\t"; //выводим сообщение пользователю о вводимых данных
    cin >> type; //вводим данные с клавиатуры
}
 
int main()
{
    setlocale(LC_CTYPE, "rus"); SetConsoleCP(1251); SetConsoleOutputCP(1251); // для вывода информации на русском языке
    Ship firstship("Титаник", 52310, "пассажирский");
    firstship.Print(); // выводим данные на экран
 
    Ship *Ship1;
    const string name2 = "Аврора";
    Ship1 = new Ship(name2, 6731, "крейсер"); // создание объекта,  вызов конструктора с тремя параметрами
    Ship1->Print(); // выводим данные на экран
    delete Ship1; // освобождаем память
 
    Ship Ship2;//создание объекта,  используется конструктор без параметров
    Ship2.Input();
    Ship2.Print();
 
    system("pause"); // задайте ожидание (паузу) перед выходом из программы
 
    return 0;
}
Как можно использовать set() методы в реализации функции Input?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2020, 08:13
Ответы с готовыми решениями:

Использование метода Where() для вывода массива
Как правильно использовать метод (ar.Where()) ,чтобы исключить элементы массива чисел выведенных в...

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

Использование скриптов для вывода информации о компьютере на раб.стол
Вот такое решение - для облегчения жизни, сразу видно что за комп и что в Ём) есть ... Можно...

Использование lower_bound для set
У меня вопрос у использованию lower_bound на set. Допустим: set &lt;int&gt; s; s.insert (2);...

4
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
11.11.2020, 08:20 2
Вообще не желательно в методах класса использовать всякие потоки ввода вывода. Пусть вызывающая сторона берет значения откуда ей нужно и передает классу в сеттеры.
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.11.2020, 08:43 3
Цитата Сообщение от Ann1984 Посмотреть сообщение
использование метода Set() для вывода информации
задача сеттеров - устанавливать значения.
они не должны заниматься выводом информации.

Цитата Сообщение от Ann1984 Посмотреть сообщение
Как можно использовать set() методы в реализации функции Input?
в реализации функции Input сеттеры не нужны.
0
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 87
11.11.2020, 08:52  [ТС] 4
Да, сеттеры используются для присвоения данных. Ошиблась в названии темы, видно о геттерах думала.
А нет способа ввести данные с клавиатуры и внести их в геттер? Ну т.е. присваивать вводимые в консоль с клавиатуры значения не полям класса, а вызывая их сеттеры.
0
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
11.11.2020, 08:59 5
Лучший ответ Сообщение было отмечено Ann1984 как решение

Решение

Есть. Делай это вне класса и передавай значения сеттерам.

Добавлено через 3 минуты
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
#include <iostream>
#include <string>
 
 
class Class {
 
public:
    Class() = default;
    Class(const std::string& str) :
        str_(str) { }
 
    const std::string& get() const { return str_; }
 
    void set(const std::string& str) { 
        
        //Это плохая практика, считывать и выводить значения в методах класса
        //std::cout << "Please, enter a string: ":
        //std::cin >> str_;
 
        str_ = str; 
    
    }
 
 
 
private:
    std::string str_;
 
};
 
 
 
int main() {
 
    std::string str;
 
    std::cout << "Please, enter a string: ";
    std::cin >> str;
 
    Class c;
 
    c.set(str);
 
    return 0;
 
}
1
11.11.2020, 08:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2020, 08:59
Помогаю со студенческими работами здесь

Для чего нужны set.keys(), set.values(), set.entries() ?
Для чего нужны set.keys(), set.values(), set.entries() ? Не могу понять документацию. Приведите...

Использование контейнера set для создания словаря
Всем привет. Прошу помощи с программой. Само задание: Написать программу «Англо - русский и русско...

Фильтр для вывода информации из БД
Всем добрый день. Суть вопроса: Есть Windows форма на скриншоте. По заданию, пользователь...

Цикл для вывода информации
Вывод надписи , есть цикл вывода новостей из БД но мне нужно когда он выводи 3 сообщений выводилась...

Создание конструктора метода для последующего вывода на консоль
Численные методы: Метод Леверье. Консольное приложение в Visual Studio Есть 4 класса: Program,...

Создание формы для вывода информации
Доброе утро! Меня заклинило..подскажите, пожалуйста, как правильно и грамотно реализовать форму...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru