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

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

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

Обработка массива структур - C++

04.12.2012, 21:01. Просмотров 570. Ответов 11
Метки нет (Все метки)

Всем привет. Помогите найти ошибку. Программа должна вывесть имя младшего ребенка если отца зовоут "ivan"
Младший ребенок находится тока по году рождения.
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include <windows.h>
 
 
using namespace std;
 
struct Data         
    {
        unsigned day;       
        unsigned month;     
        unsigned year;
    };
 
struct T_human
    {
        char fio[40];
        Data d_birth;
    };
 
struct family       
    {
    T_human  pop ;
    T_human  mom ;
    T_human  son [3];
    };
T_human vvod_struc(int i);
void wr_struc (T_human a);
 
int main(array<System::String ^> ^args)
{
    setlocale(LC_ALL, "russian");
 
           T_human son [3];
    T_human pop [1];
    T_human mom [1];
 
for(int i = 0; i < 1; i++)       // отец          
{                                              
      pop[i]=vvod_struc(i);    
}
 
for(int i = 0; i < 1; i++)     // Мать
{
    mom[i]=vvod_struc(i);    
}
                                        
for(int i = 0; i < 3; i++)  // дети
{   
        son[i]=vvod_struc(i);    
};
 
    cout << endl;
    cout << "выходная таблица" <<endl; 
    cout << "!фио род дат рож !    фио   детей       !  дата рождения  ! \n";
    
    int i_min = 0;
    unsigned min_year = 0;
   
 
  for(int i = 0; i < 1; i++)  // отец
{
    wr_struc(pop[i]);   
}
 for(int i = 0; i < 1; i++)       //мать 
{
    wr_struc(mom[i]);   
}
 for(int i = 0; i < 3; i++)      // дети нахождение младшего по году 
 { 
        wr_struc(son[i]);   
      if (son[i].d_birth.year > min_year) 
    {    
       min_year=son[i].d_birth.year;  
       
       i_min=i;
            }
}
        
     for(int i = 0; i < 1; i++)
 {
      wr_struc(pop[i]); 
      if (pop[i].fio=="ivan")
      {
        printf("Младший ребенок %20s", son [i_min].fio);
      }
 
      else 
      {
          cout << "нет такого" << endl;
      }
 }
        _getch();
        return 0;
} 
 
T_human vvod_struc(int i)
{
    T_human a; 
    char c;
    cout << endl << " Информация о семье \n";
    cout << " ФИО ";
    cin.getline(a.fio,40);
    cout << endl << "дата рождения: \n";
    cout <<" день (1-31) ";
    cin >> a.d_birth.day;
    cin.get(c);
    cout << " месяц (1-12)";
    cin >> a.d_birth.month;
    cin.get(c);
    cout << " год ";
    cin >> a.d_birth.year;
    cin.get(c);
    return a;
};
void wr_struc (T_human a)
{
    printf( "      %20s ! %2d.%2d.%4d\n",a.fio,a.d_birth.day,a.d_birth.month,a.d_birth.year);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2012, 21:01     Обработка массива структур
Посмотрите здесь:

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

Обработка данных в виде массива структур средствами языка С++ - C++
Нужно определить минимальный год издания. Как это сделать? В читаемом файле вот это: Голдинг ПовелительМух 1954 Оруэлл ...

Обработка структур с++ - C++
Помогите мне, пожалуйста. Мне нужно разработать программу обработки структур. В программе использовать структуру, содержащую поля с...

Обработка структур AER0FL0T - C++
Описать структуру с именем AER0FL0T, содержащую следующие поля: • название пункта назначения рейса; • номер рейса; • тип самолета. ...

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

Обработка линейного связного списка структур - C++
Доброго времени суток) Народ,помогите пожалуйста разобраться с такой задачей:-|: В сведениях об игрушках указывается название...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
04.12.2012, 21:13     Обработка массива структур #2
А зачем вы передаёте в фун vvod_stuc, int i? Вроде как это и не надо. просто вызывайте фун.
74 строка. Вы присваиваете наименьшему году рождения если у вас дата рождения больше(знак сравнения поменяйте на противоположный), да и вы смотрите только год рождения, а если допустим они совпадают, надо еще смотреть месяц и если и они равны то день.
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
04.12.2012, 21:37  [ТС]     Обработка массива структур #3
Спасибо за подсказку. Мне бы сейчас сделать просто с годом даже если они совпадают, а вот цикл сравниния введеного имя отца с заданным работает как то странно, он просто записывает имя отца и дату рождения после вывода сыновей, а должен вывести имя мадшего ребенка.
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
04.12.2012, 22:07     Обработка массива структур #4
84 строка. Выводишь имя отца, вот и выводит имя отца. И что в printf, после %, там просто s должно стоять, а лучше просто puts() использовать, получше со строками будет.
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
04.12.2012, 22:26  [ТС]     Обработка массива структур #5
А как тогда будет выглядить данный цикл, а то не могу сообразить =(
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
04.12.2012, 23:30     Обработка массива структур #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
for(int i = 0; i < 3; i++)      // дети нахождение младшего по году 
 { 
        wr_struc(son[i]);   
      if (son[i].d_birth.year < min_year) 
    {    
       min_year=son[i].d_birth.year;  
       
       i_min=i;
            }
}
        
     for(int i = 0; i < 1; i++)
 {
      wr_struc(pop[i]); 
      if (strcmp(pop[i].fio,"ivan")==0)
      {
        puts(son[i_min].fio);
      }
 
      else 
      {
          cout << "нет такого" << endl;
      }
 }
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
04.12.2012, 23:42  [ТС]     Обработка массива структур #7
Большое спасибо, все работает =)
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
04.12.2012, 23:43     Обработка массива структур #8
Пожалуйста.
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
10.12.2012, 21:58  [ТС]     Обработка массива структур #9
А вот еше вопрос по ней, Как сделать чтобы массив записей к примеру состоял из трех семей , и в этих семьях искалось имя нужного отца, и выводилось имя младшего сына нужного отца?
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
10.12.2012, 22:31     Обработка массива структур #10
Ну вы же создали структуру family. Вот создавай массив этих объектов. У каждого объекта будут поля мама, папа, дети. Ищите точно так же как вы делали до этого. Только вы делали это для одного объекта, а теперь для множества объектов.
domovenok
0 / 0 / 0
Регистрация: 13.10.2012
Сообщений: 87
10.12.2012, 23:01  [ТС]     Обработка массива структур #11
Значит для начала нужно записать это?

C++
1
2
3
    family son [3];
     family pop [1];
     family mom [1]
И для количества семей нужно заводить отдельную константу и писать еше один цикл перед вводом общих структур для отца матери и дитей?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2012, 20:12     Обработка массива структур
Еще ссылки по теме:

Обработка массивов, строк и структур в функциях - C++
Здраствуйте ребята не могу найти теорию на такую тему : Обработка массивов, строк и структур в функциях. Перешерстила кучу сайтов не чего,...

Обработка массивов структур с использованием контейнеров - C++
Вариант 13 Написать программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах включают: □ номер УДК; ...

Формирование, сортировка и обработка динамических структур данных. - C++
Требуется решить задачу формирования, сортировки и обработки динамических структур данных. Требуется создать динамический массив...

Обработка данных железнодорожного расписания. Массив структур - C++
Ребят, подскажите, как правильно ввести направление поезда, почему-то после trains.direction = ругается на скобку и просит выражение....


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

Или воспользуйтесь поиском по форуму:
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
13.12.2012, 20:12     Обработка массива структур #12
Пфффф. Что-то много несвязанных слов для меня. Проще. Создаёте массив типа family. Он уже содержит и маму и папу и детей. Это поля у данной структуры. Затем просто заполняете массив фамили ну типо у вас есть n;family a[n]. Ну и просто заполняете данный массив. Надеюсь обращаться к полям структуры вы умеете)
Yandex
Объявления
13.12.2012, 20:12     Обработка массива структур
Ответ Создать тему
Опции темы

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