Семинар 1 (02.09.2016)

Введение

Рассмотрим следующую задачу. Деканат каждый день присылает отчёт по прошедшим занятиям в текстовом файле, имеющим следующий формат: каждая строка содержит следующую информацию: <предмет>:<номер группы>:<фамилия>:<оценка>:<присутствие>

Например, файл Report_2015_09_04.txt:

OOP_seminar:12345:Ivanov:Good:attend
OOP_seminar:12345:Petrov:None:absent
OOP_seminar:54321:Smith:Exсellent:attend

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

Задача

Необходимо написать программу, которая делает следующее:

При этом:

Требования к реализации

Дополнительная информация

Сигнатура функций filter и extractField может быть следующей:

void filter(std::string pattern, std::istream & in, std::ostream & out);
void extractField(int field, std::string sep, std::istream & in, std::ostream & out);

Для реализации промежуточного буфера при работе с потоками можно использовать класс std::stringstream.

Ссылки

При выполнении задания может оказаться полезным почитать материал первого семинара прошлого года

Материалы курса ООП

Документация по языку C++