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

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

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

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

26.05.2009, 21:49. Просмотров 686. Ответов 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;
}
}

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

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
826 / 347 / 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;
}
, но мысль осталась таже.
Yandex
Объявления
27.05.2009, 00:32     Определить средний балл за сессию и отсортировать список по сумме баллов
Ответ Создать тему
Опции темы

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