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

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

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

Список студентов (структуры) - C++

29.06.2014, 14:01. Просмотров 636. Ответов 3
Метки нет (Все метки)

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

Создание структуры Список студентов - C++
Нужна помощь. Есть в методичке пример создания Ведомости студентов. Код: #include <iostream.h> #include <stdio.h> #include <conio.h> ...

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

Структуры: На основе данных входного файла составить список студентов - C++
На основе данных входного файла составить список студентов, включив следующие данные: ФИО,год рождения,домашний адрес,какую школу окончил....

Структуры. Составить список студентов в произвольной последовательности, а вывести на экран по группам - C++
Здравствуйте. У меня есть одно задание, помогите решить. Нужно составить список студентов в произвольной последовательности, а вывести на...

Структуры: на основе данных входного файла составить список студентов группы - C++
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, год рождения, домашний адрес, какую школу...

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

3
zss
Модератор
Эксперт С++
6626 / 6188 / 2047
Регистрация: 18.12.2011
Сообщений: 16,133
Завершенные тесты: 1
29.06.2014, 14:27 #2
См. например,
Программирование с использованием файлов: список студентов
0
astronomydomine
0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 3
29.06.2014, 15:00  [ТС] #3
Проблема в том, что мне надо посчитать среднее арифметическое оценок студентов в каждой группе, а я не знаю изначально, какие номера групп вводятся, сколько их, сколько студентов в каждой группе...
0
NanoBreaker
23 / 23 / 7
Регистрация: 11.07.2013
Сообщений: 89
29.06.2014, 15:52 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
//структура, которая хранит данные о нашем студенте
struct student
{
    string student_name;
    short int group_number;
    short int mark;
 
    student(string student_name_, short int group_number_, short int mark_) : student_name(student_name_), group_number(group_number_), mark(mark_) {};
    ~student(){};
};
 
//функция, чтоб мы смогли отсортировать наших студентов по группам
bool compare_students(student s1, student s2)
{
    return s1.group_number < s2.group_number;
}
 
int main(void)
{
    setlocale(LC_ALL, "Russian");
 
    vector<student> students;
    short int number_of_students = 0;
 
    cout << "Введите кол-во студентов: ";
    cin >> number_of_students;
 
    //вводим студентов
    for (int i = 1; i <= number_of_students; i++)
    {
        string buff_s1, buff_s2, buff_s3;
        short int buff_i1;
        short int buff_i2;
 
        cout << "Студент N" << i << endl;
        cout << "Ф.И.О : "; cin >> buff_s1 >> buff_s2 >> buff_s3;
        cout << "Номер группы : "; cin >> buff_i1;
        cout << "Оценка студента : "; cin >> buff_i2;
 
        student buff = { buff_s1 + ' ' + buff_s2 + ' ' + buff_s3, buff_i1, buff_i2 };
        students.push_back(buff);
        cout << endl;
    }
 
    int marks = 0;
    int max_mark = 0;
    int current_group = 0;
    int group_with_h_mark = 0;
 
    //сортируем по группам
    sort(students.begin(), students.end(), compare_students);
 
    //прохожусь по каждой группе и нахожу её суммарную оценку, если она больше изначальной оценки( = 0 )
    //то тогда это значение становится максимальным, и при этом сохраняю номер группы, чтоб вывести его в конце
    current_group = students[0].group_number;
    for_each(students.begin(), students.end(), [&marks, &max_mark, &current_group, &group_with_h_mark](student s)
    {
        if (current_group != s.group_number)
        {
            if (max_mark < marks) {max_mark = marks; group_with_h_mark = current_group;}
            current_group = s.group_number;
            marks = 0;
        }
        marks += s.mark;
    });
 
    cout << "Группа сумма оценок в которой больше остальных: " << group_with_h_mark << endl;
 
    system("PAUSE");
    return 0;
}
Добавлено через 48 минут
Если надо среднее арифметическое, то тогда добавь еще одну переменную, которая будет считать кол-во студентов, добавь вычисление marks/кол-во учащихся перед проверкой, и не забудь поменять типы данных int на float. Так же не забудь её обнулять, там же где и marks.
1
29.06.2014, 15:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2014, 15:52
Привет! Вот еще темы с ответами:

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

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

Упорядочить список студентов по среднему баллу и вывести весь список - C++
форумчане,выдает ошибку :( столько маюсь с задачей уже #include &lt;vcl.h&gt; #include &lt;stdio.h&gt; #pragma hdrstop /*Упорядочить список...

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов - C++
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный список студентов. Помогите пожалуйста,...


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

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

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