- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 12
- •Вариант 17
- •Вариант 18
- •Задание 2. Структуры и параметризованные коллекции
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Вариант 21
- •Вариант 24
- •Вариант 25
Вариант 18
Создать редактор текстовых файлов с возможностью сохранения текста в формате HTML. Создать следующую систему меню:
Файл
Загрузить текст
Сохранить как текст
Сохранить как HTML
Выход
При выборе файла для загрузки использовать объект OpenFileDialog. При выборе файла для сохранения использовать объект SaveFlleDialog. Для редактирования текста использовать объект Memo.
При сохранении текста, в формате HTML текст записывать в файл с заменой:
всех пробелов на символы  :;
всех символов перевода строки на символы <BR>;
всех символов < на символы &it:;
всех символов > на символы >:;
всех символов & на символы &:;
всех символов " (двойные кавычки) на символы ":.
Вариант 19
Создать меню с командами Input, Draw, Clear.
При выборе команды Input открывается диалоговое окно, содержащее:
четыре поля для ввода координат двух точек;
группу из трех переключателей (Red, Green, Blue) типа RadioButton;
кнопку типа Button.
При выборе команды Draw в главное окно выводится отрезок прямой выбранного цвета с координатами концов отрезка, заданными в диалоговом окне. При выборе команды Clear отрезок стирается.
Вариант 20
Создать меню с командами Input, Change, Exit.
При выборе команды Exit приложение завершает работу. Команда Change недоступна. В центре главного окна выведен квадрат размером 100х100 пикселов. При выборе команды Input открывается диалоговое окно, содержащее:
два поля ввода типа TextBox с метками Size x, Size у;
группу из двух переключателей (Increase, Decrease) типа RadioButton;
кнопку типа Button.
Обеспечить возможность ввода значений в поля Size x и Size у. Значения интерпретируются как количество пикселов, на которое надо изменить размеры квадрата, выведенного в главное окно (увеличить, или уменьшить в зависимости от положения переключателей).
После ввода значений команда Change становится доступной. При выборе этой команды размеры квадрата увеличиваются или уменьшаются на введенное количество пикселов. Если квадрат выходит за пределы рабочей области окна, выдается сообщение.
Задание 2. Структуры и параметризованные коллекции
Описать структуру (Фамилия,вариант). Создать параметризованную коллекцию для хранения описанной структуры. Вид коллекции выбрать самостоятельно. Написать Windows-приложение для работы с этой коллекцией, позволяющее выполнять:
добавление элемента в коллекцию с клавиатуры;
считывание данных из файла;
запись данных в тот же или указанный файл;
сортировку данных по ключевому полю;
поиск элемента по заданному полю;
вывод всех элементов, удовлетворяющих заданному условию;
удаление элемента из коллекции.
Приложение должно содержать меню н диалоговые окна и предусматривать обработку возможных ошибок пользователя с помощью исключений.
Пояснение :
Необходимо тщательно выбирать ваш класс System.Collections. Использование неправильного типа может привести к ограничению возможностей использования коллекции.
Необходимо ответить на следующие вопросы:
Нужен ли последовательный список, элемент которого обычно удаляется сразу после извлечения его значения?
Если да, то рассмотрите возможность использования класса Queue или универсального класса Queue(Of T), если требуется поведение по принципу "первым поступил — первым обслужен" (FIFO). Рассмотрите возможность использования класса Stack или универсального класса Stack(Of T), если требуется поведение по принципу "последним поступил — первым обслужен" (LIFO).
Если нет, то следует выбирать из остальных типов коллекций.
Нужен ли доступ к элементам в определенном порядке (FIFO, LIFO) или в произвольным порядке?
Класс Queue и универсальный класс Queue(Of T) предоставляют доступ по принципу FIFO.
Класс Stack и универсальный класс Stack(Of T) предоставляют доступ по принципу LIFO.
Универсальный класс LinkedList(Of T) предоставляет последовательный доступ от начала к концу списка или наоборот.
Остальные коллекции предоставляют произвольный доступ.
Необходимо ли иметь доступ к каждому элементу по индексу?
Классы ArrayList и StringCollection, и универсальный класс List(Of T) предоставляют доступ к своим элементам по индексу с отсчетом от нуля.
Классы Hashtable, SortedList, ListDictionary и StringDictionary, а также универсальные классы Dictionary(Of TKey, Tvalue) и SortedDictionary(Of TKey, Tvalue) предоставляют доступ к своим элементам по ключу.
Классы NameObjectCollectionBase и NameValueCollection, а также универсальные классы KeyedCollection(Of TKey, Titem) и SortedList(Of TKey, Tvalue) предоставляют доступ к своим элементам по индексу с отсчетом от нуля или по ключу.
Будет ли каждый элемент содержать только одно значение, сочетание из одного ключа и одного значения или сочетание из одного ключа и нескольких значений?
Одно значение. Можно использовать любую из коллекций, основанных на интерфейсе Ilist или на универсальном интерфейсе Ilist(Of T).
Один ключ и одно значение. Можно использовать любую из коллекций, основанных на интерфейсе Idictionary или на универсальном интерфейсе Idictionary(Of TKey, TValue).
Одно значение с внедренным ключом. Можно использовать универсальный класс KeyedCollection(Of TKey, TItem).
Один ключ и несколько значений. Можно использовать класс NameValueCollection.
Нужна ли возможность отсортировать элементы в порядке, отличном от порядка их поступления?
Класс Hashtable сортирует свои элементы по их хэш-коду.
Клас SortedList и универсальные классы SortedDictionary(Of TKey, Tvalue) и SortedList(Of TKey, Tvalue) сортируют свои элементы по их ключам на основе реализации интерфейса Icomparer и универсального интерфейса Icomparer(Of T).
ArrayList предоставляет метод Sort, который принимает реализацию Icomparer в качестве параметра. Его универсальный аналог — универсальный класс List(Of T) предоставляет метод Sort, который принимает реализацию универсального интерфейса Icomparer(Of T) в качестве параметра.
Необходимы ли быстрый поиск и извлечение данных?
ListDictionary быстрее, чем Hashtable для небольших коллекций (10 элементов или меньше). Универсальный классDictionary(Of TKey, Tvalue) предоставляет более быстрый просмотр, чем универсальный класс SortedDictionary(Of TKey, TValue).
Нужна ли коллекция только для хранения строк?
Классы StringCollection (основанный на IList) и StringDictionary (основанный на IDictionary) находятся в пространстве именSystem.Collections.Specialized.
Кроме того, можно использовать любой из универсальных классов коллекций в пространстве имен System.Collections.Generic как строго типизированную строковую коллекцию, указав класс String в качестве аргумента универсального типа.
Задание 3. Графика в Windows
Вариант 1
Написать Windows-приложение, которое строит график функции (функция на выбор студента) и выделяет красным цветом линии на графике, значения которых выше некой заданной величины (числа-ограничителя).
Создать меню, с командами Chart, Build, Clear, About, Quit.
Команда Quit завершает работу приложения. При выборе команды About открывается окно с информацией о разработчике.
Команда Chart открывает диалоговое окно, содержащее:
список для выбора цвета графика типа TListBox;
поле типа TextBox для ввода числа-ограничителя;
кнопку типа Button.
Обеспечить возможность выбора цвета. После щелчка на кнопке ОК в главном окне приложения строится график выбранной функции. Окно должно содержать заголовок графика, наименование и градацию осей. Изображение должно занимать все окно и масштабироваться при изменении размеров окна.
Команда Clear очищает окно.
Вариант 2
Написать Windows-приложение, которое по заданным в файле исходным данным строит круг в прямоугольнике.
Создать меню с командами Input data, Choose, Quit.
При выборе команды Input data из файла читаются исходные данные (файл сформировать самостоятельно) – стороны прямоугольника.
По команде Choose открывается диалоговое окно, содержащее:
списки для выбора цвета обеих фигур типа TListBox;
кнопку типа Button.
Обеспечить возможность ввода цвета. Окно должно содержать заголовок. Изображение должно занимать все окно и масштабироваться при изменении размеров окна.
Вариант 3
Написать Windows-приложение — графическую иллюстрацию графика квадратного уравнения,
y = a * x*x + c.
Создать меню с командами Open, Root, Show, About, Exit.
Команда Exit завершает работу приложения. Команда About открывает окно с информацией о разработчике. Для выбора файла исходных данных (команда Open) использовать объект OpenFileDialog. Исходные данные для уравнения— массивы значений коэффициентов a, c — сформировать самостоятельно.
При выборе команды Root выводится окно сообщений с корнем уравнения x. При выборе команды Show в главном окне приложения отображается график уравнения. Окно должно содержать заголовок. Изображение должно занимать все окно.