113 / 3 / 0
Регистрация: 03.05.2016
Сообщений: 21
1

Реализовать поиск по заданному полю в массиве объектов пользовательского типа

04.12.2016, 14:08. Показов 695. Ответов 6
Метки нет (Все метки)

Все сделал, в своей задачи, осталось только вот это, помогите.
Вывод на экран информацию о людях, родившихся под знаком зодиака, название которого введено с клавиатуры

Пример
Aleksandrov Blizentsy 21 06 1985
Ivanov Telets 01 05 1977
Telets
Ivanov 01 05 1977
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
#include <iostream>
#include "cstring"
using namespace std;
const int N = 4;
 
//Описание структуры по заданию
struct Znak
{
    static const int SZ = 256;
    char FirstName[SZ];
    char LastName[SZ];
    char Zodiak[SZ];
    int DR[3];
}  A[N]; //Массив структур в восемь элементов
 
         //Заполнение структуры
void fill_by_user(Znak * A, const int ARR_SIZE)
{
    char S[Znak::SZ];
 
    for (int i = 0; i < ARR_SIZE; i++)
    {
        cin >> S;
        cin >> S;
 
        for (int j = 0; j<3; j++)
            cin >> A[i].DR[j];
 
    }
}
 
//Вывод массива структур на экран
void show(const Znak * A, const int ARR_SIZE)
{
    for (int i = 0; i < ARR_SIZE; i++)
    {
        cout << A[i].FirstName << " ";
        cout << A[i].Zodiak << " ";
 
        for (int j = 0; j<3; j++)
            cout << A[i].DR[j] << ".";
        cout << "\n";
    }
    cout << "\n";
}
 
 
template <size_t NN>
void sort_by_date(Znak(&z)[NN], const int ARR_SIZE)
{
    Znak tmp;
    bool is_larger_by_date;
    for (int k = 0; k < ARR_SIZE - 1; k++)
    {
        for (int i = 0, j; i < ARR_SIZE - 1; i++)
        {
            is_larger_by_date = false;
            j = i + 1;
            if (z[i].DR[2] > z[j].DR[2])
                is_larger_by_date = true;
            else if (z[i].DR[2] == z[j].DR[2])
            {
                if (z[i].DR[1] > z[j].DR[1])
                    is_larger_by_date = true;
                else if (z[i].DR[1] == z[j].DR[1])
                {
                    if (z[i].DR[0] > z[j].DR[0])
                        is_larger_by_date = true;
                }
            }
 
            if (is_larger_by_date)
            {
                tmp = z[i];
                z[i] = z[j];
                z[j] = tmp;
            }
        }
    }
}
int main()
{
    Znak obj1[N];
    fill_by_user(obj1, N);
    sort_by_date(obj1, N);
    show(obj1, N);
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2016, 14:08
Ответы с готовыми решениями:

Реализовать поиск в массиве объектов пользовательского типа по заданному полю
Создать типизированный файл, элементами которого являются сведения об автомобилях: марка,...

Реализовать поиск по заданному полю в массиве объектов пользовательского типа
ОСНОВЫ ОБРАБОТКИ СТРУКТУР С клавиатуры ввести последовательность записей, содержащих информацию...

Реализовать поиск по заданному полю в массиве объектов пользовательского типа PRICE
Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий...

Реализовать поиск в массиве объектов пользовательского типа по заданному полю (структуры)
1) В столовой предлагается N комплексных обедов, состоящих из Q блюд. Известна стоимость и...

6
Модератор
Эксперт CЭксперт С++
5118 / 2301 / 335
Регистрация: 20.02.2013
Сообщений: 5,675
Записей в блоге: 19
04.12.2016, 14:13 2
AlexGor98, таких тем миллион на форуме. Вот подобное буквально вчера делал.
0
113 / 3 / 0
Регистрация: 03.05.2016
Сообщений: 21
04.12.2016, 23:39  [ТС] 3
Я не понимаю на примере, который ты мне скинул, код как-то замудрен.

Добавлено через 9 часов 22 минуты
ап, помогите, кто может
0
113 / 3 / 0
Регистрация: 03.05.2016
Сообщений: 21
05.12.2016, 14:28  [ТС] 4
Спасибо, вчера уже додумался и сдал данную работу.
0
Модератор
Эксперт CЭксперт С++
5118 / 2301 / 335
Регистрация: 20.02.2013
Сообщений: 5,675
Записей в блоге: 19
05.12.2016, 18:03 5
AlexGor98, сделай функцию типа такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void find_and_show_entry( Znak arr[], const int arr_size, char* criteria )
{
    bool isnt_found = true;
    for ( int i = 0; i < arr_size; ++i )
    {
        if ( strcmp( arr[i].Zodiak, criteria ) )
        {
            std::cout
                << arr[i].FirstName << "\n"
                << arr[i].LastName << "\n"
                << arr[i].Zodiak << "\n"
                << arr[i].DR << "\n\n";
            isnt_found = false;
        }
    }
    if ( isnt_found )
        std::cout << "\nNot found.\n\n";
 
}
0
Неэпический
17807 / 10579 / 2042
Регистрация: 27.09.2012
Сообщений: 26,609
Записей в блоге: 1
05.12.2016, 19:13 6
gru74ik, const char* criteria для очистки совести )))
1
Модератор
Эксперт CЭксперт С++
5118 / 2301 / 335
Регистрация: 20.02.2013
Сообщений: 5,675
Записей в блоге: 19
05.12.2016, 19:14 7
Croessmah, ага, точно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2016, 19:14
Помогаю со студенческими работами здесь

Реализовать поиск по заданному полю в массиве объектов пользовательского типа (структуры)
Добрый вечер! Помогите решить данную задачу, сколько ни пытался, ни в инете, ни сам не могу...

Реализовать поиск по заданному полю в массиве объектов пользовательского типа (структура Student)
Описать переменную студент, содержащию имя, фамилию, отчество, название учебного заведения и...

Реализовать поиск и сортировку по заданному полю в массиве объектов пользовательского типа (структура Train)
Описать структуру с именем TRAIN, содержащую следующие поля: NAZV - название пункта назначения,...

Реализовать поиск по заданному полю в массиве объектов пользовательского типа ("Справочная автовокзала")
В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его ...


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

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

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