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

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

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

Массивы структур - C++

26.12.2010, 23:42. Просмотров 789. Ответов 5
Метки нет (Все метки)

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

Помогите решить пожалуйста (.

Добавлено через 15 минут
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
#include <iostream>
#include <string.h>
using namespace std;
struct DANNIE{
    char PersKod[100];
    char Familija[100];
    char Ves[100];
}; 
int main()
{
    int count=0;
    int i=0;
    DANNIE *workers= new DANNIE [count];
 
    cout <<" Vvedite Kol-vo rabotnikov : ";
    cin >> count;
 
    for(i=0;i < count;i++) {
        cout << "Vvedite Personaljnij Kod : ";
        cin >> workers[i].PersKod;
        cout << "Vvedite Familiju : ";
        cin >> workers.Familija;
        cout << "Vvedite Ves : ";
        cin >> workers.Ves;
        cout << workers.PersKod <<" "<< workers.Familija <<" "<< workers.Ves << endl << endl;
    }
    
    for(i=0;i < count;i++) {
        cout << workers[i].PersKod; // proverka dannih 
    }
    return 0;
}
Как дальше не знаю (
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 23:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы структур (C++):

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

Массивы структур и массивы строк - C++
Здравствуйте. Возникла проблема с одной работой: Постановка задачи: 1. Сформировать динамический массив из элементов структурного типа....

Массивы структур, массивы векторов - C++
Разработайте тип данных «Вектор в трехмерном пространстве» в виде структуры, поля которой — координаты вектора. Напишите следующие функции:...

Массивы структур и массивы строк - C++
1. Сформировать динамический массив из элементов структурного типа. Структурный тип определен в варианте. 2. Распечатать...

Массивы структур - C++
Люди помогите пожалуйста, не совсем понял как написать программу... Нужно сделать вот эту программу... помогите пожалуйста Поля...

Массивы структур - C++
Помогите с программкой, вообще не понимаю я это((( Дан массив записей, содержащий номера телефонов сотрудников учреждения: фамилия и...

5
haosino
1 / 1 / 0
Регистрация: 09.02.2010
Сообщений: 8
28.12.2010, 02:46 #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
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#include <windows.h>
struct sotrudniki {        
        char name[40]; 
        int perscod; 
        int ves;
        int busy; // занятость ячейки
} A[150];
 
void SortingbyVes (sotrudniki *p) //Сортировка по Весу
{int i,n,x,cn;
printf ("# \t Фамилия: \t Персональный код: \t Вес:\n");
int B[150];
for (x=0; x<150; x++)
    B[x]=-1;
for (i=0; p[i].busy==1; i++)
    {for (n=0, cn=0; p[n].busy==1;n++)
        {if ((p[n].ves)<(p[i].ves)) cn++;}
        if (B[cn]!=-1) {for ( ; B[cn]!=-1; ) cn++;}
        if (B[cn]==-1) B[cn]=i;
        }
for (cn=0; p[B[cn]].busy==1; cn++)
    {printf ("%d \t %s \t %d \t\t\t %d\n", B[cn]+1, p[B[cn]].name, p[B[cn]].perscod, p[B[cn]].ves);
}
getch();}
 
 
 
//Основные функции
void ScanText (sotrudniki *p) //Функция ввода
{int i,z;
printf ("Заполнить таблицу сначала или добавить?\n0-заполнить сначала\n1-добавить\n");
printf("Ваш Выбор: ");
scanf ("%d", &z);
if (z==0) {printf ("Введите имя, персональный код, вес\nВведите 0 в поле имя для окончания заполнения таблицы\n");
for (i=0; i<150; i++)
{
    printf ("#%d\n",i+1);
printf ("Имя:");fflush (stdin); gets(p[i].name);
if (*(p[i].name)=='0') break;
printf ("Персональный код:"); scanf ("%d", &(p[i].perscod));
printf ("Вес:"); scanf ("%d",&(p[i].ves));
p[i].busy=1;}}
if (z==1) {
    for (i=0; p[i].busy==1; )
        i++;
    for (; i<150; i++)
{
    printf ("#%d\n",i+1);
printf ("Имя:");fflush (stdin); gets(p[i].name);
if (*(p[i].name)=='0') break;
printf ("Персональный код:"); scanf ("%d", &(p[i].perscod));
printf ("Вес:"); scanf ("%d",&(p[i].ves));
p[i].busy=1;}}
}
void ReadText (sotrudniki *p) // Функция вывода
{int i;
if (p[0].busy==0) printf ("Список пуст!\n");
if (p[0].busy==1){
printf ("Введите 0 для вывода всего списка , либо введите номер сотрудника:\n");
printf("Ваш Выбор: ");
scanf ("%d", &i);
if (i!=0) {if (p[i].busy==0) i=0;
printf ("#%d\nИмя: %s\nПерсональный код: %d\nВес: %d\n", i, p[i-1].name, p[i-1].perscod, p[i-1].ves);}
if (i==0) {
    printf ("# \t Имя: \t Персональный код: \t Вес:\n");
    for (i=0; i<150; i++)
    {if (p[i].busy==0) break;
        printf ("%d \t %s \t %d \t\t\t %d \n", i+1, p[i].name, p[i].perscod, p[i].ves);
    }}
}
getch();
}
 
 
 
 
// Главная функци
int main ()
{
    const int maxMenu = 4;      //число строк меню
    char *pMenu[maxMenu] =      //меню
    {
        "1. Заполнение таблицы\n",
        "2. Вывести на экран\n",
        "3. Сортировка\n",
        "4. Выход\n"
    };
    int i;
    char    ch;
    BOOL    fContinue = TRUE;       //флаг продолжения основного цикла
 
    SetConsoleCP(1251);         //необходимо для отображения русских букв в консоли
    SetConsoleOutputCP(1251);
    sotrudniki *s;
    s=A;
 
    while (fContinue)               //бесконечный цикл
    {
        for (i=0; i<maxMenu; i++)   //выведем меню
            printf("%s",pMenu[i]);
        
        printf("Ваш Выбор: ");      //приглашение к выбору пункта меню
        do
        { 
            ch = getch();               //вводим символ без отображения
            switch (ch)                 //проанализируем
            {
                case '1':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    ScanText(s);
                    break;
                case '2':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    ReadText (s);
                    break;
                case '3':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    SortingbyVes (s);
                    break;
                case '4':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    fContinue = FALSE;
                    break;
                default:
                    continue;           //все остальное приведет к ожиданию "нужных" символов '1'-'10'
            }
            ch = 0x7f;                  //приведут к выходу из цикла do-while
        } while (0x7f != ch);       //  и выводу меню
    }
    
    return 0;
}

что-то типа
Сделал сортировку по весу, но если не так, то думаю не сложно будет переделать.
1
Skjame
85 / 44 / 8
Регистрация: 20.12.2010
Сообщений: 210
Записей в блоге: 1
Завершенные тесты: 1
28.12.2010, 03:02 #3
haosino, да ну ты что! гораздо компакней это делается)
0
haosino
1 / 1 / 0
Регистрация: 09.02.2010
Сообщений: 8
28.12.2010, 03:16 #4
Ну блин, я только только начал с++ изучать, только основы и знаю, написал как сумел
0
Skjame
85 / 44 / 8
Регистрация: 20.12.2010
Сообщений: 210
Записей в блоге: 1
Завершенные тесты: 1
28.12.2010, 03:19 #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
//---------------------------------------------------------------------------
 
#pragma hdrstop
#include <conio.h>
#include <iostream.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
struct strc{
          char kod[50];
          char fio[50];
          double ves;
          };
int n,i,maxi,max;
strc *mcl;
cout<<"vvedite kol-vo ludey"<<endl;
cin>>n;
mcl=new strc[n];
for(i=0;i<n;i++)
 {
 cout<<"------------------------------------------------------------------------"<<endl;
 cout<<"kod:"<<endl;
 cin>>mcl[i].kod;
 cout<<"fio"<<endl;
 cin>>mcl[i].fio;
 cout<<"ves"<<endl;
 cin>>mcl[i].ves;
 cout << mcl[i].kod <<" "<< mcl[i].fio <<" "<< mcl[i].ves<<endl << endl;
 }
max=-1;
for(i=0;i<n;i++)
 {
  if (mcl[i].ves>max) {max=mcl[i].ves; maxi=i;}
 }
cout<<"========================================================================="<<endl;
cout<<"rezultat"<<endl;
cout<<"samiy t9jeliy 4elovek: "<<endl;
cout<<mcl[maxi].kod<<" "<<mcl[maxi].fio<<" "<<mcl[maxi].ves<<endl;
getch();
return 0;
}
//---------------------------------------------------------------------------
Добавлено через 2 минуты
ну вот как-то так, да я сам билдер только начал изучать, но так извращаться как ты в своём решении, я не доконца вникал, но там и кейс и сортировка, перебор одним словом
1
hotborsh
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 18
28.12.2010, 13:17  [ТС] #6
Ооо, спасибо большое, реально спасли ).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2010, 13:17
Привет! Вот еще темы с ответами:

Массивы структур - C++
Ввести координаты начала и конца N отрезков на плоскости.Написать функцию определяющую пересекаются два отрезка или нет.используя эту...

Массивы структур - C++
Задание № 5. Тема: Функции. Динамические массивы и структуры Сформировать одномерный динамический массив порядка N, элементы которого...

Массивы структур - C++
Дан массив структур о магазинах: название, кол-во работников, профиль, а также 6 полей - прыбыль за 6 мес. В другой массив переписать...

Массивы из структур - C++
Здравствуйте форумчане. Помогите почему не работает.#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; using namespace std;...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
28.12.2010, 13:17
Ответ Создать тему
Опции темы

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