Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

Язык программирования C#

  1. В начало
  2. Курсы
  3. Весенний семестр
  4. Магистратура
  5. Язык программирования C#
  6. Объектно-ориентированное программирование
  7. Лабораторная работа №13. Исключения

Лабораторная работа №13. Исключения

Требуемые условия завершения
Открыто с: четверг, 23 мая 2019, 11:55
Срок сдачи: четверг, 23 мая 2019, 13:30

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

Часть 1 (2 балла)

  1. Дан файл, каждая строка которого имеет следующий формат: прописная_латинская_буква список_вещественных_чисел, где элементы списка чисел разделяются пробелами. Реализуйте класс LimitedStringLoader, предназначенный для загрузки файла в список строк. Класс должен иметь конструктор с двумя строковыми параметрами prohibited и erroneous и целочисленным параметром proLimit, инициализирующими соответствующие поля. В случае, если символы в параметрах prohibited и erroneus конструктора LimitedStringLoader имеют непустое перечение, должно генерироваться исключение InconsistentLimits, содержащее информацию о символах в пересечении.

  2. Добавьте в класс поле для списка строк типа List<String> (со свойством на чтение) и метод Load(filename:string), выполняющий загрузку списка и его сохранение в поле. Если файл отсутствует, должно генерироваться исключение FileNotFoundException. Загрузка должна выполняться в соответствии с ограничениями: если строка начинается с буквы, содержащейся в строке prohibited, то строка пропускается, если с буквы, содержащейся в строке erroneous, — то генерируется исключение WrongStartingSymbol, содержащее номер строки файла, в которой произошла ошибка, и её первый символ. Если строка начинается не с прописной латинской буквы, то генерируется исключение IncorrectString, содержащее номер строки файла. Если количество пропущенных строк превышает значение параметра конструктора proLimit, то чтение файла завершается с генерацией исключения TooManyProhibitedLines. В случае генерации любого исключения список должен считаться незагруженным (даже частично).

  3. Если пользователь пытается обратиться к загруженному списку (через свойство) до вызова метода Load, то должно генерироваться исключение DataNotLoaded.

Часть 2 (1 балл)

  1. Реализуйте в основной программе следующую логику:
    • Пользователь вводит ограничения для загрузки. Если они некорректные, то программа завершается с выводом соответствующего сообщения.
    • Пользователь вводит имя файла.
    • Выполняется загрузка строк.
    • Пользователю выводится количество загруженных строк.
  2. Организуйте обработку исключений по следующим принципам:
    • Ошибки, связанные с отсутствием файла, должны приводить к запросу у пользователя имени файла и повторной попытке загрузки строк.
    • Ошибки, связанные с некорректным содержимым файла, должны приводить к завершению программы с выводом соответствующего сообщения и рекомендацией пользователю по исправлению файла.
    • Все остальные ошибки должны приводить к завершению работы программы с выводом соответствующего сообщения.

◄ Домашнее задание №12
Индивидуальное задание (Игорь Фатеев) ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

          • Научные вычисления - 2025

          • ИАБолДанн

          • История инф

          • Data Scince и АД

          • МО (маг ИИ)

          • NLP

          • M1. Artificial Intelligence

          • CSm2Research

          • Мат. модели в МСС

          • НИС

          • Свертки

          • Язык программирования C#

            • Общее

            • Основы языка C#

            • Объектно-ориентированное программирование

              • ЗаданиеЛабораторная работа №9. Классы и объекты

              • ЗаданиеДомашнее задание №8

              • ЗаданиеЛабораторная работа №10

              • ЗаданиеДомашнее задание №9. Интерфейсы, сортировка с комп...

              • ЗаданиеЛабораторная работа №11. Наследование, виртуальные...

              • ЗаданиеДомашнее задание № 10. Крестики-нолики

              • ЗаданиеЛабораторная работа №12. Решение уравнения

              • ЗаданиеДомашнее задание №12

              • ЗаданиеЛабораторная работа №13. Исключения

            • Индивидуальное задание

        • Аспирантура

        • Вечернее отделение

        • Другое

        • ОИИ

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
Язык программирования C#
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика