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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ultragr
0 / 0 / 0
Регистрация: 05.07.2014
Сообщений: 7
#1

Определить, работают ли в фирме люди с одной из заданных фамилий - C++

05.07.2014, 22:26. Просмотров 612. Ответов 7
Метки нет (Все метки)

Известны фамилии всех 30 сотрудников фирмы и их адреса.
Определить, работают ли в фирме люди с одной из фамилий: Кузин,
Куравлев, Кудин, Кульков или Кубиков. В случае положительного ответа
напечатать их адреса.

Вот такую вот задачку задали в универе.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2014, 22:26     Определить, работают ли в фирме люди с одной из заданных фамилий
Посмотрите здесь:

Определить, какую заработную плату получит на фирме работник за выполненную работу, если ему начислено S, а налог составляет 20%. - C++
Использование функций возвращающих одно значение. Определить, какую заработную плату получит на фирме работник за выполненную работу,...

Определить, в какой фирме у "пятого самого высокооплачиваемого" зарплата больше - C++
2)В каждой из двух фирм работают по 15 человек. Известны зарплаты каждого сотрудника каждой фирмы. Определить, в какой фирме у "пятого...

Вычисление значения одной из заданных функций в заданной точке - C++
Всем привет! Нужно написать программку на вычисление значения одной из заданных функций в точке, но незнаю с чего начать и чем закончить,...

Найти минимальный радиус шара, который будет охватывать все заданные точки(центр окружности лежит на одной из заданных точек) - C++
есть программа, проблема в передаче массива в функцию a #include "stdio.h" #include "conio.h" #include "math.h" #include...

Дан массив данных о работающих в фирме - C++
Дан массив данных о работающих в фирме: фамилия, имя, отчество, адрес ( улица, дом, квартира) и дата поступления на работу (месяц, год). ...

Определить суммы заданных элементов массива. - C++
Кто поможет, буду благодарен Нужно решение 12. Задан массив D. Определить следующие суммы: D + D + D; D +D +D; D + D + D.

Определить, являются ли два заданных числа дружными - C++
Написать программу, которая определит, являются ли два заданных числа дружными. Будем называть два числа дружными, если они состоят из...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
05.07.2014, 22:57     Определить, работают ли в фирме люди с одной из заданных фамилий #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
const int H = 30, W = 2;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    std::string data[H][W] = {{"Ïîïîâ",    "Г*äðåñ 1"},
                              {"ГЉГіГ°Г*âëåâ", "Г*äðåñ 2"},
                              {"ГЉГіГЄГіГёГЄГЁГ*", "Г*äðåñ 3"},
                              {"ÊóçèГ*",    "Г*äðåñ 4"},
                              {"ÆóðГ*âë¸â", "Г*äðåñ 5"},
                              {"ÊóäèГ*",    "Г*äðåñ 6"},
                              {"Ïåòðîâ",   "Г*äðåñ 7"}}; // Г’Г*ГЄ äî 30
    for(int i = 0; i < H; i++)
        if(data[i][0] == "ÊóçèГ*"   || data[i][0] == "ГЉГіГ°Г*âëåâ" || data[i][0] == "ÊóäèГ*" ||
           data[i][0] == "Êóëüêîâ" || data[i][0] == "Êóáèêîâ")
           std::cout << data[i][1] << std::endl;
 
    return 0;
}
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
05.07.2014, 23:52     Определить, работают ли в фирме люди с одной из заданных фамилий #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
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
/// [url]http://www.cyberforum.ru/cpp-beginners/thread1223141.html[/url]
/*
Известны фамилии всех 30 сотрудников фирмы и их адреса.
Определить, работают ли в фирме люди с одной из фамилий: Кузин,
Куравлев, Кудин, Кульков или Кубиков. В случае положительного ответа
напечатать их адреса.
*/
 
// Подключаем заголовочные файлы:
#include <iostream>     // для ввода-вывода
#include <windows.h>    // для отображения русского языка
#include <string>       // для строк класса string
 
using namespace std;    // подключаем стандартное пространство имён
 
struct employee         // объявление структуры работник
{
    string givenname;   // имя
    string surname;     // фамилия
    string address;     // адрес
};
 
employee person[30];    // создаём массив person из 30 структур типа employee
 
int main()  // функция main согласно стандарту C++ должна быть типа int
{
    SetConsoleCP(1251);       // для отображения в консоли русского языка
    SetConsoleOutputCP(1251); // для отображения в консоли русского языка
 
 
//===== Ввод с клавиатуры данных в массив структур типа employee =====
    int qty =30;
    for (int i=0; i<qty; i++)
    {
        cout << "\nВведите имя работника: ";
        getline (cin, person[i].givenname);  // используем функцию getline
                                             // для чтения строк с пробелами
 
        cin.clear();    // очищаем поток от лишних символов новой строки,
                        // попадающих в поток с нажатием пользователем
                        // клавиши Enter
 
        cout << "Введите фамилию работника: ";
        getline (cin, person[i].surname);
        cin.clear();
 
        cout << "Введите адрес работника: ";
        getline (cin, person[i].address);
        cin.clear();
    }
//=========================================================================
 
 
//==================== Поиск по заданному параметру  ======================
    cout << "Будет осуществлён поиск среди персонала компании работников "
            "с фамилиями Кузин, Куравлев, Кудин, Кульков, Кубиков." << endl;
    cout << endl;
    
    for (int i=0; i<qty; i++)
    {
        // поиск и вывод строк, соответствующих параметру поиска:
        if (person[i].surname == "Кузин" || person[i].surname == "Куравлев" ||
            person[i].surname == "Кудин" || person[i].surname == "Кульков" ||
            person[i].surname == "Кубиков")
        {   // если строки совпали, то вывести данные о диске:
            cout << endl;
            cout << person[i].surname << "\t"
                 << person[i].address << endl;
            cout << endl;
        }
    }
    cout << endl;
//=========================================================================
 
    system("pause");    // для ожидания реакции пользователя
 
    return 0;           // успешное завершение программы
}
Ultragr
0 / 0 / 0
Регистрация: 05.07.2014
Сообщений: 7
05.07.2014, 23:54  [ТС]     Определить, работают ли в фирме люди с одной из заданных фамилий #4
Спасибо
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
06.07.2014, 00:01     Определить, работают ли в фирме люди с одной из заданных фамилий #5
Так чуть-чуть красивее:

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
/// [url]http://www.cyberforum.ru/cpp-beginners/thread1223141.html[/url]
/*
Известны фамилии всех 30 сотрудников фирмы и их адреса.
Определить, работают ли в фирме люди с одной из фамилий: Кузин,
Куравлев, Кудин, Кульков или Кубиков. В случае положительного ответа
напечатать их адреса.
*/
 
// Подключаем заголовочные файлы:
#include <iostream>     // для ввода-вывода
#include <windows.h>    // для отображения русского языка
#include <string>       // для строк класса string
 
using namespace std;    // подключаем стандартное пространство имён
 
struct employee         // объявление структуры работник
{
    string givenname;   // имя
    string surname;     // фамилия
    string address;     // адрес
};
 
employee person[30];    // создаём массив person из 30 структур типа employee
 
int main()  // функция main согласно стандарту C++ должна быть типа int
{
    SetConsoleCP(1251);       // для отображения в консоли русского языка
    SetConsoleOutputCP(1251); // для отображения в консоли русского языка
 
 
//===== Ввод с клавиатуры данных в массив структур типа employee =====
    int qty =30;
    for (int i=0; i<qty; i++)
    {
        cout << "\nВведите имя работника: ";
        getline (cin, person[i].givenname);  // используем функцию getline
                                             // для чтения строк с пробелами
 
        cin.clear();    // очищаем поток от лишних символов новой строки,
                        // попадающих в поток с нажатием пользователем
                        // клавиши Enter
 
        cout << "Введите фамилию работника: ";
        getline (cin, person[i].surname);
        cin.clear();
 
        cout << "Введите адрес работника: ";
        getline (cin, person[i].address);
        cin.clear();
    }
//=========================================================================
 
 
//==================== Поиск по заданному параметру  ======================
    cout << endl;
    cout << "Будет осуществлён поиск среди персонала компании работников "
            "с фамилиями Кузин, Куравлев, Кудин, Кульков, Кубиков." << endl;
    cout << endl;
    
    //--------- Специальный блок для красоты ---------
 
    // С небольшой задержкой будут выведены 20 точек
    // одна за другой, как будто программа думает:
 
    cout << endl;
    for (int i=0; i<20; i++)
    {
    Sleep(600);
    cout << "*";
    }
    cout << endl;
    //------------------------------------------------
        
    for (int i=0; i<qty; i++)
    {
        // поиск и вывод строк, соответствующих параметру поиска:
        if (person[i].surname == "Кузин" || person[i].surname == "Куравлев" ||
            person[i].surname == "Кудин" || person[i].surname == "Кульков" ||
            person[i].surname == "Кубиков")
        {   // если строки совпали, то вывести данные о диске:
            cout << endl;
            cout << person[i].surname << "\t"
                 << person[i].address << endl;
            cout << endl;
        }
    }
    cout << endl;
//=========================================================================
 
    system("pause");    // для ожидания реакции пользователя
 
    return 0;           // успешное завершение программы
}
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
06.07.2014, 00:29     Определить, работают ли в фирме люди с одной из заданных фамилий #6
Можно использовать не структуры, а классы:
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
/// [url]http://www.cyberforum.ru/cpp-beginners/thread1223141.html[/url]
/*
Известны фамилии всех 30 сотрудников фирмы и их адреса.
Определить, работают ли в фирме люди с одной из фамилий: Кузин,
Куравлев, Кудин, Кульков или Кубиков. В случае положительного ответа
напечатать их адреса.
*/
 
// Подключаем заголовочные файлы:
#include <iostream>     // для ввода-вывода
#include <windows.h>    // для отображения русского языка
#include <string>       // для строк класса string
 
using namespace std;    // подключаем стандартное пространство имён
 
class employee         // объявление класса работник
{
public:
    string givenname;   // имя
    string surname;     // фамилия
    string address;     // адрес
};
 
employee person[30];    // создаём массив person из 30 объектов класса employee
 
int main()  // функция main согласно стандарту C++ должна быть типа int
{
    SetConsoleCP(1251);       // для отображения в консоли русского языка
    SetConsoleOutputCP(1251); // для отображения в консоли русского языка
 
 
//===== Ввод с клавиатуры данных в массив объектов класса employee =====
    int qty =30;    // количество работников
    for (int i=0; i<qty; i++)
    {
        cout << "\nВведите имя работника: ";
        getline (cin, person[i].givenname);  // используем функцию getline
                                             // для чтения строк с пробелами
 
        cin.clear();    // очищаем поток от лишних символов новой строки,
                        // попадающих в поток с нажатием пользователем
                        // клавиши Enter
 
        cout << "Введите фамилию работника: ";
        getline (cin, person[i].surname);
        cin.clear();
 
        cout << "Введите адрес работника: ";
        getline (cin, person[i].address);
        cin.clear();
    }
//=========================================================================
 
 
//==================== Поиск по заданному параметру  ======================
    cout << endl;
    cout << "Будет осуществлён поиск среди персонала компании работников\n"
            "с фамилиями Кузин, Куравлев, Кудин, Кульков, Кубиков." << endl;
    cout << endl;
 
    //--------- Специальный блок для красоты ---------
 
    // С небольшой задержкой будут выведены 20 точек
    // одна за другой, как будто программа думает:
 
    cout << endl;
    for (int i=0; i<20; i++)
    {
    Sleep(600);
    cout << "*";
    }
    cout << endl;
    //------------------------------------------------
 
    for (int i=0; i<qty; i++)
    {
        // поиск и вывод строк, соответствующих параметру поиска:
        if (person[i].surname == "Кузин" || person[i].surname == "Куравлев" ||
            person[i].surname == "Кудин" || person[i].surname == "Кульков" ||
            person[i].surname == "Кубиков")
        {   // если строки совпали, то вывести данные о работнике:
            cout << endl;
            cout << person[i].givenname << "\t"
                 << person[i].surname << "\t"
                 << person[i].address << endl;
            cout << endl;
        }
    }
    cout << endl;
//=========================================================================
 
    system("pause");    // для ожидания реакции пользователя
 
    return 0;           // успешное завершение программы
}
Ultragr
0 / 0 / 0
Регистрация: 05.07.2014
Сообщений: 7
07.07.2014, 13:18  [ТС]     Определить, работают ли в фирме люди с одной из заданных фамилий #7
Надо было именно структуры, но спасибо что показали еще и такой способ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2014, 13:32     Определить, работают ли в фирме люди с одной из заданных фамилий
Еще ссылки по теме:

Определить максимальное число из пяти заданных чисел - C++
Буду благодарен если поможете решить хоть что нибудь=-O 1.Запишите алгоритм программы, определяющей максимальное число из пяти...

Определить количество заданных букв в символьном массиве - C++
:help: Напишите программу с функцией, аргументами которой передаются символьный массив и отдельный символ. Результатом функцией...

Определить мощность пересечения двух заданных множеств - C++
Здравствуйте, голову сломал, ища ошибку в задаче Задано два множества точек на плоскости. Первое из них задается уравнением...

Определить, являются ли два заданных слова анаграммами - C++
Не требую полного кода. Я просто хочу понять, как ее решить. Просто алгоритм. * Слова, составленные из одних и тех же букв, называются...

Определить количество отрицательных чисел из трех заданных - C++
Условие: Определить колличество отрицательных чисел из трёх заданных. Примечание: при вводе с клавиатуры меньше или больше трёх...


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

Или воспользуйтесь поиском по форуму:
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
07.07.2014, 13:32     Определить, работают ли в фирме люди с одной из заданных фамилий #8
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
struct Person {
        std::string name;
        std::string address;
    };
 
    static const int N = 30;
 
    std::string names[] = { "Куравлев", "Кудин", "Кульков", "Кубиков" };
 
    std::vector<Person> firm(N);
 
    for (int i = 0; i < N; ++i) {
        std::cin >> firm[i].name >> firm[i].address;
    }
 
    for (auto& n : names) {
        auto ptr = std::find_if(firm.begin(), firm.end(), [&](const Person& p) {
            return n == p.name;
        });
 
        if (firm.end() != ptr) {
            std::cout << ptr->address << std::endl;
        }
    }
 
    return 0;
Yandex
Объявления
07.07.2014, 13:32     Определить, работают ли в фирме люди с одной из заданных фамилий
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru