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

Передача параметров в классе

16.01.2017, 17:00. Показов 5621. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно чтобы программа рассчитывала стоимость драгоценного камня и стоимость его огранки. И все это должно быть сделано через класс и методы, ну и менюшку препод потребовал.
Подскажите пожалуйста как можно передавать параметры между методами класса.
Получается так что когда я рассчитываю стоимость камня и стоимость его огранки все получается и все считается, а когда через метод message вывожу на экран полученные значения - масса равна введенному мной числу а остальные значения равны 0.нужно как то передать новые значения m,w,q в метод message.

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
classkamen
{
    private:
        int d,s;
                double m,w,q;  
    public:
        voidmass(double m)
        {
            cout<<"Введите массу камня в граммах  ";
            cin>>m;
            m=m*5;
            cout<<"1 грамм камня равен 5 каратам"<<endl;
        }
        voidStoimKamnya(double w,double m)
        {
            cout<<"Стоимость камня W вычисляется по формуле: W=D*M*M,\nгде D=1000 руб/карат*карат, M-масса в                каратах"<<endl;
            d=1000;
            w=d*m*m;
        }
        voidStoimOgr(double q,double m)
        {
            cout<<"Стоимость огранки Q вычисляется по формуле: Q=S*M, \nгде S=100 руб/карат, M-масса в каратах"<<endl;
            s=100;
            q=s*m;
        }
        void message(double m,double w,double q)
        {
            cout<<"Масса камня в каратах составляет:"<<m<<endl;
            cout<<"Стоимость камня:"<<w<<endl;
            cout<<"Стоимость огранки данного камня:"<<q<<endl;
        }
};
int main()
{
    int n=1;
    double m=0,w=0,q=0;
    setlocale(LC_ALL, "russian");
    kamen objkamen;
    while (true)
    {
        cout<<"Выберите действие:\n\n";
        cout<<"1. Введите массу камня граммах\n";
        cout<<"2. Выполнить расчет стоимости камня\n";
        cout<<"3. Выполнить расчет стоимости огранки камня\n";
        cout<<"4. Вывести на экран полученные данные\n";
        cin>>n;
    
    switch (n)
    {
        case 1:
        {
                cout<<"Введите массу камня в граммах  ";
                cin>>m;
                objkamen.mass(m);
                break;
        }
        case 2:
        {
                objkamen.StoimKamnya(w,m);
                break;
        }
        case 3:
        {
                objkamen.StoimOgr(q,m);
                break;
        }
        case 4:
        {
 
                objkamen.message(m,w,q);
                break;
        }
        default:
        cout << "Nepravilni vvod" << endl;
  }
}
        system("pause");
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2017, 17:00
Ответы с готовыми решениями:

Осуществите в классе перегрузку метода proizved() c различным количеством параметров
Осуществите в классе перегрузку метода proizved() c различным количеством параметров так, что если...

Осуществите в классе перегрузку метода del() c различным количеством параметров
Осуществите в классе перегрузку метода del() c различным количеством параметров так, что если...

Передача аргументов в классе
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; const int n=3;...

В шаблонном классе, один из параметров которого контейнер, объявить итератор этого контейнера
Собсно #include &lt;windows.h&gt; #include &lt;iterator&gt; #include &lt;vector&gt; using namespace std; ...

6
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.01.2017, 17:11 2
Цитата Сообщение от Максим1112605 Посмотреть сообщение
как можно передавать параметры между методами класса.
1. Записывая промежуточный результат в свойства класса.
2. Как и между любыми функциями, просто передавая результаты.
3. С помощью глобальных переменных (нежелательный способ).

Добавлено через 2 минуты
Цитата Сообщение от Максим1112605 Посмотреть сообщение
(double w,double m)
Здесь вы работаете с полученными аргументами, а не свойствами класса. Вам не нужно принимать значений если они уже записаны в классе.
0
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 12
16.01.2017, 17:20  [ТС] 3
Цитата Сообщение от MrGluck Посмотреть сообщение
1. Записывая промежуточный результат в свойства класса.
2. Как и между любыми функциями, просто передавая результаты.
3. С помощью глобальных переменных (нежелательный способ).
А можно поподробнее и с примерами
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.01.2017, 17:31 4
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
#include <iostream>
 
class A
{
    int x;
public:
    A() : x(0) {} // при создании класса x инициализируется нулём
    void foo() { x = 42; }
    void bar() { std::cout << x << std::endl; }
};
 
class B
{
public:
    int foo() { return 42; }
    void bar() { std::cout << foo() << std::endl; } // вычисляем значение с помощью вспомогательного метода
};
 
class C
{
public:
    int foo() { return 42; }
    void bar(const int x) { std::cout << x << std::endl; }
};
 
int GLOB = 0;
 
class D
{
public:
    void foo() { GLOB = 42; }
    void bar() { std::cout << GLOB << std::endl; }
};
 
int main()
{
    A a;
    a.foo();
    a.bar();
 
    B b;
    b.bar();
 
    C c;
    c.bar(c.foo());
 
    D d;
    d.foo();
    d.bar();
}
1
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 12
16.01.2017, 18:47  [ТС] 5
А какой это из методов? Мне бы подробнее один из способов (1 или 2) в моей задаче.
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.01.2017, 19:26 6
Цитата Сообщение от Максим1112605 Посмотреть сообщение
А какой это из методов? Мне бы подробнее о 1 и 2.
Я как бы все упомянутые продемонстрировал
0
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 12
16.01.2017, 19:47  [ТС] 7
Я ничего не понял что и где. Можно как можно проще и с комментариями. А еще лучше для моего задания
0
16.01.2017, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2017, 19:47
Помогаю со студенческими работами здесь

Передача параметров
Добрый день! Столкнулся со следующей ситуацией. При передаче 2-х мерного статического массива по...

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

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

Передача параметров в функцию
Помогите решить ещё одну проблему) Пароль в хэшированном виде хранится в HashData. И пока выводится...


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

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