Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи на курсовой проект.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
144 Кб
Скачать
☆

Постановка задачи №14

Пусть требуется обеспечить хранению и обработку сведений о товарах на складе.

Задание

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

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

Постановка задачи №15

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

  • В одной клетке размещается только одна фигура.

  • В соседних по вертикали или горизонтали клетках не могут быть фигуры одного цвета или одной формы.

Задание

Определите класс для представления геометрической фигуры, которая характеризуется формой (наименованием) и цветом. Определите класс для представления и обработки игрового поля. В частности, определите методы, обеспечивающие размещение и удаление фигур с проверкой корректности этих операций.

Для испытаний спроектированных классов определите в исходном файле некоторую последовательность гипотетических «ходов», заполняющих или модифицирующих клеточное пространство.

Постановка задачи №16

Разработать реализацию представления игрового поля для игры в крестики-нолики.

Задание

Разработайте представление игрового поля ограниченного размера для игры в крестики-нолики и определите методы для помещения крестика (нолика) в свободную ячейку. С помещением крестика или нолика должен производиться контроль ситуации «завершение игры». Игра считается завершенной, если построен горизонтальный, вертикальный или диагональный ряд из заданного числа (например, 5) стоящих подряд крестиков (ноликов). Игра считается завершенной, если на игровом поле больше нет свободных ячеек.

Некоторая тестовая последовательность ходов задается в исходном файле.

Постановка задачи №17

Входной файл содержит себя текст программы на языке C#. Разработайте программу, составляющую лексикографически упорядоченный список встречающихся в файле идентификаторов, не являющихся служебными словами C#.

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

Задание

Используйте для хранения списка идентификаторов линейный однонаправленный список. В качестве результатов обработки необходимо вывести в выходной файл сформированный список. Дополнительно вывести те идентификаторы, которые встречаются в тексте ровно один раз (скорей всего, они являются либо необъявленными переменными, либо объявленными, но неиспользуемыми в программе).

Постановка задачи №18

Задание предполагает разработку контейнерного класса на основе различных дисциплин хранения объектов-элементов в памяти.

Задание

Напишите обобщенную версию класса Queue для хранения данных разных типов и использующую генерацию исключений при возникновении ошибок в работе с очередью (ошибка инициализации, ошибка в связи попыткой занесения данного в заполненную очередь, ошибка в связи с извлечением данного из пустой очереди).

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

Модернизируйте проект таким образом, чтобы имелась возможность использовать различные способы резервирования памяти для хранения данных в очереди (например, элементы очереди можно хранить не только в массиве, но и в списке). Постарайтесь учесть то обстоятельство, что, независимо от способа хранения данных в памяти, интерфейс очереди должен быть неизменным. Это означает, что пользователь должен иметь возможность ОДИНАКОВО работать и с той, и с другой версией класса. Подумайте над тем, не следует ли связать эти классы между собой.

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