Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2011, 16:22   #1
Lusin
 
Регистрация: 25.05.2011
Сообщений: 7
По умолчанию

Я недавно начала изучать С++ и проблеми с решением задач. подскажите пожалуйста

помогите пожалуйста. такая задача.
Пусть, например, в программе определен пе¬речисляемый тип данных etype, отражающий должность сотрудника:

enum etype { laborer, secretary, manager, accountant, executive, researcher };

Напишите программу, которая сначала по первой букве должности, введен¬ной пользователем, определяет соответствующее значение переменной, по¬мещает это значение в переменную типа etype, а затем выводит полностью название должности, первую букву которой ввел пользователь. Взаимодей¬ствие программы с пользователем может выглядеть следующим образом:

Введите первую букву должности (laborer, secretary, manager, accountant, executive, researcher): a
Полное название должности: accountant
Возможно, вам понадобится два ветвления switch: одно — для ввода значе¬ния, другое — для выво

я думаю код выглядит так

Код:
#include <iostream>
using namespace std;

enum etype {laborer, secretary, manager, accountant, executive, researcher};

int main() {
char ch;
cout << "Введите первую бикву должности: (laborer, secretary, manager, accountant, executive, researcher) " << endl;
cin>> ch;
switch(ch) {
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;
}
return 0;
}

Последний раз редактировалось Stilet; 19.01.2014 в 11:15.
Lusin вне форума Ответить с цитированием
Старый 12.09.2011, 18:42   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Тут лучше без свитча, на самом деле. Просто хранить названия в массиве.
Son Of Pain вне форума Ответить с цитированием
Старый 12.09.2011, 19:19   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Просто хранить названия в массиве.
В книге Лафоре к моменту решения этой задачи еще не было массивов.

У меня, к сожалению, не сохранился код этой задачи, но вроде у меня там 2 свитча было.
А проблема-то в чем, кстати?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 12.09.2011 в 19:22.
Alex11223 вне форума Ответить с цитированием
Старый 12.09.2011, 19:54   #4
Lusin
 
Регистрация: 25.05.2011
Сообщений: 7
По умолчанию

В программе должно быть 2 switch. не могу понять для чего второй switch ? а мой код верный?
Lusin вне форума Ответить с цитированием
Старый 12.09.2011, 21:57   #5
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от Lusin Посмотреть сообщение
я думаю код выглядит так

[CPP]#include <iostream>
using namespace std;

enum etype {laborer, secretary, manager, accountant, executive, researcher};

int main() {
char ch;
cout << "Введите первую бикву должности: (laborer, secretary, manager, accountant, executive, researcher) " << endl;
cin>> ch;
switch(ch) {
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;
}
return 0;
}[/CPP]
Совершенно непонятно, а какое отношение к всему этому имеет ваше объявление enum etype?
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 12.09.2011, 22:07   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
не могу понять для чего второй switch ?
Ну один для ввода (т.е. занесения в переменную типа etype, у вас ее, кстати, нету), второй для отображения через переменную. потому что если, например, переменная типа etype у нас объявлена с именем n, присвоим ей значение secretary (n = secretary) и напишем cout << n, то выведет число 1.

Вот, кстати, нашел код. Там правда уже с классом, но функции ввода и вывода почти как тут, может быть пригодится.
http://pastebin.com/uESxzpZc
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 12.09.2011 в 22:10.
Alex11223 вне форума Ответить с цитированием
Старый 19.01.2014, 06:51   #7
Maximum911
Новичок
Джуниор
 
Регистрация: 19.01.2014
Сообщений: 1
Сообщение Старая тема, но все же

Код:
#include <iostream>
using namespace std;

enum etype {laborer, secretary, manager, accountant, executive, researcher};


int main()
{
    char ch;
    etype number;


    cout << "(laborer, secretary, manager, accountant, executive, researcher)"
    <<"\nВведите первую букву должности: ";
    cin>>ch;


//////////////////////////////

    switch (ch)
    {
        case 'l':
            number = laborer;
            break;
        case 's':
            number = secretary;
            break;

        case 'm':
            number = manager;
            break;
        case 'a':
            number = accountant;
            break;

        case 'e':
            number = executive;
            break;

        case 'r':
            number = researcher;
            break;
    }

////////////////////////////

    switch(number)
    {
        case laborer:
           cout << "Полное название должности: laborer;
            break;

        case secretary:
            cout << "Полное название должности: secretary;
            break;
        case manager:
            cout << "Полное название должности: manager";
            break;
        case accountant:
            cout << "Полное название должности: accountant";
            break;
        case executive:
            cout << "Полное название должности: executive";
            break;
        case researcher:
            cout << "Полное название должности: researcher";
            break;
    }

    return 0;
}

Последний раз редактировалось Stilet; 19.01.2014 в 11:15.
Maximum911 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи в С++ Ramix Помощь студентам 11 11.11.2011 23:12
Задачи по С++ TheWanderer Общие вопросы C/C++ 10 06.10.2011 00:42
задачи на С++ Balabar Общие вопросы C/C++ 3 30.03.2011 18:21
4 задачи в системе Mathematica(задачи уже решены) Toni Milano Фриланс 2 08.02.2011 19:28
Задачи в делфи. информационная модель задачи. @leks@ Помощь студентам 2 17.10.2010 19:15