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

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

Войти
Регистрация
Восстановить пароль
 
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
#1

Структура. Вывести информацию по студентам в порядке уменьшения среднего балла - C++

05.10.2013, 22:46. Просмотров 628. Ответов 14
Метки нет (Все метки)

Есть вот такая задача:
В деканате хранится следующая информация о студентах: ФИО, номер группы, оценки за последнюю сессию. Вывести информацию по студентам в порядке уменьшения среднего балла. Номер группы для поиска пользователь вводит самостоятельно.
Не знаю как сделать сортировку по среднему баллу. Так же не знаю как сделать поиск по номеру группы. Подскажите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структура. Вывести информацию по студентам в порядке уменьшения среднего балла (C++):

Вывести студентов в порядке убывания среднего балла - C++
дан список студентов и список предметов,по которому сдавался экзамен. известны оценки по каждому предмету. разработать алгоритм и привести...

Сортировка структур в порядке убывания среднего балла - C++
П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Перепишите задачу в сообщение ...

Структура: вывести на экран информацию о результатах прыжков в длину, отсортированную в порядке возрастания мест - C++
В одном файле хранятся сведения об участниках соревнований: номер участника, ФИО, страна, во 2 файле сведения об итогах соревнований: номер...

Выведите фамилии и имена учащихся в порядке убывания их среднего балла - C++
Помогите, пожалуйста, с решением, последний тест не проходит, пишет "превышено максимальное время работы". Вместо пузырька вставляли...

Выведите фамилии и имена студентов в порядке убывания их среднего балла - C++
Выведите фамилии и имена студентов в порядке убывания их среднего балла

Вывести список абитуриентов, средний балл которых выше среднего балла по университету - C++
Всем привет! Поставлена следующая задача: Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О....

14
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
06.10.2013, 00:20 #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
#include <iostream>
using namespace std;
struct student {
char FIO[255];
int num;
int bal;
}
int main() {
    int size=10,n,x;
    student* arr=new student[size]; //создание массива
           //поиск по номеру группы
    cout<<"Enter number of group to find:\n";
    cin>>n;
    for (int i=0;i<10;i++){
        if (arr[i].num==n) {
            cout<<arr[i].FIO;
            cout<<arr[i].num;
            cout<<arr[i].bal;
        }
    }
           //сортировка по баллам
    student temp;
    for(int i=0;i<size;i++){            
        for(int j=size-1;j>i;j--){    
            if(arr[j-1].bal<arr[j].bal){
                temp=arr[j-1];
                arr[j-1]=arr[j];
                arr[j]=temp;
            }
        }
    }
    system("PAUSE");
    return 0;
}
впринципе если были не понятны именно поиск и сортировка, то думаю разберетесь. если возникнут вопросы спрашивайте
2
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
06.10.2013, 01:35  [ТС] #3
newb_programmer, спасибо большое!)
0
Taatshi
06.10.2013, 02:14
  #4
 Комментарий модератора 
newb_programmer, не нужно цитировать ВСЕ предыдущие сообщения, тем более, целиком. Пользуйтесь кнопкой "Ответить"
0
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
06.10.2013, 03:02  [ТС] #5
Taatshi, НЕ РУГАЙТЕ ЕГО!!!! Я ЕМУ ОЧЕНЬ БЛАГОДАРЕН ЗА СТОЛЬ СКОРЫЙ ОТВЕТ!!!!
0
Taatshi
Администратор
11467 / 4932 / 251
Регистрация: 05.04.2011
Сообщений: 13,586
Записей в блоге: 2
06.10.2013, 10:24 #6
Toda, я не ругаю) Он молодец.
0
newb_programmer
06.10.2013, 11:27
  #7

Не по теме:

Taatshi, окей буду цитировать только при необходимости

1
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
07.10.2013, 00:16  [ТС] #8
newb_programmer, у Вас программа без структуры, да?

Вот моя программа, только не хочет работать:
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
#include <iostream>
#include <conio.h>
using namespace std;
 
struct students{
char fio[30];
int phys, math, ts, number_group;
float middle;
}student1, student2, student3, student4, student5, student6, student7, student8, student9, student10, student11, student12;
 
 
void main()
{
    int n;
    strcpy(student1.fio, "Kurinnoy Oleg Vladimirovich");
    student1.phys=4;
    student1.math=3;
    student1.ts=4;
    student1.middle=(student1.phys+student1.math+student1.ts)/3;
    student1.number_group=20;
 
    strcpy(student2.fio, "Trikulova Olga Olegovna");
    student2.phys=5;
    student2.math=3;
    student2.ts=4;
    student2.middle=(student2.phys+student2.math+student2.ts)/3;
    student2.number_group=20;
    
    strcpy(student3.fio, "Melanchuk Artem Vitalievich");
    student3.phys=4;
    student3.math=3;
    student3.ts=3;
    student3.middle=(student3.phys+student3.math+student3.ts)/3;
    student3.number_group=20;
 
    strcpy(student4.fio, "Danger Dasha Dmitrievna");
    student4.phys=4;
    student4.math=4;
    student4.ts=4;
    student4.middle=(student4.phys+student4.math+student4.ts)/3;
    student4.number_group=21;
 
    strcpy(student5.fio, "Podtikan Dmitry Alexeevich");
    student5.phys=4;
    student5.math=3;
    student5.ts=4;
    student5.middle=(student5.phys+student5.math+student5.ts)/3;
    student5.number_group=21;
 
    strcpy(student6.fio, "Dvortsov Alexand Viktorovich");
    student6.phys=5;
    student6.math=3;
    student6.ts=5;
    student6.middle=(student6.phys+student6.math+student6.ts)/3;
    student6.number_group=21;
 
    strcpy(student7.fio, "Rozsaduk Anastasia Evgenievna");
    student7.phys=5;
    student7.math=5;
    student7.ts=5;
    student7.middle=(student7.phys+student7.math+student7.ts)/3;
    student7.number_group=22;
 
    strcpy(student8.fio, "Abalmasov Dmitry Maximovich");
    student8.phys=4;
    student8.math=4;
    student8.ts=4;
    student8.middle=(student8.phys+student8.math+student8.ts)/3;
    student8.number_group=22;
 
    strcpy(student9.fio, "Tsimbalist Ilya Romanovich");
    student9.phys=3;
    student9.math=3;
    student9.ts=4;
    student9.middle=(student9.phys+student9.math+student9.ts)/3;
    student9.number_group=22;
 
    strcpy(student10.fio, "Noyanov Stepan Andreevich");
    student10.phys=5;
    student10.math=4;
    student10.ts=4;
    student10.middle=(student10.phys+student10.math+student10.ts)/3;
    student10.number_group=23;
 
    strcpy(student11.fio, "Tsimbalist Ilya Romanovich");
    student11.phys=3;
    student11.math=3;
    student11.ts=4;
    student11.middle=(student11.phys+student11.math+student11.ts)/3;
    student11.number_group=23;
 
    strcpy(student12.fio, "Dubinetsky Valery Maximovich");
    student12.phys=3;
    student12.math=4;
    student12.ts=4;
    student12.middle=(student12.phys+student12.math+student12.ts)/3;
    student12.number_group=23;
    cout<<"Vvedite numer group: ";
    
     for (int i=20;i<23;i++){
        if (student[i].number_group==n) {
            cout<<student[i].fio;
            cout<<student[i].number_group;
            cout<<student[i].middle;
        }
    }
    getch();
}
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
07.10.2013, 00:19 #9
Toda, вы создали 12 разных структур, но это не массив! и обращаться к student[i] вы не имеете никакого права

C++
1
2
 int size=10,n,x;
    student* arr=new student[size]; //создание массива
0
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
07.10.2013, 00:28  [ТС] #10
newb_programmer, а как правильно мне можно сделать с 12ю структурами?(
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
07.10.2013, 00:29 #11
Toda, вот сделал 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
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
#include <iostream>
#include <conio.h>
using namespace std;
 
struct students{
char fio[30];
int phys, math, ts, number_group;
float middle;
};
 
 
void main()
{
    int size=10,n;
    students* student=new students[size];
    strcpy(student[1].fio, "Kurinnoy Oleg Vladimirovich");
    student[1].phys=4;
    student[1].math=3;
    student[1].ts=4;
    student[1].middle=(student[1].phys+student[1].math+student[1].ts)/3;
    student[1].number_group=20;
 
    strcpy(student[2].fio, "Trikulova Olga Olegovna");
    student[2].phys=5;
    student[2].math=3;
    student[2].ts=4;
    student[2].middle=(student[2].phys+student[2].math+student[2].ts)/3;
    student[2].number_group=20;
    
    strcpy(student[3].fio, "Melanchuk Artem Vitalievich");
    student[3].phys=4;
    student[3].math=3;
    student[3].ts=3;
    student[3].middle=(student[3].phys+student[3].math+student[3].ts)/3;
    student[3].number_group=20;
 
    strcpy( student[4].fio, "Danger Dasha Dmitrievna");
    student[4].phys=4;
     student[4].math=4;
     student[4].ts=4;
     student[4].middle=(student[4].phys+student[4].math+student[4].ts)/3;
     student[4].number_group=21;
 
    strcpy(student[5].fio, "Podtikan Dmitry Alexeevich");
    student[5].phys=4;
    student[5].math=3;
    student[5].ts=4;
    student[5].middle=(student[5].phys+student[5].math+student[5].ts)/3;
    student[5].number_group=21;
 
    strcpy(student[6].fio, "Dvortsov Alexand Viktorovich");
    student[6].phys=5;
    student[6].math=3;
    student[6].ts=5;
    student[6].middle=(student[6].phys+student[6].math+student[6].ts)/3;
    student[6].number_group=21;
    cout<<"Vvedite numer group: ";
    cin>>n;
     for (int i=0;i<6;i++){
        if (student[i].number_group==n) {
            cout<<student[i].fio;
            cout<<student[i].number_group;
            cout<<student[i].middle;
            cout<<"\n";
        }
    }
    getch();
}
работает!
0
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
07.10.2013, 01:56  [ТС] #12
newb_programmer, работает!) Спасибо большое, доведу до ума)

Добавлено через 5 минут
newb_programmer, а как обьявить идентификатор student[7-12]?

Добавлено через 41 минуту
newb_programmer, она, почему-то student[i].middle выводит целым числом. Почему так?

Добавлено через 22 минуты
newb_programmer, можете подсказать, как в этом коде сделать сортировку?
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
#include <iostream>
#include <conio.h>
using namespace std;
 
struct students{
char fio[30];
int phys, math, ts, number_group;
float middle;
};
 
 
void main()
{
    int size = 15, n;
    students* student=new students[size];
    strcpy(student[1].fio, "Kurinnoy Oleg Vladimirovich");
    student[1].phys=4;
    student[1].math=3;
    student[1].ts=4;
    student[1].middle=(student[1].phys+student[1].math+student[1].ts)/3;
    student[1].number_group=20;
 
    strcpy(student[2].fio, "Trikulova Olga Olegovna");
    student[2].phys=5;
    student[2].math=3;
    student[2].ts=4;
    student[2].middle=(student[2].phys+student[2].math+student[2].ts)/3;
    student[2].number_group=20;
    
    strcpy(student[3].fio, "Melanchuk Artem Vitalievich");
    student[3].phys=4;
    student[3].math=3;
    student[3].ts=3;
    student[3].middle=(student[3].phys+student[3].math+student[3].ts)/3;
    student[3].number_group=20;
 
    strcpy( student[4].fio, "Danger Dasha Dmitrievna");
    student[4].phys=4;
     student[4].math=4;
     student[4].ts=4;
     student[4].middle=(student[4].phys+student[4].math+student[4].ts)/3;
     student[4].number_group=21;
 
    strcpy(student[5].fio, "Podtikan Dmitry Alexeevich");
    student[5].phys=4;
    student[5].math=3;
    student[5].ts=4;
    student[5].middle=(student[5].phys+student[5].math+student[5].ts)/3;
    student[5].number_group=21;
 
    strcpy(student[6].fio, "Dvortsov Alexand Viktorovich");
    student[6].phys=5;
    student[6].math=3;
    student[6].ts=5;
    student[6].middle=(student[6].phys+student[6].math+student[6].ts)/3;
    student[6].number_group=21;
 
    strcpy(student[7].fio, "Rozsaduk Anastasia Evgenievna");
    student[7].phys=5;
    student[7].math=5;
    student[7].ts=5;
    student[7].middle=(student[7].phys+student[7].math+student[7].ts)/3;
    student[7].number_group=22;
 
    strcpy(student[8].fio, "Abalmasov Dmitry Maximovich");
    student[8].phys=4;
    student[8].math=4;
    student[8].ts=4;
    student[8].middle=(student[8].phys+student[8].math+student[8].ts)/3;
    student[8].number_group=22;
 
    strcpy(student[9].fio, "Tsimbalist Ilya Romanovich");
    student[9].phys=3;
    student[9].math=3;
    student[9].ts=4;
    student[9].middle=(student[9].phys+student[9].math+student[9].ts)/3;
    student[9].number_group=22;
 
    strcpy(student[10].fio, "Noyanov Stepan Andreevich");
    student[10].phys=5;
    student[10].math=4;
    student[10].ts=4;
    student[10].middle=(student[10].phys+student[10].math+student[10].ts)/3;
    student[10].number_group=23;
 
    strcpy(student[11].fio, "Tsimbalist Ilya Romanovich");
    student[11].phys=3;
    student[11].math=3;
    student[11].ts=4;
    student[11].middle=(student[11].phys+student[11].math+student[11].ts)/3;
    student[11].number_group=23;
 
    strcpy(student[12].fio, "Dubinetsky Valeriy Nikolaevich");
    student[12].phys=5;
    student[12].math=3;
    student[12].ts=4;
    student[12].middle=(student[12].phys+student[12].math+student[12].ts)/3;
    student[12].number_group=23;
 
    cout<<"Vvedite numer group: ";
    cin>>n;
     for (int i=1;i<12;i++){
        if (student[i].number_group==n) {
            cout<<student[i].fio<<"\n";
            cout<<student[i].number_group<<"\n";
            cout<<student[i].middle;
            cout<<"\n"<<"\n";
        }
    }
    getch();
}
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
07.10.2013, 08:25 #13
Toda, баллы отображаются нормально и сортировку прилепил
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
#include <iostream>
#include <conio.h>
using namespace std;
 
struct students{
char fio[30];
int phys, math, ts, number_group;
float middle;
};
 
 
void main()
{
    int size = 15, n;
    students* student=new students[size];
    strcpy(student[1].fio, "Kurinnoy Oleg Vladimirovich");
    student[1].phys=4;
    student[1].math=3;
    student[1].ts=4;
    student[1].middle=(student[1].phys+student[1].math+student[1].ts)/3.;
    student[1].number_group=20;
 
    strcpy(student[2].fio, "Trikulova Olga Olegovna");
    student[2].phys=5;
    student[2].math=3;
    student[2].ts=4;
    student[2].middle=(student[2].phys+student[2].math+student[2].ts)/3.;
    student[2].number_group=20;
    
    strcpy(student[3].fio, "Melanchuk Artem Vitalievich");
    student[3].phys=4;
    student[3].math=3;
    student[3].ts=3;
    student[3].middle=(student[3].phys+student[3].math+student[3].ts)/3.;
    student[3].number_group=20;
 
    strcpy( student[4].fio, "Danger Dasha Dmitrievna");
    student[4].phys=4;
     student[4].math=4;
     student[4].ts=4;
     student[4].middle=(student[4].phys+student[4].math+student[4].ts)/3.;
     student[4].number_group=21;
 
    strcpy(student[5].fio, "Podtikan Dmitry Alexeevich");
    student[5].phys=4;
    student[5].math=3;
    student[5].ts=4;
    student[5].middle=(student[5].phys+student[5].math+student[5].ts)/3.;
    student[5].number_group=21;
 
    strcpy(student[6].fio, "Dvortsov Alexand Viktorovich");
    student[6].phys=5;
    student[6].math=3;
    student[6].ts=5;
    student[6].middle=(student[6].phys+student[6].math+student[6].ts)/3.;
    student[6].number_group=21;
 
    strcpy(student[7].fio, "Rozsaduk Anastasia Evgenievna");
    student[7].phys=5;
    student[7].math=5;
    student[7].ts=5;
    student[7].middle=(student[7].phys+student[7].math+student[7].ts)/3.;
    student[7].number_group=22;
 
    strcpy(student[8].fio, "Abalmasov Dmitry Maximovich");
    student[8].phys=4;
    student[8].math=4;
    student[8].ts=4;
    student[8].middle=(student[8].phys+student[8].math+student[8].ts)/3.;
    student[8].number_group=22;
 
    strcpy(student[9].fio, "Tsimbalist Ilya Romanovich");
    student[9].phys=3;
    student[9].math=3;
    student[9].ts=4;
    student[9].middle=(student[9].phys+student[9].math+student[9].ts)/3.;
    student[9].number_group=22;
 
    strcpy(student[10].fio, "Noyanov Stepan Andreevich");
    student[10].phys=5;
    student[10].math=4;
    student[10].ts=4;
    student[10].middle=(student[10].phys+student[10].math+student[10].ts)/3.;
    student[10].number_group=23;
 
    strcpy(student[11].fio, "Tsimbalist Ilya Romanovich");
    student[11].phys=3;
    student[11].math=3;
    student[11].ts=4;
    student[11].middle=(student[11].phys+student[11].math+student[11].ts)/3.;
    student[11].number_group=23;
 
    strcpy(student[12].fio, "Dubinetsky Valeriy Nikolaevich");
    student[12].phys=5;
    student[12].math=3;
    student[12].ts=4;
    student[12].middle=(student[12].phys+student[12].math+student[12].ts)/3.;
    student[12].number_group=23;
 
    cout<<"Vvedite numer group: ";
    cin>>n;
     for (int i=1;i<12;i++){
        if (student[i].number_group==n) {
            cout<<student[i].fio<<"\n";
            cout<<student[i].number_group<<"\n";
            cout<<student[i].middle;
            cout<<"\n"<<"\n";
        }
    }
     //sortirovka
    students temp;
    for(int i=0;i<size;i++){            
        for(int j=size-1;j>i;j--){    
            if(student[j-1].middle<student[j].middle){
                temp=student[j-1];
                student[j-1]=student[j];
                student[j]=temp;
            }
        }
    }
    cout<<"Sorted by mean ball:\n";
    for(int i=0;i<12;i++){
    cout<<student[i].fio<<"\t";
            cout<<student[i].number_group<<"\t";
            cout<<student[i].middle<<"\t";
            cout<<"\n";
    }
    getch();
}
0
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
07.10.2013, 09:16  [ТС] #14
newb_programmer, так это мне всех выводит( Мне нужно по группе сделать вывод по баллам
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
07.10.2013, 12:18 #15
Toda, это же элементарно Ватсон (вот один из вариантов):
C++
1
2
3
4
5
6
7
8
9
    cout<<"Sorted by mean ball:\n";
    for(int i=0;i<12;i++){
       if (student[i].number_group==n) {
        cout<<student[i].fio<<"\t";
        cout<<student[i].number_group<<"\t";
        cout<<student[i].middle<<"\t";
        cout<<"\n";
       }
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2013, 12:18
Привет! Вот еще темы с ответами:

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

Дана строка. Вывести слова в порядке их уменьшения - C++
Здравствуйте. Помогите пожалуйста решить такую вот задачку. Нужно ввести строку, потом вывести на экран слова, в порядке их...

Дан текст, вывести на экран слова в порядке уменьшения их длины! - C++
Дан одномерный Массив написать программу преобразования массива путём сдвига их значений! Добавлено через 1 минуту С++ Робота со...

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
07.10.2013, 12:18
Ответ Создать тему
Опции темы

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