
Постановка задачи №19
Пусть имеется некоторое количество рабочих мест и некоторое количество работников (не обязательно равное количеству рабочих мест). Известна производительность труда каждого из работников на каждом рабочем месте. Эта производительность задается функцией, которая для заданных работника и рабочего места вычисляет вещественное число, которое, собственно и характеризует производительность.
Имеется некоторая схема назначений работников на рабочие места. Требуется вычислить суммарную производительность данного набора назначений.
Задание
Продумайте схему организации кода, при которой, не изменяя алгоритмическую часть реализации, можно было бы получить искомое решения для других функций производительности.
Для хранения информации о работах и назначенных сотрудниках используйте линейный однонаправленный список.
Реализуйте методы, позволяющие отменить работу, отменить или задать назначение, вычислить суммарную производительность.
Проиллюстрируйте работоспособность спроектированных методов.
Постановка задачи №20
Написать информационную систему по учёту автобусных рейсов. Информационная система должна позволять:
Вести учет автотранспорта (преимущественно автобусного). В свою очередь следует:
учитывать время отправления каждого автобуса;
учитывать типы автобусов;
привязывать автотранспорт (автобусы) к рейсам;
Вести учет рейсов. В свою очередь следует:
учитывать пути, составляющие рейс;
Вести учет остановочных пунктов
Система должна обеспечить выполнение этих возможностей путем реализации алгоритмов удаления, редактирования и добавления новой информации.
При этом при удалении следует обеспечить целостность данных и выводить предупреждение пользователю в тех случаях, когда удаление информации невозможно в результате наличия связей с другими сущностями.
При добавлении необходимо разработать механизм, реализующий проверку на уникальность, который в случаях, когда необходимо соблюдать уникальность, будет предупреждать пользователя о недопустимости таких действий, а также будет препятствовать добавлению такой информации. Также необходимо обеспечить проверку на пустоту и ограничивать действия пользователя в тех случаях, когда он пытается ввести пустые значения.
При редактировании следует аналогичным образом проверять редактируемые значения проверять на уникальность.
21. Разработать графический редактор. Аналог Windows-программы - «Paint».
22. Разработать программу просмотра графических файлов. Некий аналог Windows-приложения – «ACDS» с реализацией основных функций, таких как «зумирование», выбор изображения на жестком диске, просмотр изображений, множественный просмотр и просмотр в режиме «Слайд-шоу».
23. Разработать программу «файловый менеджер» - аналог программы «Total commander» с возможностью создавать множество закладок, каждая из которых будет работать в отдельном потоке.
24. Реализовать игру ”Puzzle”, которая будет обеспечивать пользователя следующими возможностями:
А) Возможность загружать новые изображения;
Б) Редактировать количество кусков, на которые будет разбита картинка;
В) Сохранять промежуточные результаты для последующего восстановления.
Так же необходимо реализовать галерею изображений, которые добавлял пользователь. Это может быть как удачно сложенная картинка, так и все вновь загруженные или которые юзеру не удалось закончить для следующих попыток. В галерее должна быть возможность добавления новых изображений и удаление загруженных ранее.
25. Необходимо реализовать программу, помогающую пользователя изучать иностранные слова. (Аналог программы Tutor, входящий в пакет ПО Lingvo). Программа постоянно «висит в трее». Пользователь, например читая книгу, имеет возможность создавать карточки(набор слов, объединенных в одну сущность), в которые добавляет слова, при этом указывая их перевод. При активации программы, она случайным образом выбирает одну из неизученных карточек и в случайном порядке спрашивает по одному слову, требуя от юзера правильно введенного перевода. После каждого ввода перевода слова, программа сообщает пользователю, правильность его ответа. Так же у юзера должны быть следующие возможности:
А) Добавлять и удалять карточки;
Б) Добавлять в любую из карточек новые слова;
В) Указывать количество раз успешного прохождения карточки (успешное прохождение карточки считается при даче правильных ответов на все слова в карточке), после чего она будет считаться изученной и больше не попадаться пользователя при дальнейших активациях программы;
Г) Задавать интервал, после которого будет активироваться программа.
26. Реализовать программу, помогающую изучать иностранные слова. При запуске программы она запускается и «висит в трее». После ее активации, на экране появляется окно, в котором отображается список слов с их переводом. Юзер читает и запоминает их. После нажатия на кнопку далее, порядок слов изменяется в случайном порядке, а так же их перевод. Пользователь выбирает для каждого слова его эквивалент, после чего эта пара пропадает, и так до последнего слова. После того, как пользователь отметит все слова, программа выдает ему результаты с отображением неверных совпадений, если такие имеются.
Пользователь так же имеет следующие возможности:
А) Загружать список слов с их переводом (например, в формате Excel, либо в каком-нибудь другом формате на ваше усмотрение);
Б) Указать тематику загруженных слов;
В) Задать интервал для программы, через который она будет активироваться;
Г) Выбрать направление перевода слов;
Д) Указать количество отображаемых слов за раз;
Е) Выбрать тематику, на которую он хочет обучаться.
Так же необходимо реализовать окно результатов, в котором будет отображаться на какую тематику, когда и сколько раз он тренировался, а так же его успехи в том или ином направлении. (Павлий, Бесараб 6.04.52.14.01)
27. Реализовать графический редактор XML. Программа должна уметь отображать xml-файлы, заданного формата разработчиком, в виде дерева. Так же должна иметь следующие возможности:
А) Редактировать вершины и атрибуты документа;
Б) Удалять и добавлять новые вершины;
В) Загружать и сохранять измененные файлы.
28. Разработать игру «Змейка», используя механизм многопоточности для прорисовки фигур, чтобы не блокировать экран.
29. Разработать игру «Пин-понг» для игры двух пользователей на одном компьютере, с сохранением статистики игр.
30. Разработать игру «Тетрис», используя механизм многопоточности для прорисовки фигур, чтобы не блокировать экран.
31. Разработать игру «Спасение галактики» (некий простой аналог игры «Galaxy»), в которой пользователь будет управлять «кораблем», стреляя по препятствиям, и собирая улучшения, выпадающие из них. (Балюк, Карпенко, Алябьева 2гр.2пд/гр).
32. Разработать векторный редактор графических файлов, который будет иметь возможность открывать файлы, редактировать, добавляя на изображения примитивы, такие как: круг, линия, квадрат, добавлять на изображение текст, а также добавлять на изображение другое изображение, с возможностью их сохранения.
33. Разработать компонент «Построитель диаграмм». Пользователь имеет возможность загрузить набор данных (массив точек), после чего может выбрать вариант представления этих данных в виде диаграммы и посмотреть результаты. Программа должна уметь отображать наборы данных в виде линейной диаграммы, гистограммы и круговой, а так же должна быть разработана в виде отдельного «контрола», для возможности встраивания в среду разработки Visual Studio и дальнейшего использования.
34. Разработать программу для сравнительного графического анализа алгоритмов сортировки и поиска (реализацию алгоритмов сортировки и поиска можно найти в интернете в большом количестве). Задача разработчика сгенерировать массив, над которым будут производиться операции сортировки и поиска, и отображать в графическом виде процесс работы алгоритмов для сравнения. Результаты будут выглядеть в виде наборов разноцветных «столбиков» для каждого алгоритма, в которых максимальному по размеру элементу в массиве будет соответствовать самый высокий «столбик». При запуске теста, который должен запускаться в отдельных потоках, чтоб не «лочить» главное окно приложения, набор «столбиков» будет изменяться в зависимости от работы алгоритма, подсвечивая различными цветами обрабатываемые элементы. После завершения работы всех алгоритмов будет выведено для сравнения результирующее время, а также количество проходов по элементам массива.
35. Реализовать редактор файлов RTF-формата. Предусмотреть выполнение всех основных операций редактирования (копирование, вставка, удаление и т.д.).