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

Как правильно впихнуть и использовать перечисления в структуре? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ итерационный цикл http://www.cyberforum.ru/cpp-beginners/thread653537.html
Всем привет, сижу, не могу понять как сделать функцию для поиска суммы ряда. вот задание : Разработать алгоритм и составить программу вычисления значений суммы S заданного ряда при различных...
C++ Функция.Ряд тейлора для експоненты Заранее прошу искреннего извинения за свою дурость, но все таки, ctrl+c ctrl+v не хочу заниматся, и сообственно в чем проблемма, написал функция для нахождения експоненты Ех через разложение в ряд... http://www.cyberforum.ru/cpp-beginners/thread653532.html
C++ Путём перестановки элементов матрицы поместить её максимальный элемент в левый верхний угол
Помогите пожалуйста бездарю( дана целочисленная квадратная матрица размером 4х4 написать программу, содержащую функцию, которая путём перестановки элементов помещает её максимальный элемент в левый...
Перевод матрицы в одномерный массив, динамическое выделение памяти для матрицы C++
Здравствуйте. Никак не могу разобраться с этой программой. Вот код: /********************** Файл LAB2.H *************************/ /* Описание функций и внешних переменных файла LAB2.C ...
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread653490.html
Распечатать элементы динамического массива mas в одномерный динамический a. 1 по правым диагоналям, начиная с правого верхнего элемента 2 по спирали, начиная с центрального элемента Массив...
C++ Объясните как работает _getch() со стрелками Я недавно начал учить С++ и я совершенно не понимаю как эта функция работает со стрелками. Например код вида char ch; ch=_getch(); cout<<ch; _getch(); Сразу же закроется при первом... подробнее

Показать сообщение отдельно
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 178
03.10.2012, 23:50  [ТС]
Цитата Сообщение от igorrr37 Посмотреть сообщение
для инициализации объект надо передавать в ф-цию по ссылке
void diss (employee&);
Теперь все работает! Благодарю Вас! Только не совсем врубился почему именно. Можно у Вас спросить, почему для void disp (employee); & - не требовалось, а для void diss (employee&); это так было необходимо?

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// Test_Project.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
///////////////////////////////////////////////////////////////////////
struct employee
{
    int number;
    float money;
 
    int d;
    int m;
    int y;
 
    enum etupe { laborer, secretary, manager, accountant, executive, researcher };
    etupe pro;
};
///////////////////////////////////////////////////////////////////////
void diss (employee&);
void disp (employee);
 
int main ()
{
    system("chcp 1251 >nul");
 
    char ch='/';
    int ch2, ch3=0, ch4=0, ch5=0;
 
    employee worker1, worker2, worker3;
 
    do
    {
        cout << "Выберите сотрудника(1, 2, 3)\nЛибо введите \"4\" для вывода данных: ";
        cin >> ch2;
 
        switch(ch2)
        {
            case 1:
                {
                    cout << "\nПервый сотрудник.\n";
                    diss(worker1);
                    ch3++; continue;
                }
            case 2:
                {
                    cout << "\nВторой сотрудник.\n";
                    diss(worker2);
                    ch4++; continue;
                }
            case 3:
                {
                    cout << "\nТретий сотрудник.\n";
                    diss(worker3);
                    ch5++; continue;
                }
            case 4: 
                {
                    if(ch3>0 && ch4>0 && ch5>0)
                    {
                        cout << endl << "\nПервый сотрудник под номером " << worker1.number << " Зарплата: " << worker1.money << "\nДолжность: ";
                        disp(worker1);
 
                        cout << endl << "Второй сотрудник под номером " << worker2.number << " Зарплата: " << worker2.money << "\nДолжность: ";
                        disp(worker2);
 
                        cout << endl << "Третий сотрудник под номером " << worker3.number << " Зарплата: " << worker3.money << "\nДолжность: ";
                        disp(worker3); break;
                    }
                    else
                    {
                        cout << "Вы ввели не все данные!"; break;
                    }
                }
            default: cout << "Вы ввели неверное значение!"; break;
        }
        cout << "\n\nПродолжить?(y/n): ";
        cin>> ch; cout << endl;
    }
    while(ch !='n');
    system ("pause");
 
 return 0;
}
///////////////////////////////////////////////////////////////////////
void diss(employee& ddd)
{
    char ch1='/';
    cout << "Введите номер и величину зарплаты: ";
    cin >> ddd.number >> ddd.money;
    cout << "Введите первую букву должности\n(laborer, secretary, manager, accountant, executive, researcher): ";
    cin >> (char&)ddd.pro;
    cout << "Введите дату поступления на работу формата(день/месяц/год): ";
    cin >> ddd.d >> ch1 >> ddd.m >> ch1 >> ddd.y; cout << endl;
}
///////////////////////////////////////////////////////////////////////
void disp(employee dd)
{
switch((char&)dd.pro)
    {
        case 'l': cout << "laborer"    << endl; break;
        case 's': cout << "secretary"  << endl; break;
        case 'm': cout << "manager"    << endl; break;
        case 'a': cout << "accountant" << endl; break;
        case 'e': cout << "executive"  << endl; break;
        case 'r': cout << "researcher" << endl; break;
    }
cout << "Дата устройства: " << dd.d << "/" << dd.m << "/" << dd.y << endl;
}
///////////////////////////////////////////////////////////////////////
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru