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

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

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

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

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

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

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

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

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

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

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

Структуры: Списки студентов - C++
всем привет вот такое задание мне дано: Описать массив структур, содержащих информацию о результатах сессии: {фамилия; группа;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
29.06.2014, 14:27     Список студентов (структуры) #2
См. например,
Программирование с использованием файлов: список студентов
astronomydomine
0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 3
29.06.2014, 15:00  [ТС]     Список студентов (структуры) #3
Проблема в том, что мне надо посчитать среднее арифметическое оценок студентов в каждой группе, а я не знаю изначально, какие номера групп вводятся, сколько их, сколько студентов в каждой группе...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2014, 15:52     Список студентов (структуры)
Еще ссылки по теме:

Структуры. Вывести фамилии студентов. - C++
Вывести фамилии студентов, балл по определенному предмету которых превышает средний балл по предмету на 0.5 балла

Структуры: поиск группы с минимальным количеством студентов - C++
Уважаемые форумцы. Я не сильно силен в с++, да и вообще в кодинге, есть задание "написать программу для поиска группы с минимальным...

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

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

Структуры. Записать в файл имена всех студентов, у которых есть оценка 3 - C++
Условие задачи: Необходимо записать в файл имена всех студентов, у которых есть оценка 3. Изначально создать файл с именами студентов. ...

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


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

Или воспользуйтесь поиском по форуму:
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.
Yandex
Объявления
29.06.2014, 15:52     Список студентов (структуры)
Ответ Создать тему
Опции темы

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