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

В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и количество баллов

19.02.2019, 22:59. Показов 14222. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и количество баллов, разделенные пробелами:
<Фамилия> <Имя> <Количество баллов>
Вывести в другой файл фамилии и имена тех учеников, которые получили больше 80 баллов.

2.: В предыдущей задаче добавить к полученному списку нумерацию, сократить имя до одной буквы и поставить перед фамилией:
П. Иванов
И. Петров
3.
В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и количество баллов, разделенные пробелами:
<Фамилия> <Имя> <Количество баллов>
Вывести в другой файл данные учеников, которые получили больше 80 баллов. Список должен быть отсортирован по убыванию балла. Формат выходных данных:
П. Иванов 98
И. Петров 96


В первой разобрался, со второй и третьей не пойму что делать. помогите пожалуйста для 10 класса. если можно то попроще и работало в dev c++



прога 1.


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
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
using namespace std;
main()
{
  string s, s1;    
  int p, age;  
  ifstream Fin;
  ofstream Fout;
 
  Fin.open ( "1.txt" );
  if ( Fin ) {
    Fout.open ( "11.txt" );
    while ( getline(Fin, s) ) {
      p = s.rfind( " " );
      s1 = s.substr ( p );
      age=atoi (s1.c_str());
      if ( age >80 )
        Fout << s << endl;     
      }
    Fout.close();
    Fin.close();
    cout << "Данные сохранены в файле. ";  
    }
  else  
    cout << "Не удалось открыть файл. ";
  cin.get();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2019, 22:59
Ответы с готовыми решениями:

В файле записаны данные о результатах сдачи
В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и...

Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы
Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию...

Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы
Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию...

Фамилию и имя участника, набравшего максимальное количество баллов.
на вход программы подаются сведения о результах участников,в 1 строке вводится количество...

1
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
20.02.2019, 08:30 2
Цитата Сообщение от алекс213 Посмотреть сообщение
В предыдущей задаче добавить к полученному списку нумерацию, сократить имя до одной буквы и поставить перед фамилией:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ifstream inp("input.txt");
ofstream out("output.txt");
 
int i = 1;
 
while (inp.peek() != EOF) {
  string line;
  getline(inp, line);
 
  stringstream ss(line);
 
  string surname;
  ss >> surname;
  string name;
  ss >> name;
  ss >> line;
 
  if (atoi(line.c_str()) > 80)
    out << i++ << ". " << name[0] << ". " << surname << '\n';
}
Цитата Сообщение от алекс213 Посмотреть сообщение
Вывести в другой файл данные учеников, которые получили больше 80 баллов. Список должен быть отсортирован по убыванию балла. Формат выходных данных:
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
struct Man {
  string surname;
  string name;
  int cnt;
 
  bool operator<(const Man& a) { return cnt > a.cnt; }
};
 
// Где-то в main
 
ifstream inp("input.txt");
 
vector<Man> res;
 
while (inp.peek() != EOF) {
  string line;
  getline(inp, line);
 
  stringstream ss(line);
 
  Man temp;
 
  ss >> temp.surname;
  ss >> temp.name;
  ss >> line;
  temp.cnt = atoi(line.c_str());
 
  if (temp.cnt > 80)
    res.push_back(temp);
}
 
inp.close();
 
sort(res.begin(), res.end());
 
ofstream out("output.txt");
 
for (size_t i = 0; i < res.size(); ++i)
  out << i + 1 << ". " << res[i].name[0] << ". " << res[i].surname << ' '
      << res[i].cnt << '\n';
 
out.close();
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2019, 08:30
Помогаю со студенческими работами здесь

Вывести на экран фамилию и имя участника набравшего максимальное количество баллов
задача 6. на городской олимпиаде по информатике участникам было предложено выполнить 3 задания,...

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

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

Даны два текста. Один из фамилий, а другой из дат рождения. Сформировать новый текст, в котором каждая строка содержит фамилию и дату
Даны два текста. Один из фамилий, а другой из соответст-вующих фамилиям дат рождения. Сформировать...


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

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

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