0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 19
1

Вывести информацию о худшем по оценкам предмету

18.11.2016, 21:22. Показов 1094. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Каждый элемент входного файла имеет структуру <Фамилия>, <номер групы>, <оц1>, <оц2>, <оц3>. Фамилия должна быть не больше 12 символов, номер группы - целое число от 101 до 116, каждая оценка это 2,3,4 или 5. Первая оценка это по математике, вторая по физике, третья по химии. Нужно написать программку,которая выводит на окно информацию о том, успеваемость какого предмета "худшая" по оценкам
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2016, 21:22
Ответы с готовыми решениями:

Программа, которая сортирует список либо по среднему баллу, либо по алфавиту, либо по оценкам по заданному предмету
Список студенческой группы указан в виде файла записей. Каждая строка записи содержит фамилию...

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

Вывести фамилии студентов, балл по определенному предмету которых превышает средний балл по предмету на 0.5
Условие предыдущей задачи сохраняется. Вывести фамилии студентов, балл по определенному предмету...

Записать в двумерный массив информацию об оценках каждого из N студентов группы по тому или иному предмету
Помогите пожалуйста код написать Если можно то с комментариями ...

11
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
19.11.2016, 12:07 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
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm> 
 
using namespace std;
struct Scores {
    string surname;
    int group;
    int math;
    int phys;
    int chem;
};
 
 
int main()
{
setlocale(LC_ALL, "Russian");
 
  string line;
  vector<Scores> records;
  Scores tmp;
  ifstream myfile ("d:\\scores.txt");
  if (myfile.is_open())
  {
    while (myfile >> tmp.surname >> tmp.group >> tmp.math>> tmp.phys >> tmp.chem) // Читаем поля если файл не закончился.
    records.push_back(tmp);//записываем файл в вектор оценок <Scores> records
  
    myfile.close();
  }
  else cout << "Unable to open file"<<endl; 
 
 sort( records.begin(), records.end(),     //сортируем по оценкам по математике
              []( const Scores &left, const Scores &right )
                 { return ( left.math > right.math ); } );
 
for (int i = 0, size = records.size(); i < size; ++i)
    {
        cout << "Student # " << i + 1 <<endl;
        cout << "\surname: " << records[i].surname <<endl;
        cout << "\group: " << records[i].group <<endl;
        cout << "\math: " << records[i].math <<endl;
        cout << "\phys: " << records[i].phys <<endl;
        cout << "\chem: " << records[i].chem <<endl;
        cout << endl;
    }
system("pause");
return 0;
}
файл такой:
Иванов 101 3 4 5
Петров 102 2 3 4
Сидоров 103 3 4 2
Цветков 104 5 4 3
0
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 19
19.11.2016, 19:11  [ТС] 3
Цитата Сообщение от afront Посмотреть сообщение
просто отсортировал и распечатал
а почему сортировка идет именно по математике? или это без разницы?
Нужно же что б проверились все оценки,и показало по какому предмету худшие

Добавлено через 4 минуты
Пишет ""Unable to open file"
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
19.11.2016, 19:24 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
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm> 
 
using namespace std;
struct Scores {
    string surname;
    int group;
    int math;
    int phys;
    int chem;
};
 
 
int main()
{
setlocale(LC_ALL, "Russian");
 
  string line;
  vector<Scores> records;
  Scores tmp;
  ifstream myfile ("d:\\scores.txt");
  if (myfile.is_open())
  {
    while (myfile >> tmp.surname >> tmp.group >> tmp.math>> tmp.phys >> tmp.chem) // Читаем поля если файл не закончился.
    records.push_back(tmp);//записываем файл в вектор оценок <Scores> records
  
    myfile.close();
 
 
 sort( records.begin(), records.end(),     //сортируем по оценкам по математике
              []( const Scores &left, const Scores &right )
                 { return ( left.math < right.math ); } );
        cout << "math" <<endl;
        cout << "surname: " << records[0].surname <<endl;
        cout << "group: " << records[0].group <<endl;
        cout << "math: " << records[0].math <<endl;
        cout << endl;
sort( records.begin(), records.end(),     //сортируем по оценкам по математике
              []( const Scores &left, const Scores &right )
                 { return ( left.phys < right.phys ); } );
        cout << "phys" <<endl;
        cout << "surname: " << records[0].surname <<endl;
        cout << "group: " << records[0].group <<endl;
        cout << "phys: " << records[0].phys <<endl;
        cout << endl;  
sort( records.begin(), records.end(),     //сортируем по оценкам по математике
              []( const Scores &left, const Scores &right )
                 { return ( left.chem < right.chem ); } );
        cout << "chem" <<endl;
        cout << "surname: " << records[0].surname <<endl;
        cout << "group: " << records[0].group <<endl;
        cout << "chem: " << records[0].chem <<endl;
        cout << endl;
 }
  else cout << "Unable to open file"<<endl; 
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 19
19.11.2016, 19:33  [ТС] 5
Цитата Сообщение от afront Посмотреть сообщение
по каждому предмету
Cпасибо! Более менее понятно, но всеравно при компиляции пишет "Unable to open file", файлы никакие не создаются. И про библиотеки #include <sstream>
#include <vector>
#include <algorithm> на "занятиях" не говорили. Довольно странно
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
19.11.2016, 19:46 6
"Unable to open file" может появляться только при выполнении программы а не при компиляции
в программе предполагается что файл должен лежать в корне диска D
25 строчка
C++
1
  ifstream myfile ("d:\\scores.txt");
0
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 19
19.11.2016, 19:58  [ТС] 7
Цитата Сообщение от afront Посмотреть сообщение
файл должен лежать в корне диска D
25 строчка
да,я это понимаю, но его там не нашла

Добавлено через 1 минуту
а почему тогда программа не выполняется?
0
Модератор
Эксперт С++
13498 / 10752 / 6407
Регистрация: 18.12.2011
Сообщений: 28,692
19.11.2016, 20:17 8
Цитата Сообщение от Diskanora Посмотреть сообщение
но его там не нашла
Естественно, раз Вы его туда не положили.
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
19.11.2016, 20:48 9
#include <vector> - можно вектор заменить массивом и это не понадобиться
#include <algorithm> - сортировку тоже можно сделать в виде своей функции и это тоже не понадобится
0
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 19
19.11.2016, 22:27  [ТС] 10
Цитата Сообщение от zss Посмотреть сообщение
Естественно, раз Вы его туда не положили.
Уже положила. Пишет то же самое.
0
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 19
19.11.2016, 22:37  [ТС] 11
Цитата Сообщение от afront Посмотреть сообщение
#include <vector> - можно вектор заменить массивом и это не понадобиться
#include <algorithm> - сортировку тоже можно сделать в виде своей функции и это тоже не понадобится

теперь выдает вот такое:
Миниатюры
Вывести информацию о худшем по оценкам предмету  
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
04.12.2016, 04:57 12
Diskanora, хз, что тебе понятно, но оба листинга компилятся нормально (msvc14).
0
04.12.2016, 04:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2016, 04:57
Помогаю со студенческими работами здесь

Консоль. Запросить информацию у пользователя и вывести информацию с возрастным периодом
На консоле вывод: Введите ваше имя .... Ведите ваш Возрачть .... Введите ваш пол ....

По выбору студента и предмету вывести оценку
Помогите пожалуйста мне нужно что бы я выбрав любого студента (из comboBox)и выбрав предмет он мне...

Посчитать средние балы по предмету и вывести на лист
Добрый день. Есть таблицв по 10 студентам и 6 предметам. Необходимо посчитать средние балы по...

Записи. Вывести фамилий не аттестованных хотя бы по 1 предмету.
Помогите пожалуйста. Даны сведения о результатах аттестаций(ФИО, 3 предмета, баллы по каждому...


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

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

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