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

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

14.05.2017, 12:56. Показов 1360. Ответов 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
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
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
 
int main()
{
 
    setlocale(LC_ALL, "rus");
    char namefile[32]; 
    cout <<"Введите имя файла:"<<endl;
    cin >> namefile;
 
     FILE *f;//указатель на файл
    f=fopen(namefile,"w");//открываем файл для записи
 
    cout <<"Введите количество записей:"<<endl;
    int n=0;
    cin >> n;
    
    struct student
    {
       
    char fam[20];//фамилия
    char name[20];//имя
    char otchestvo[20];//отчество
    char pol[20];//пол
    int vozrast;//возраст
    int kurs;//курс
    };
     student d[100];
     //Запись файла
    for(int i=0; i<n; i++)
    {
        cout <<"Введите фамилию"<<endl;
        cin >>d[i].fam;
        fprintf(f,"\n%s",d[i].fam) ;//Запись в файл фамилии
 
        cout <<"Введите имя"<<endl;
        cin >>d[i].name;
       fprintf(f,"\n%s",d[i].name);//Запись в файл имени      
       
       cout <<"Введите отчество"<<endl;
        cin >>d[i].otchestvo;
        fprintf(f,"\n%s",d[i].otchestvo) ;//Запись в файл отчества
        
        cout <<"Введите пол"<<endl;
        cin >>d[i].pol;
       fprintf(f,"\n%s",d[i].pol) ;//Запись в файл пола
        
       cout <<"Введите возраст"<<endl; 
        cin >> d[i].vozrast;
        fprintf(f,"\n%d",d[i].vozrast) ;//Запись в файл возраста
       
       cout <<"Введите курс"<<endl;
        cin >>d[i].kurs;
       fprintf(f,"\n%d",d[i].kurs) ;//Запись в файл курса
        
        cout <<endl;
 
    }
        fclose(f);//закрытие файла
 
    for(int i=0; i<n; i++)
    {
        cout << "Фамилия: " << d[i].fam <<endl;
        cout << "Имя: " << d[i].name  <<endl;
        cout << "Отчество: " << d[i].otchestvo  <<endl;
        cout << "Пол: " << d[i].pol <<endl;
        cout << "Возраст: " << d[i].vozrast <<endl;
        cout << "Курс: " << d[i].kurs<<endl;
    }
    
 int maxcount=1, nn(-1);
    //перебираем все элементы массива
    for (int i = 0; i < n; i++)
    {
        int count=0;
        //перебираем все элементы от i до конца
        for (int j = i; j < n; j++)         
              //если элемент i совпадает с одним из последующих , то увеличиваем счетчик
              if (d[i].name == d[j].name)
                  count++;
             //если текущий счетчик больше максимального, то 
              if (count>maxcount) 
                  { maxcount=count;//значению макс.значения присваиваем текущее
                    nn=i;//переменной присваиваем индекс этого элемента              
                  }
                               
    }
У меня два вопроса:
1)Как найти самое распространенное имя среди все я написал (без учета пола) а, как сделать учитывая пол.
2)Если несколько имен имен встречаются равное кол-во раз, у меня выводится первое имя.Как это исправить?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2017, 12:56
Ответы с готовыми решениями:

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

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

Поиск в массиве объектов типа "Student" по заданному полю (файловый ввод/вывод)
Помогите написать программу 1. Файл содержит итоги контрольного срока, каждая запись которого...

Поиск в массиве объектов типа "Student" по заданному полю (файловый ввод/вывод)
Здравствуйте. Стоит такая задача: Создать структуру «студент» со следующими данными: фамилия, имя,...

2
669 / 215 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
14.05.2017, 13:00 2
Цитата Сообщение от diesel77 Посмотреть сообщение
1)Как найти самое распространенное имя среди все я написал (без учета пола) а, как сделать учитывая пол.
int count_w, int count_m;
0
0 / 0 / 1
Регистрация: 15.11.2016
Сообщений: 68
14.05.2017, 15:58  [ТС] 3
Цитата Сообщение от dailydose Посмотреть сообщение
int count_w, int count_m;
А как это в программе использовать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2017, 15:58

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

Поиск в массиве объектов типа Student по заданному полю (массивы, структуры)
Добрый день! Нужно организовать : Функцию поиска студента по фамилии и поиск его средней...

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

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


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

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

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