C/C++
Помогите написать программу на с++
Ведомость студентов, сдававших сессию, содержит ФИО и оценки по четырем предметам. Вывести список студентов, сдавших сессию со средним баллом больше 7.
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <numeric>
using namespace std;
class Student {
public:
Student(const string& name) : name(name) {}
void add(short score) {
box.push_back(score);
}
void add(const vector<short>& box) {
this->box = box;
}
double average()const {
return accumulate(box.begin(), box.end(), 0.) / box.size();
}
bool more(double score)const {
return average() > score;
}
string get_name()const {
return name;
}
private:
string name;
vector<short> box;
friend bool operator<(const Student& a, const Student& b) {
return a.name < b.name;
}
};
class Sheet {
public:
void add(const Student& s) {
box.push_back(s);
}
void above(double score)const {
auto n = 0U;
for (const auto& s : box) {
if (s.more(score)) {
cout << setw(3) << ++n << ". " << s.get_name() << '\n';
}
}
}
void streamline() {
sort(box.begin(), box.end());
}
private:
vector<Student> box;
};
Student input(const string& name, const size_t n) {
Student s(name);
cout << name << ": ";
vector<short> box(n);
for (auto& x : box) cin >> x;
s.add(box);
cin.ignore(cin.rdbuf()->in_avail());
system("cls");
return s;
}
void load(Sheet& sheet, const size_t length) {
string group[] = {
"Иванова Анна Гавриловна",
"Миронова Светлана Алексеевна",
"Сафонова Виолетта Захаровна",
"Данченко Ирина Максимовна",
"Егоров Василий Афанасьевич",
"Захарова Серафима Ильинична",
"Зотов Олег Игоревич",
"Удальцова Вера Павловна",
"Семёнов Игорь Николаевич",
"Тихонова Анастасия Валерьевна",
"Пераков Марк Фомич",
"Соловьёва Галина Антоновна"
};
for (const auto& person : group) {
sheet.add(input(person, length));
}
}
int main() {
system("chcp 1251 > nul");
const auto length = 4U;
Sheet sheet;
load(sheet, length);
sheet.streamline();
const auto average = 7.;
sheet.above(average);
system("pause > nul");
}
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <numeric>
using namespace std;
class Student {
public:
Student(const string& name) : name(name) {}
void add(short score) {
box.push_back(score);
}
void add(const vector<short>& box) {
this->box = box;
}
double average()const {
return accumulate(box.begin(), box.end(), 0.) / box.size();
}
bool more(double score)const {
return average() > score;
}
string get_name()const {
return name;
}
private:
string name;
vector<short> box;
friend bool operator<(const Student& a, const Student& b) {
return a.name < b.name;
}
};
class Sheet {
public:
void add(const Student& s) {
box.push_back(s);
}
void above(double score)const {
auto n = 0U;
for (const auto& s : box) {
if (s.more(score)) {
cout << setw(3) << ++n << ". " << s.get_name() << '\n';
}
}
}
void streamline() {
sort(box.begin(), box.end());
}
private:
vector<Student> box;
};
Student input(const string& name, const size_t n) {
Student s(name);
cout << name << ": ";
vector<short> box(n);
for (auto& x : box) cin >> x;
s.add(box);
cin.ignore(cin.rdbuf()->in_avail());
system("cls");
return s;
}
void load(Sheet& sheet, const size_t length) {
string group[] = {
"Иванова Анна Гавриловна",
"Миронова Светлана Алексеевна",
"Сафонова Виолетта Захаровна",
"Данченко Ирина Максимовна",
"Егоров Василий Афанасьевич",
"Захарова Серафима Ильинична",
"Зотов Олег Игоревич",
"Удальцова Вера Павловна",
"Семёнов Игорь Николаевич",
"Тихонова Анастасия Валерьевна",
"Пераков Марк Фомич",
"Соловьёва Галина Антоновна"
};
for (const auto& person : group) {
sheet.add(input(person, length));
}
}
int main() {
system("chcp 1251 > nul");
const auto length = 4U;
Sheet sheet;
load(sheet, length);
sheet.streamline();
const auto average = 7.;
sheet.above(average);
system("pause > nul");
}
Андрей Андрей
а через двумерный массив такое можно провернуть или костыль?
Создай структуру для каждого, запихни ее в vector и посчитай средний балл для кажлого в цикле
Едил Шуленбаев
я додик я не понимаю
Похожие вопросы
- Помогите написать программу на С
- Помогите написать программу на C++
- Помогите написать программу на с++
- Помогите написать программу на с++
- Помогите написать программу
- Помогите написать программу на С++
- С++. Структуры(struct). Помогите написать программу
- Помогите написать программу на С++
- Пожалуйста, помогите написать программу на С++
- Помогите написать программу на СИ