Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/41: Рейтинг темы: голосов - 41, средняя оценка - 4.90
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352

Описать структуру с именем STUDENT

27.04.2012, 22:44. Показов 8224. Ответов 38

Студворк — интернет-сервис помощи студентам
Всем привет) Не могу решить задачу.
Описать структуру с именем STUDENT, содержащую следующие поля:
• фамилия и инициалы;
• номер группы;
• успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT;
• упорядочить записи по возрастанию номера группы;
• вывод на дисплей фамилий и номеров групп для всех студентов, включённых в массив, если средний бал студента больше 4.0; если таких студентов нет, то вывести соответствующее сообщение.
Я не могу перевести массив успеваемости в Int, чтобы посчитать средний балл.
Вот что у меня есть.
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
// andrei3.cpp : Defines the entry point for the console application.
//
// 2kontrol.cpp : Defines the entry point for the console application.
//
// 2 контрольная 2 семестра.
#include "stdafx.h"
#include <fstream>
#include <string>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
const int l_name = 15, l_ysp=5;
struct Student
{
        int num;
        char name[l_name];
        char ysp[l_ysp];
        int summ[5];
};
void selection_sort(Student *tr, const int sz);
 
int _tmain(int argc, _TCHAR* argv[])
 
{
    setlocale (LC_ALL, "Rus");
   // const int l_name = 9;  
    const int l_Student=100;
    Student dbase[l_Student];    
    int sr;
    //int summ=0;
    
    fstream infile;
    infile.open("dbase.txt", ios::in);
    if (!infile.is_open())
    {
        cout << "Error opening file\n";
        return 0;
    }
 
    int cnt = 0;
    while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
    //selection_sort(dbase, cnt);       
    
    
 
    for (int i = 0; i < cnt; i++)
    {
        for (int k=0; k<l_ysp; k++)
        {
    //      dbase[k].summ=dbase[k].summ+dbase[k].ysp;
            
        }
    //  cout <<dbase[0].summ<<endl;        
    }
    
/*
    while (true) 
    {
        cout << "Введите средний балл студента или 0:"; cin >>sr;
        if (sr==0) return 0;
        bool not_found = true;
        for (int i = 0; i < cnt; i++)
        {
            if ( dbase[i].ysp>4)
            {               
                    cout << dbase[i].name <<' '<< dbase[i].num << ' ' << dbase[i].ysp << endl;
                    not_found = false;
                
            }
        }
 
    
    }
    */
    return 0;
}
 
/*
void selection_sort(Student *tr,const int sz)
{
    for (int i = 0; i < sz; ++i)
    {
        int minimum = i;
        for (int j = i + 1; j < sz; ++j)
        {
            if (strcmp(tr[j].num,tr[minimum].num) < 0)
            {
                Student temp = tr[minimum];
                tr[minimum] = tr[j];
                tr[j] = temp;
            }
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2012, 22:44
Ответы с готовыми решениями:

Описать структуру с именем STUDENT
1. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (массив из пяти...

Описать структуру с именем STUDENT
1. Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы; • GROUP- номер группы; • SES- успеваемость...

Описать структуру с именем STUDENT
Описать структуру с именем STUDENT, содержащую поля: - фамилия и инициалы; - номер группы; - успеваемость (массив из пяти элементов);...

38
54 / 54 / 10
Регистрация: 26.09.2011
Сообщений: 186
27.04.2012, 23:36
Что я увидел...
Получается, что ты создаешь массив структур на 100 элементов
C++
1
Student dbase[l_Student];
Здесь по всей видимости идет считывание и заполнение "базы" значениями из файла, одновременно подсчитывается число записей.
C++
1
2
3
4
5
6
7
8
int cnt = 0;
    while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
Вот здесь, наверное, надо подсчитывать средний бал
C++
1
2
3
4
5
6
7
8
9
for (int i = 0; i < cnt; i++)
    {
        for (int k=0; k<l_ysp; k++)
        {
          dbase[k].summ=dbase[k].summ+dbase[k].ysp;
            
        }
      cout <<dbase[0].summ<<endl;        
    }
и что-то я не пойму.
Первое это то, что у нас cnt-струтур, т.е. массив dbase должен быть размером, способным хранить cnt-записей считанных из файла. Зачем же тогда
C++
1
Student dbase[l_Student];
А если у нас будет больше 100 записей, тогда вполне вероятно произойдет запись в ячейку памяти за пределы массива dbase. Второе
C++
1
dbase[k].summ=dbase[k].summ+dbase[k].ysp;
тут вообще какая-то ерунда. В первую очередь у нас cnt элементов dbase, а не k. k - это 5 и это размер массива
C++
1
summ
dbase[k].summ - обращаться нельзя. summ это адрес первого элемента массива. Дальше dbase[k].ysp имеет тип char и что-то к чему-то прибавлять не имеет смысла. Надо править
1
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
30.04.2012, 18:35  [ТС]
denys_l, так как тогда написать то??

Добавлено через 21 час 16 минут
Подскажите пожалуйста!

Добавлено через 22 часа 26 минут
Подскажите кто-нибудь то

Добавлено через 23 часа 4 минуты
Может кто-нибудь ответить то????
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
30.04.2012, 19:10
KOPC1886, вот мое исполнение , "черновик " но
работает Ошибки в структурах и массивах
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
01.05.2012, 19:55  [ТС]
MrCold, а как отсортировать группы по номеру, в том топике код не сортирует.
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
01.05.2012, 20:28
С файлом KOPC1886 уж сами как нибудь справляйтесь - тем много таких
Миниатюры
Описать структуру с именем STUDENT  
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
01.05.2012, 22:13
Сортировку я вам переписал
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
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//           SORTIROVKA GRUP
        //
 
          cout << endl << "Sortirovka grup" << endl;
 
int evalbuf = 0, i;
int numbuf = 0;
char familybuffer[100];
bool flag = true;
     while(flag){
 
         flag = false;
for( i = 0; i < IND - 1; ++i)
    {
        if (stud[i + 1].numgroup < stud[i].numgroup) {
 
////////////////////////////////////////
        numbuf = stud[i].numgroup;
        evalbuf = mideval[i] ;
        strcpy(familybuffer,stud[i].family); 
/////////////////////////////////////////////
        stud[i].numgroup = stud[i + 1].numgroup;
        mideval[i] = mideval[i + 1];
        strcpy(stud[i].family,stud[i + 1].family);
 
////////////////////////////////////////////////////
        stud[i + 1].numgroup = numbuf;
        mideval[i + 1] = evalbuf;
        strcpy(stud[i + 1].family, familybuffer); 
 
        flag = true;
        }
    }
     }
        // ВЫВОД ДАННЫХ  
     for( i = 0; i < IND; ++i)
    {
        cout << endl << "Nomer gruppi\t" << stud[i].numgroup <<"\tfamilia\t"<<stud[i].family <<"\tsredniy bal\t"<< mideval[i] << endl;
     }
Миниатюры
Описать структуру с именем STUDENT  
1
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
04.05.2012, 21:18  [ТС]
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
// 2kontrol.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <fstream>
#include <string>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
const int l_name = 9, l_num=7, l_time=17, l_buf = l_name + l_num + l_time;
struct Train
{
        int num;
        char name[l_name+1];
        float time;
};
void selection_sort(Train *tr, const int sz);
 
int _tmain(int argc, _TCHAR* argv[])
 
{
    setlocale (LC_ALL, "Rus");
    const int l_name = 9, l_num=7, l_time=17, l_buf = l_name + l_num + l_time;
    
 
    const int l_Train=100;
    Train dbase[l_Train];    
    float time;
    int num;
    char name[l_name+1];
    
    
    fstream infile;
    infile.open("dbase.txt", ios::in);
    if (!infile.is_open())
    {
        cout << "Error opening file\n";
        return 0;
    }
 
    int cnt = 0;
    while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].time;
        ++cnt;
    };
    selection_sort(dbase, cnt);
    
    
    while (true) 
    {
        cout << "Введите время отправки поезда или 0:"; cin >>time;
        if (time==0) return 0;
        bool not_found = true;
        for (int i = 0; i < cnt; i++)
        {
            if (dbase[i].time > time)
            {               
                    cout << dbase[i].name <<' '<< dbase[i].num << ' ' << dbase[i].time << endl;
                    not_found = false;
                
            }
        }
 
    
    }
    return 0;
}
 
 
void selection_sort(Train *tr,const int sz)
{
    for (int i = 0; i < sz; ++i)
    {
        int minimum = i;
        for (int j = i + 1; j < sz; ++j)
        {
            if (strcmp(tr[j].name,tr[minimum].name) < 0)
            {
                Train temp = tr[minimum];
                tr[minimum] = tr[j];
                tr[j] = temp;
            }
        }
    }
}
1
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
06.05.2012, 15:30  [ТС]
Вот что я написал.
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
137
138
// andrei3.cpp : Defines the entry point for the console application.
//
// 2kontrol.cpp : Defines the entry point for the console application.
//
// 2 контрольная 2 семестра.
///ОСТАЛОСЬ ОТСОРТИРОВАТЬ ГРУППЫ ПО НОМЕРУ
#include "stdafx.h"
#include <fstream>
#include <string>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
const int l_name = 25, l_ysp=5;
struct trent
{
        int num;
        char name[l_name];
        char ysp[l_ysp];
        int summ[5];
};
void selection_sort(trent *tr, const int sz);
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Rus");
   // const int l_name = 9;  
    const int l_trent=100;
    trent dbase[l_trent];    
    
    float sr;
    
    int ser=0;
    fstream infile;
    infile.open("dbase4.txt", ios::in);
    if (!infile.is_open())
    {
        cout << "Error opening file\n";
        return 0;
    }
 
    int cnt = 0;
    while(!infile.eof())
    {
        infile >> dbase[cnt].name
               >> dbase[cnt].num
               >> dbase[cnt].ysp;
        ++cnt;
    };
    selection_sort(dbase, cnt);     
    const int size=100;
    float summ[size];
 
    for (int i = 0; i < cnt; i++)
    {
        for (int k=0; k<l_ysp;k++)
        {
      
            ser=ser+dbase[i].ysp[k]-'0';    
        }
        
        summ[i]=ser/l_ysp;
        //cout <<summ[i]<<endl;
        ser=0;
        
    }
/*
    int evalbuf = 0, i;
    int numbuf = 0;
    char namebuffer[100];
    bool flag = true;
    while(flag)
    { 
        flag = false;
        for( i = 0; i < sz - 1; ++i)
        {
            if (dbase[i + 1].num < dbase[i].num)
            {
 
                
                numbuf = dbase[i].num;
                evalbuf = ysp[i] ;
                strcpy(namebuffer,dbase[i].name); 
        
                dbase[i].num = dbase[i + 1].num;
                ysp[i] = ysp[i + 1];
                strcpy(tr[i].name,tr[i + 1].name);       
    
                tr[i + 1].num = numbuf;
                ysp[i + 1] = evalbuf;
                strcpy(tr[i + 1].name, namebuffer);          
                flag = true;
            }
        }
    }
    */
 
    while (true) 
    {
        cout << "Введите средний балл студента или 0:"; cin >>sr;
        if (sr==0) return 0;
        bool not_found = true;
        for (int i = 0; i < cnt; i++)
        {
            if (summ[i]>sr)
            {               
                    cout << dbase[i].name <<' '<< dbase[i].num << ' ' << dbase[i].ysp << endl;
                    not_found = false;
                
            }
        }
 
    
    }
    
    
    return 0;
}
 
void selection_sort(trent *tr,const int sz)
{/*
    for (int i = 0; i < sz; ++i)
    {
        int pos = i;
        int tmp=0;      
        for (int j = i + 1; j < sz; ++j)
        {
            if (tr[j].num< tmp)
            {
                //pos=j;
                tmp = tr[j].num;
                tr[j].num = tr[i].num;
                tr[i].num = tmp;
            }  
        }       
    }*/
 
}
У меня не получается сделать сортировку по номерам групп.
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
06.05.2012, 16:12
Цитата Сообщение от KOPC1886 Посмотреть сообщение
for (int i = 0; i < sz; ++i)
* * {
* * * * int pos = i;
* * * * int tmp=0;* * *
* * * * for (int j = i + 1; j < sz; ++j)
* * * * {
* * * * * * if (tr[j].num< tmp)
* * * * * * {
* * * * * * * * //pos=j;
* * * * * * * * tmp = tr[j].num;
* * * * * * * * tr[j].num = tr[i].num;
* * * * * * * * tr[i].num = tmp;
* * * * * * } *
* * * * } * * *
* * }*/
если надо поменять местами два составных элемента, то можно сделать так
memcpy(tmp_elem,elem1,sizeof(Elem));
memcpy(elem1,elem2,sizeof(Elem));
memcpy(elem2,tmp_elem,sizeof(Elem));

Добавлено через 2 минуты
KOPC1886, и ещё когда элементы меняются местами счётчик надо уменьшить на 1, чтобы элемент который мы поменяли сравался с другими элементами
цикл надо двойной делать.
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
06.05.2012, 16:25  [ТС]
Van111, Эм... я не очень понял)
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
06.05.2012, 16:42
KOPC1886, может будет роботать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void selection_sort(trent *tr, const int sz)
{
    trent tmp;
for(int index=1;index>0;index=0)
for (int i=0;i<sz;i++)
{
    for (int j=0;j<sz;j++)
    {
        if (tr[i].num > tr[j].num)
        memcpy(tmp,tr[i],sizeof(trent);
        memcpy(tr[i],tr[j],sizeof(trent);
        memcpy(tr[j],tmp,sizeof(trent);
        index++;
    }
    
}
Добавлено через 10 минут
KOPC1886, я там чуть натупил -вот сортировка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void selection_sort(trent *tr, const int sz)
{
trent tmp;
int is=1
while(is)
{
is=0;
for (int i=1;i<=sz;i++)
{
        
        if (tr[i].num < tr[i-1].num)
        {
        memcpy(tmp,tr[i-1],sizeof(trent);
        memcpy(tr[i-1],tr[i],sizeof(trent);
        memcpy(tr[i],tmp,sizeof(trent);
        is=1;
        }
}
}    
   
    
}
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
06.05.2012, 18:19  [ТС]
Van111, у меня 3 ошибки выскакивают
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
06.05.2012, 19:14
KOPC1886, include "windows.h"
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
06.05.2012, 22:15  [ТС]
Van111, все равно ошибки с memcpy
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
07.05.2012, 16:59
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, все равно ошибки с memcpy
какие именно?

Добавлено через 34 секунды
а понял надо вместо tmp поставить &tmp
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 18:21  [ТС]
Van111, везде или где?
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
07.05.2012, 18:27
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Van111, везде или где?
там где memcpy
0
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
07.05.2012, 18:31  [ТС]
Van111, поставил все равно ошибки
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
07.05.2012, 18:51
KOPC1886 . Вот сортировка для двух студентов (скрин) как
видите все работает . Посмотрите на номера групп

код

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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
/*
-------------   ОПИСАНИЕ РАБОТЫ  ---------
 
    1) СЧИТАЛИ С  ФАЙЛА --  ВЫВОД НА ЭКРАН 
 
    2) ОТСОРТИРОВАЛИ  --  ВЫВОД НА ЭКРАН 
 
    3) ВЫВОД НА ЭКРАН  СТУДЕНТОВ СО СР. БАЛЛОМ  БОЛЬШЕ 4.0
      ЕСЛИ НЕТ ВЫВОД СООБЩЕНИЯ,  ЧТО ТАКИХ НЕТ 
 
      ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх
      
      Файл должен содержать 10 строк :
      фамилия студента ,  номер группы и 5 оценок :
      Например :
 
      Ivanov 4 5 7 1.5 1 1
      Petrov 2 8 2 2 3 4
      Sidorov 3 3 3 3.1 3 1
 
              и т.д.
 
 
*/
#include <iostream>
#include <string.h>
#include <fstream>
#define SIZE 10  // кол-во структур 
#define ESIZE 5   // кол-во оценок 
 
   struct Student 
{ 
     char *family;   //  ФАМИЛИЯ 
     int numgroup;  // НОМЕР ГРУППЫ  
     float *eval;     // ОЦЕНКИ 
     float  avgrade;// average grade  СРЕДНИЙ БАЛ 
    Student()
     { 
         avgrade = 0.0;//  НАЧАЛЬНАЯ ИНИЦИАЛИЗАЦИЯ  
         numgroup = 0;
         family = new char[100];
         eval = new float[ESIZE];
         
     }
     ~Student(){
         delete[]family;
         delete[]eval;} 
 
 };
 
   void readFile(Student*,const char*);// ЧТЕНИЕ ИЗ ФАЙЛА и ВЫВОД НА ЭКРАН 
   void sortData(Student*);   // СОРТИРОВКА ПО НОМЕРУ ГРУППЫ 
   void outData(Student*);   // ВЫВОД НА ЭКРАН 
   void average_grade(Student*);     // СРЕДНИЙ БАЛЛ
   void outDataAvGrade(Student* ); // ВЫВОД  ПО  СРЕДНЕМУ БАЛЛУ
 
int main()
{ 
    Student stud[SIZE];
    char filename[70] = "file.txt";
    readFile(stud, filename);
    sortData(stud );
    outData(stud );
    average_grade(stud);
    outDataAvGrade(stud);
    return 0;
}
/////////////////////////////////////////////////////////
/////   ЧТЕНИЕ ИЗ ФАЙЛА и ВЫВОД НА ЭКРАН 
void readFile(Student* stud,const char* fname)
{    
   std::ifstream infile(fname);
    for(size_t i = 0; i < SIZE; i++)
    {
    std::cout << "\nStudent's family : ";
    infile >> stud[i].family ;
    std::cout << stud[i].family ;
    std::cout << "\nGroup's number : ";
    infile >> stud[i].numgroup ;
    std::cout << stud[i].numgroup ;
    std::cout << "\nA 5 evaluations : ";
    for(size_t j = 0; j < ESIZE; j++)
    {
    infile >> stud[i].eval[j] ;
    std::cout << stud[i].eval[j] << ' ';
    }
    std::cout  << std::endl;
    }
};
 
/////////////////////////////////////////////////////////
/////    СОРТИРОВКА ПО НОМЕРУ ГРУППЫ 
/////    фамилия , оценки и номер группы 
void sortData(Student* stud)
    {
    float evalbuf[ESIZE] = {{0.0}};
    size_t numbuf = 0, i, j;
    char familybuffer[100];
    bool flag = true;
     while(flag){
 
         flag = false;
for( i = 0; i < SIZE - 1; ++i)
    {
        if (stud[i + 1].numgroup < stud[i].numgroup) {
 
        numbuf = stud[i].numgroup;
        for( j = 0; j < ESIZE; j++)
        evalbuf[j] = stud[i].eval[j] ;
        strcpy(familybuffer,stud[i].family); 
 
        stud[i].numgroup = stud[i + 1].numgroup;
        for( j = 0; j < ESIZE; j++)
        stud[i].eval[j] = stud[i + 1].eval[j] ;
        strcpy(stud[i].family,stud[i + 1].family);
 
 
        stud[i + 1].numgroup = numbuf;
        for( j = 0; j < ESIZE; j++)
        stud[i + 1].eval[j] = evalbuf[j] ;
        strcpy(stud[i + 1].family, familybuffer); 
 
        flag = true;
        }
    }
     }
    }
///////////////////////////////////////////////////////////
    //   ВЫВОД ФАМИЛИИ, НОМЕРА ГРУППЫ И ОЦЕНОК  
        //      ПОСЛЕ СОРТИРОВКИ  
void outData(Student* stud)
{     std::cout << "\nAfter sort :\n";
     for(size_t i = 0; i < SIZE; i++)
     {
         
    std::cout << "\nStudent's family : " << stud[i].family ;
    std::cout << "\nGroup's number : " << stud[i].numgroup ;
    std::cout << "\nA 5 evaluations :\n";
    for(size_t j = 0; j < ESIZE; j++)
    std::cout <<  stud[i].eval[j] << ' ';
    std::cout  << std::endl;
    }
}
 
////////////////////////////////////////////////////
    // СРЕДНИЙ БАЛЛ КАЖДОГО СТУДЕНТА  
void average_grade(Student* stud)
{
     for(size_t i = 0; i < SIZE; i++)
     {
        for(size_t j = 0; j < ESIZE; j++)
        {
        stud[i].avgrade += stud[i].eval[j];
        }
     stud[i].avgrade /=  ESIZE;
     }
}
 
///////////////////////////////////////////////////////////
    //   ВЫВОД ФАМИЛИИ  СТУДЕНТОВ СО СР. БАЛЛОМ  БОЛЬШЕ 4.0
    // ЕСЛИ НЕТ -  ВЫВОД СООБЩЕНИЯ,  ЧТО ТАКИХ НЕТ 
void outDataAvGrade(Student* stud)
{    
    bool fl = false;
    std::cout << "\nStudents with average grade > 4.0  :\n";
     for(size_t i = 0; i < SIZE; i++)
     {
        if(stud[i].avgrade > 4.0) 
        {
            fl = true;
    std::cout  << " Family  "<< stud[i].family <<  " average grade " << stud[i].avgrade;
    std::cout  << std::endl;
        }
    }
     if(!fl) std::cout << " \tnot found .";
}
Миниатюры
Описать структуру с именем STUDENT  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2012, 18:51
Помогаю со студенческими работами здесь

Описать структуру с именем STUDENT
как подогнать это 1. Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы; • GROUP- номер...

Описать структуру с именем Student
Вот задание . Описать структуру с именем Student, содержащую следующие поля: name – имя, group – группа, marks – успеваемость (массив из 4...

Описать структуру с именем student
Нужна помощь в решении задачи в Borland C, 16. Ввести структуру СТУДЕНТ с полями ФИО, ГОД РОЖДЕНИЯ, КОД ГРУППЫ. Написать и протестировать...

Описать структуру с именем STUDENT
Помогите пожалуйста написать программу на C++ для Visual Studio. Описать структуру с именем STUDENT, содержащую следующие поля: ...

Описать структуру с именем STUDENT
Пожалуйста помогите! Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы; • GROUP - номер...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru