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

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

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

Определить средний балл за сессию и отсортировать список по сумме баллов - C++

26.05.2009, 21:49. Просмотров 785. Ответов 1
Метки нет (Все метки)

Есть задача:
создать массив данных о студентах группы. Записать имя, фамилию, год рождения каждого студента, оценки по пяти экзаменах. Определить средний балл за сессию и отсортировать список по сумме баллов
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
#include <stdio.h> 
#include <iostream.h>
#include <conio.h>
struct student        // Шаблон структуры 
{ char name[20];      // имя
char fam[30];          // фамилия
int year;              // возраст
int mark[5];           // оценки
int average;           // Сумма балов
};
student students[30];      // Массив данных по группе
student buffer;          // Дополнительная структура
int records;          // Количество студентов в группе
int i, j ;
student mass[30];        // Вспомогательные переменные
void main ( )
{ records = 0 ;      // Сначала записей нет
do        // Заполняем массив структур
{ cout <<  "Студент № " << records+1 << endl;
cout <<  "Введите фамилию ";  fflush(stdin) ;
cin >> students [records].fam;
cout <<  "Введите имя  ";
cin >> students [records].name;
cout <<  "Введите возраст ";
cin >> students [records].year;
for(i = 0; i < 5; i++)
{ cout << "     Введите оценку по экзамену №  "  <<  i+1 << endl;
cin >> students[records].mark[i];
}
records++;
cout << "Остановить работу? [1/0]  ";
cin >> i;
}     while(i) ;
for(i = 0; i < records; i++)         // Подсчитывает сумму баллов
{   students [ i ].average = 0;
for (j=0;  j < 5; j++)
students[i].average += students[i].mark[j ];
}
for (i = 0; i < records-1; i++)       // сортирует
for (j = i; j < records; j++)          //     по сумме баллов
if (students[i].average > students[j].average)
{     buffer = mass[i];     // Перестановка элементов
mass[i] = mass[j];         // структуры, особенность
mass[j] = buffer;         // языка C/C++
}
for (i = 0; i < records; i++)     // Выводим результат
{ cout << "\n Студент " << students[i].name  <<  "\t" << students [i].fam ;
cout << " возраст " <<  students [i].year;  
cout << " Сре. бал " <<  students[i].average;
}
}

Нужно переделать так чтобы: в списке студентов группы вычислить количество студентов с именами: Наталья, Владимир, Роман
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2009, 21:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить средний балл за сессию и отсортировать список по сумме баллов (C++):

7.Дан список студентов. Общие поля: Ф.И.О., дата рождения, группа, средний балл. Если средний балл 4 и выше, то указать размер стипендии. Если средний - C++
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;clocale&gt; int main() { setlocale(0,&quot;Rus&quot;); static char res; int...

Вычислить средний балл в каждой группе студентов и определить, какая группа имеет наибольший средний балл - C++
две группы студентов (1-ая -13 человек, 2-ая - 8 человек) сдают экзамен по информатике. Написать программу, вычисляющую, средний балл в...

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

Вычислить средний балл оценок каждого студента и напечатать их фамилии и средний балл (объединение (union)) - C++
Дан список студентов. Общие поля: Ф.И.О., дата рождения, группа, средний балл. Вычислить средний балл оценок каждого студента и напечатать...

Вычислить средний балл оценок каждого студента и напечатать их фамилии и средний балл - C++
Вычислить средний балл оценок каждого студента и напечатать их фамилии и средний балл.

Отсортировать массив по сумме баллов студентов и вывести на экран вместе с их фамилиями - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

1
insolent
826 / 344 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
27.05.2009, 00:32 #2
1) Используйте bb-коды форматирования - читать тяжело;
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <algorithm>
#define n 30
using namespace std;
 
struct student // Шаблон структуры
{ char name[20]; // имя
char fam[30]; // фамилия
int year; // возраст
int mark[5]; // оценки
int average; // Сумма балов
};
 
int main(int argc, char* argv[])
{
    setlocale(0,"");
    int i,j,
        records = 0 ;// Сначала записей нет
    student students[30],buffer; // Массив данных по группе
    do // Заполняем массив структур
    { cout << "Студент № " << records+1 << endl;
    cout << "Введите фамилию "; fflush(stdin) ;
    cin >> students [records].fam;
    cout << "Введите имя ";
    cin >> students [records].name;
    cout << "Введите возраст ";
    cin >> students [records].year;
    for(i = 0; i < 5; i++)
    { cout << " Введите оценку по экзамену № " << i+1 << endl;
    cin >> students[records].mark[i];
    }
    records++;
    cout << "Продолжить? [1/0] ";
    cin >> i;
    _flushall();
    } while(i) ;
    for(i = 0; i < records; i++) // Подсчитывает сумму баллов
    { students [ i ].average = 0;
    for (j=0; j < 5; j++)
        students[i].average += students[i].mark[j ];
    }
    for (i = 0; i < records-1; i++) // сортирует
        for (j = i; j < records; j++) // по сумме баллов
            if (students[i].average > students[j].average)
            { buffer = students[i]; // Перестановка элементов
    students[i] = students[j]; // структуры, особенность
    students[j] = buffer; // языка C/C++
    }
    for (i = 0; i < records; i++) // Выводим результат
    { cout << "\n Студент " << students[i].name << "\t" << students [i].fam ;
    cout << " возраст " << students [i].year;
    cout << " Сре. бал " << students[i].average;
    }
    getchar();
    return 0;
}
, но мысль осталась таже.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2009, 00:32
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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