Лабораторная работа
Время выполнения
30-90 минут
Уровень сложности
Средний
Цели
- улучшить навыки учащегося в работе с файлами (чтение);
- совершенствование способностей учащегося в определении и использовании выбранных пользователем исключений и словарей.
Сценарий
Профессор Джекилл проводит занятия со студентами и регулярно делает заметки в текстовом файле. Каждая строка файла содержит 3 элемента: имя ученика, фамилия ученика и балл, который ученик получил во время определенных занятий.
Элементы разделены пробелами. Каждый студент может появляться в файле профессора Джекилла несколько раз.
Файл может выглядеть следующим образом:
John Smith 5
Anna Boleyn 4.5
John Smith 2
Anna Boleyn 11
Andrew Cox 1.5
samplefile.txt
Ваша задача - написать программу, которая:
- запрашивает у пользователя проф. Джекилла имя файла;
- читает содержимое файла и подсчитывает сумму полученных баллов для каждого учащегося;
- печатает простой (но отсортированный) отчет, как этот:
Andrew Cox 1.5
Anna Boleyn 15.5
John Smith 7.0
output
Примечание:
- Ваша программа должна быть полностью защищена от всех возможных сбоев: отсутствия файла, пустого файла или любых сбоев входных данных; обнаружение любой ошибки данных должно привести к немедленному завершению программы, а ошибка должна быть представлена пользователю;
- реализовать и использовать собственную иерархию исключений - мы представили ее в редакторе; второе исключение должно быть вызвано, когда обнаружена некорректная строка, и третье, если исходный файл существует, но пуст.
Совет: Используйте словарь для хранения данных учеников.