Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 6 Windows приложения _new.doc
Скачиваний:
19
Добавлен:
29.08.2019
Размер:
182.78 Кб
Скачать

Вариант 18

Создать редактор текстовых файлов с возможностью сохранения текста в фор­мате HTML. Создать следующую систему меню:

  • Файл

  • Загрузить текст

  • Сохранить как текст

  • Сохранить как HTML

  • Выход

При выборе файла для загрузки использовать объект OpenFileDialog. При выборе файла для сохранения использовать объект SaveFlleDialog. Для редактирования текста использовать объект Memo.

При сохранении текста, в формате HTML текст записывать в файл с заменой:

  • всех пробелов на символы &nbsp:;

  • всех символов перевода строки на символы <BR>;

  • всех символов < на символы &it:;

  • всех символов > на символы &gt:;

  • всех символов & на символы &amp:;

  • всех символов " (двойные кавычки) на символы &quot:.

Вариант 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 в главном окне приложения отображается график уравнения. Окно должно содержать заголовок. Изображение должно занимать все окно.