0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 2
1

Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация")

23.12.2015, 02:06. Показов 2966. Ответов 2
Метки нет (Все метки)

Вывести из структуры информацию о человеке, чья фамилия введена с клавиатуры

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
#include <iostream>
#include <locale>
#include <windows.h>
#include <cstring>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    const int f = 3;
    char namel;
    int i, j;
     
    struct NOTE
    {
        char birthday[40];
        char lname[50];
        char name[50];
        char telephone[20];
    };
     
    NOTE *s = new NOTE[f];
    for(int i = 0; i < f; i++)
    {
        cout << "Введите фамилию: ";
        cin >> s[i].lname;
        cout << "Введите имя: ";
        cin >> s[i].name;
        cout << "Введите номер телефона: ";
        cin >> s[i].telephone;
        cout << "Введите дату рождения(дд.мм.гг): ";
        cin >> s[i].birthday;
    }
     
    for(i = 0; i < f; i++)
    {
        cout << s[i].lname << endl;
        cout << s[i].name << endl;
        cout << s[i].telephone << endl;
        cout << s[i].birthday << endl;
    }
     
    cout << "Введите фамилию для поиска информации о человеке: ";
    //здесь должен быть код
     
    system("pause");
    return 0;
}
Миниатюры
Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация")  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2015, 02:06
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата"
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в...

В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию
в массиве структур студент с полями &quot;ИМЯ&quot; &quot;ВОЗРАСТ&quot; &quot;УСПЕВАЕМОСТЬ&quot; выполнить сортировку по...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес"
Здравствуйте. Проходим тему Структуры, не могу понять, как определить количество, само задание: ...

2
Эксперт CЭксперт С++
5087 / 2272 / 332
Регистрация: 20.02.2013
Сообщений: 5,598
Записей в блоге: 19
26.12.2015, 11:02 2
VertButterfly, вот:
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
#include <iostream>
#include <string>
#include <vector>
 
struct Note
{
    std::string m_birthdate;
    std::string m_lastname;
    std::string m_firstname;
    std::string m_phonenumber;
 
    friend std::ostream & operator<<(std::ostream & os, const Note & n)
    {
        os << n.m_lastname    << "\n"
           << n.m_firstname   << "\n"
           << n.m_phonenumber << "\n"
           << n.m_birthdate   << "\n\n";
 
        return os;
    }
};
 
const Note * search(const std::string & lastname, const std::vector<Note> & note);
 
int main()
{
    const int ARR_SIZE = 3;
    std::vector<Note> note;
    Note temp;
    for(int i = 0; i < ARR_SIZE; i++)
    {
        std::cout << "Please enter lastname: ";
        getline(std::cin, temp.m_lastname);
 
        std::cout << "Please enter firstname: ";
        getline(std::cin, temp.m_firstname);
 
        std::cout << "Please enter phone number: ";
        getline(std::cin, temp.m_phonenumber);
 
        std::cout << "Please enter birthdate: ";
        getline(std::cin, temp.m_birthdate);
 
        note.push_back(temp);
        std::cout << "\n";
    }
 
    for(int i = 0; i < ARR_SIZE; i++)
        std::cout << note[i];
 
    std::cout << "\nPlease enter lastname of person you searching: ";
    std::string lname;
    getline(std::cin, lname);
 
    const Note * result = search(lname, note);
    if (result != nullptr)
        std::cout << "\nMatch found. Results of the search:\n" << *result;
    else
        std::cout << "\nMatch not found.";
 
    return 0;
}
 
const Note * search(const std::string & lastname, const std::vector<Note> & note)
{
    const Note * pointer_to_note = nullptr;
    size_t vec_size = note.size();
    for(size_t i = 0; i < vec_size; i++)
        if (lastname == note[i].m_lastname)
        {
            pointer_to_note = &note[i];
            break;
        }
 
    return pointer_to_note;
}
Примечание: не забудьте включить в своём компиляторе поддержку стандарта C++11, иначе используйте вместо nullptr макрос NULL или число 0.
0
338 / 67 / 37
Регистрация: 22.12.2010
Сообщений: 138
26.12.2015, 11:24 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
#include <iostream>
#include <locale>
#include <windows.h>
#include <cstring>
 
using namespace std;
 
struct NOTE {
    char birthday[40];
    char lname[50];
    char name[50];
    char telephone[20];
};
 
int main() {
    setlocale(0, "");
    const int f = 3;
    int i, j;   
    NOTE *s = new NOTE[f];
    for(int i = 0; i < f; i++) {
        cout << "Введите фамилию: ";
        cin >> s[i].lname;
        cout << "Введите имя: ";
        cin >> s[i].name;
        cout << "Введите номер телефона: ";
        cin >> s[i].telephone;
        cout << "Введите дату рождения(дд.мм.гг): ";
        cin >> s[i].birthday;
        cout << endl;
    }
    char found[50];
    cout << "Введите фамилию для поиска информации о человеке: " << endl;
    cin >> found;
    for (i = 0; i < f; i++) {
        if(strcmp(found,s[i].lname) == 0) {
            cout << "Фамилия: " << s[i].lname << endl;
            cout << "Имя: " << s[i].name << endl;
            cout << "Телефон: " << s[i].telephone << endl;
            cout << "Дата рождения: " << s[i].birthday << endl;
        }
    }
    system("pause");
    return 0;
}
Миниатюры
Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация")  
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2015, 11:24
Помогаю со студенческими работами здесь

Реализовать функцию поиска по заданному полю в массиве структур "Info", содержащих информацию о жителях города
1) Фамилия+имя / разделенные пробелами на одной строчке 2) Город; 3) Адрес...

Написать функцию поиска человека по заданному полю структуры "Знак Зодиака" (найти и исправить ошибки в коде)
Здравствуйте! Не могу правильно вывести в программе дату рождения. Надо сделать чтобы выводил в...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru