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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ итерационный цикл http://www.cyberforum.ru/cpp-beginners/thread653537.html
Всем привет, сижу, не могу понять как сделать функцию для поиска суммы ряда. вот задание : Разработать алгоритм и составить программу вычисления значений суммы S заданного ряда при различных значениях аргумента Х: во внутреннем цикле для фиксированного значения Х поочередно суммировать члены ряда, пока их абсолютная величина превышает заданную точность eps. Вычисление очередного член ряда...
C++ Функция.Ряд тейлора для експоненты Заранее прошу искреннего извинения за свою дурость, но все таки, ctrl+c ctrl+v не хочу заниматся, и сообственно в чем проблемма, написал функция для нахождения експоненты Ех через разложение в ряд тейлора, и с положительными числами она работает на ура, но с отрецательными чем больше х тем хуже результат, подскажите где не прав...заранее большое спасибо. template <typename any> any EXP(any... http://www.cyberforum.ru/cpp-beginners/thread653532.html
C++ Путём перестановки элементов матрицы поместить её максимальный элемент в левый верхний угол
Помогите пожалуйста бездарю( дана целочисленная квадратная матрица размером 4х4 написать программу, содержащую функцию, которая путём перестановки элементов помещает её максимальный элемент в левый верхний угол, следующий по величине- в озицию (2,2) следующий (3,3) и тд заполнив таким образом всю главную диагональ. Если можно то с коментариями особо сложных строк написал только часть да и то...
Перевод матрицы в одномерный массив, динамическое выделение памяти для матрицы C++
Здравствуйте. Никак не могу разобраться с этой программой. Вот код: /********************** Файл LAB2.H *************************/ /* Описание функций и внешних переменных файла LAB2.C */ extern int L2_RESULT; /* Глобальна переменна - флаг ошибки */ /***** Выделение памяти под матрицу */ int creat_matr ( int N ); /***** Чтение элемента матрицы по заданным координатам */ int...
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread653490.html
Распечатать элементы динамического массива mas в одномерный динамический a. 1 по правым диагоналям, начиная с правого верхнего элемента 2 по спирали, начиная с центрального элемента Массив забила элементами, а с алгоритмом не могу разобраться( #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <time.h>
C++ Объясните как работает _getch() со стрелками Я недавно начал учить С++ и я совершенно не понимаю как эта функция работает со стрелками. Например код вида char ch; ch=_getch(); cout<<ch; _getch(); Сразу же закроется при первом нажатии стрелки, но с другими кнопками клавиатуры всё нормально. Ещё, эта функция при таком коде char ch; подробнее

Показать сообщение отдельно
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 155
18.09.2012, 20:49  [ТС]     Как правильно впихнуть и использовать перечисления в структуре?
Цитата Сообщение от igorrr37 Посмотреть сообщение
вводи не первую букву должности а соответствующий номер: laborer'у соответсвует 0 и т.д., ведь дальше в коде идёт проверка именно на номер:
C++
1
2
3
4
5
6
7
8
9
switch(worker1.pro)
                        {
                            case 0: cout << "laborer"    << endl; break;
                            case 1: cout << "secretary"  << endl; break;
                            case 2: cout << "manager"    << endl; break;
                            case 3: cout << "accountant" << endl; break;
                            case 4: cout << "executive"  << endl; break;
                            case 5: cout << "researcher" << endl; break;
                        }
Это я там ошибся, а изменять сообщение могу только в течении 10ти минут. Потом переправил на:

C++
1
2
3
4
5
6
7
8
9
switch(worker1.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;
                        }
Но Ваше сообщение надоумило меня на вот такое изменение: cin >> (char&)worker1.pro;

Теперь все работает! Большое спасибо Вам!

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
113
114
115
116
117
118
119
120
121
122
// 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;
};
///////////////////////////////////////////////////////////////////////
 
int main ()
{
    system("chcp 1251 >nul");
 
    char ch='/', ch1='/';
    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";
                    cout << "Введите номер и величину зарплаты: ";
                    cin >> worker1.number >> worker1.money;
                    cout << "Введите первую букву должности\n(laborer, secretary, manager, accountant, executive, researcher): ";
                    cin >> (char&)worker1.pro;
                    cout << "Введите дату поступления на работу формата(день/месяц/год): ";
                    cin >> worker1.d >> ch1 >> worker1.m >> ch1 >> worker1.y; ch3++; cout << endl; continue;
                }
            case 2:
                {
                    cout << "\nВторой сотрудник.\n";
                    cout << "Введите номер и величину зарплаты: ";
                    cin >> worker2.number >> worker2.money;
                    cout << "Введите первую букву должности\n(laborer, secretary, manager, accountant, executive, researcher): ";
                    cin >> (char&)worker2.pro;
                    cout << "Введите дату поступления на работу формата(день/месяц/год): ";
                    cin >> worker2.d >> ch1 >> worker2.m >> ch1 >> worker2.y; ch4++; cout << endl; continue;
                }
            case 3:
                {
                    cout << "\nТретий сотрудник.\n";
                    cout << "Введите номер и величину зарплаты: ";
                    cin >> worker3.number >> worker3.money;
                    cout << "Введите первую букву должности\n(laborer, secretary, manager, accountant, executive, researcher): ";
                    cin >> (char&)worker3.pro;
                    cout << "Введите дату поступления на работу формата(день/месяц/год): ";
                    cin >> worker3.d >> ch1 >> worker3.m >> ch1 >> worker3.y; ch5++; cout << endl; continue;
                }
            case 4: 
                {
                    if(ch3>0 && ch4>0 && ch5>0)
                    {
                        cout << endl << "\nПервый сотрудник под номером " << worker1.number << " Зарплата: " << worker1.money << "\nДолжность: ";
                        switch((char&)worker3.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 << "Дата устройства: " << worker1.d << ch1 << worker1.m << ch1 << worker1.y << endl;
 
                        cout << endl << "Второй сотрудник под номером " << worker2.number << " Зарплата: " << worker2.money << "\nДолжность: ";
                        switch((char&)worker2.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 << "Дата устройства: " << worker2.d << ch1 << worker2.m << ch1 << worker2.y << endl;
 
                        cout << endl << "Третий сотрудник под номером " << worker3.number << " Зарплата: " << worker3.money << "\nДолжность: ";
                        switch((char&)worker3.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 << "Дата устройства: " << worker3.d << ch1 << worker3.m << ch1 << worker3.y << endl; break;
                    }
                    else
                    {
                        cout << "Вы ввели не все данные!"; break;
                    }
                }
            default: cout << "Вы ввели неверное значение!"; break;
        }
        cout << "\n\nПродолжить?(y/n): ";
        cin>> ch; cout << endl;
    }
    while(ch !='n');
 
 return 0;
}
 
Текущее время: 08:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru