Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/75: Рейтинг темы: голосов - 75, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 14.08.2018
Сообщений: 1
1

Рассчитать и вывести на экран средний балл для каждого студента и общий по группе

14.08.2018, 23:09. Показов 13501. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая запрашивает ввод с клавиатуры оценок группы
студентов, количество студентов в группе n. У каждого студента к оценок (значения n и k
пользователь вводит с клавиатуры). Количество оценок у студентов может быть разным,
вводится для каждого студента. Необходимо рассчитать и вывести на экран средний балл
для каждого студента и общий по группе. При вводе оценок осуществить проверку на
правильность ввода оценки (от 1 до 10).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2018, 23:09
Ответы с готовыми решениями:

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

Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента и общий средний балл
Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента...

Подсчитать средний балл каждого студента, общий средний балл по каждому предмету
Приложение под Windows должно подсчитывать средний балл каждого студента, общий средний балл по...

Найти средний балл каждого студента и общий средний балл
Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента...

3
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 25
15.08.2018, 00:44 2
Я бы так сделал: Создаёшь класс Student, описывать этого студента будут количество его оценок и сама оценка. В классе есть два метода 1-ый это заполнение (В нём мы заполняем каждую оценку каждого студенты), 2-ой это подсчёт средне статистического для каждого студента. В деструкторе мы просто освобождаем память выделенную под оценки.
Student(.h)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once
#include<iostream>
using namespace std;
 
typedef unsigned int ui;
class Student
{
private:
    ui *mark;
    ui number_of_marks;
public:
    Student();
    void Filling(ui);
    double Average();
    ~Student();
};
Student(.cpp) (Здесь реализация методов)
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 "Student.h"
 
Student::Student()//конструктор здесь не используется
{
    
}
void Student::Filling(ui NUM_OF_MARKS)
{
    setlocale(LC_ALL, "Russian");
    number_of_marks = NUM_OF_MARKS;
    mark = new ui[number_of_marks];
    cout << "Введите оценки студента(от 1 до 10): ";
    for (int i(0); i < number_of_marks; i++)
    {
        do
        {
            cin >> mark[i];
        } while (mark[i] < 1 || mark[i]>10);
    }
}
double Student::Average()
{
    double result=0;
    int number;
    for (int i(0); i < number_of_marks; i++)
    {
        result += (double)mark[i];
    }
    return result/number_of_marks;
}
Student::~Student()
{
    delete[]mark;
}
И в main останется выделить память под кол-во студентов и подсчитать общий средний бал.
main(.cpp)
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
#include<iostream>
#include<conio.h>
#include"Student.h"
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int  n, k;
    int all_marks, Overall_average_score;
     all_marks= Overall_average_score=0;
        
    cout << "Введите кол-во студентов: ";
    cin >> n;
    system("cls");
    Student *stud = new Student[n];
    for (int i(0); i < n; i++)
    {
        system("cls");
        cout << "Введите кол-во оценок у "<<i+1<<" студента: ";
        cin >> k;
        
        stud[i].Filling(k);
        Overall_average_score += stud[i].Average()*k;
        all_marks += k;
    }
    system("cls");
    for (int i(0); i < n; i++)
    {
        cout << "Средний бал у " << i + 1 << " студента: " << stud[i].Average()<<endl;
        
    }
    
    delete[] stud;
    cout << endl;
    cout << "Средний бал у всей группы: " << Overall_average_score/all_marks ;
    _getch();
    return 0;
}
Я постарался всё сделать аккуратно, если убрать аккуратность, то код уменьшится раза в два!
0
2 / 2 / 0
Регистрация: 27.03.2017
Сообщений: 14
15.08.2018, 09:11 3
а зачем использовать указатели, а не std::vector<unsigned int> ?
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 25
15.08.2018, 10:01 4
Я сам ещё не закончил обучение и не погружался в STL, написал тот вариант, который казался более выгодный
0
15.08.2018, 10:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2018, 10:01
Помогаю со студенческими работами здесь

Найти средний балл каждого студента и общий средний балл
Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента и...

Вывести на экран фамилию и инициалы, средний балл успеваемости каждого студента.
Дан список студентов. О каждом студенте известно Ф. И. О.,группа и экзаменационные оценки по 3...

Записи: В группе студентов определить средний балл у каждого студента
Примечание: Из текстового файла, где в каждой строке задана информация об одном человеке, прочитать...

Структуры и файлы (посчитать средний балл каждого студента и вывести фамилию студента с наибольшим баллом)
У меня есть структура и файл, в котором находятся фамилии и оценки учащихся, как мне посчитать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru