Требования к выполнению лабораторной работы



  1. Разработать приложение Windows Form, которое содержит на форме меню, набор RadioButton, CheckBox, кнопки, назначение которых определяется вариантом задания. Кроме этих элементов управления на форме могут располагаться другие элементы, необходимые для решения задания.
  2. В лабораторной работе необходимо разработать класс, который инкапсулирует инициализацию, обработку массива (два метода, выполняющие два задания по обработке массива) и запись его в бинарный файл.
  3. При выполнении задания необходимо использовать язык запросов LINQ, а также методы расширения LINQ.
  4.  Источниками ввода массива являются клавиатура, текстовый файл, бинарный файл. При вводе должен быть предусмотрен контроль правильности ввода.

 


Пункты меню Radio Button Check Box Button Тип эл. Задание 1 Задание 2
1 выбор задания, очистка, выход Источники ввода текст заданий Сохранить Обработка Byte Подсчитать количество элементов, больших и меньших заданного пользователем. Если пользователь не задан значения, то сравнение производить с нулем. Определить четные элементы массива
2 источник ввода, обработка выход задания о программе Сохранить Очистить Int32 Подсчитать количество положительных и отрицательных элементов   Поставить в обратном порядке элементы, начиная с первого отрицательного
3 сохранить очистить о программе выход Задания, Источники ввода Сортировать по убыванию Обработка UInt16 Подсчитать количество элементов, лежащих в диапазоне [а, б]. Если вторая граница (б) не задана, то б=10. Отсортировать элементы в массиве, начиная с первого четного
4 обработка (задан.1,задан.2), очистка выход Источники ввода текст заданий сохранить UInt32 Сумму элементов, больших заданного пользователем значения и равных ему. Если значение не задано, то принять его равным 5.   Определить четные элементы и отсортировать их в нисходящем порядке
5 обработка сохранить выход Источники ввода, задания о программе очистить Int16 Найти максимальный отрицательный и минимальный положительный элементы Сортировать элементы по убыванию  
6 Источник ввода, Очистить Выход задания сохранять при завершении Обработка, О програм- ме Int32 Найти первый отрицательный и первый положительный элементы   Элементы, большие заданного числа. Если число не задано, то сравнение производить с 10  
7 Выбор задания, сохранить выход Источник ввода О программе Обработка, Очистка float Найти первый элемент, меньший заданного значения. Если значение не задано, то меньший 5. Определить отрицательные элементы массива и вывести их в обратном порядке
8 Выбор задания, обработка выход Источник ввода сохранять при завершении Очистить, о програм- ме Int16 Определить, есть ли в массиве отрицательные элементы и элементы, равные нулю. Определить отрицательные нечетные элементы массива  
9 обработка сохранить о программе выход Источники ввода, задания Текст заданий очистить Int32 Определить, все ли элементы больше заданного пользователем значения (или большие 10, если пользователь не ввел значения)   Определить четные положительные элементы массива  
10 обработка (задан.1,задан.2), сохранить выход Источники ввода Включая диапазон очистить Byte Определить, есть ли в массиве нечетные элементы и нулевые элементы   Определить элементы, значения которых находятся в диапазоне [a,b]. если диапазон не задан, принять его [0,10].
11 выбор задания, очистка, выход Источники ввода текст заданий Сохранить Обработка UInt16 Определить, все ли элементы массива являются четными и все ли положительными Определить все нечетные элементы массива, меньшие заданного числа. Если число не задано, то меньшие 11.
12 источник ввода, обработка выход задания о программе Сохранить Очистить Int32 Найти последний четный и последний нечетный элементы   Определить все положительные элементы, большие заданного значения. Если значение не задано, то большие 10.
13 сохранить очистить о программе выход Задания, Источники ввода Текст заданий Обработка float Найти первый и последний отрицательные элементы Определить все четные элементы, меньшие заданного значения. Если значение не задано, то меньшие 10.  
14 обработка (задан.1,задан.2), очистка выход Источники ввода о программе сохранить Byte Найти первый и последний элементы, меньшие значения (меньшие 10, если значение не задано)   Определить все положительные элементы массива и вывести их в обратном порядке  
15 обработка сохранить выход Источники ввода, задания о программе очистить float Подсчитать среднее значение отрицательных и положительных элементов   Определить все элементы, кратные заданному числу. Если число не задано, то кратных 10.
16 Источник ввода, Очистить выход Задания Текст заданий Обработка, О програм- ме Int32 Подсчитать среднее значение четных и нечетных элементов   Определить все положительные элементы, меньшие заданного числа. Если число не задано, то меньших 5.
17 Выбор задания, сохранить выход Источник ввода Сортировка по убыванию Обработка, Очистка UInt32 Подсчитать среднее значение элементов, больших и меньших заданного значения (сравнение производить с 10, если значение не задано) Определить все нечетные элементы массива и вывести их отсортированными
18 Выбор задания, обработка выход Источник ввода Текст заданий Очистить, о програм- ме UInt16 Определить, все ли элементы кратны заданному числу (или 5, если число не задано) Определить все четные элементы массива и поставить их в обратном порядке
19 обработка сохранить о программе выход Источники ввода, задания Включая диапазон очистить Byte Определить сумму элементов, значения которых находятся в диапазоне [a,b]. Если диапазон не задан, то принять его [1,15]. Определить элементы, находящиеся после минимального элемента
20 обработка (задан.1,задан.2), сохранить выход Источники ввода О программе очистить Int16 Определить сумму положительных и отрицательных нечетных элементов   Определить все нечетные элементы и отсортировать их по убыванию

 


Лабораторная работа №3

Тема: Использование элементов Timer и NotifyIcon в приложении. Окна диалога. MDI-приложения

Цель: Освоить основные методы создания MDI-приложения и окон диалога, работы с таймером, освоение возможности размещать ссылку на программу в системной области задач.

Теоретические сведения

Дочерние окна, окна диалога

Для добавления в проект дочернего окна в окне Solution Explorer щелкаем правой кнопкой на имени проекта и в появившемся контекстном меню выбираем Add/ Add Windows Form…В нашем проекте появилась новая форма — будем называть ее дочерней.

Для отображения этой формы как немодального окна (т.е. после открытия окна можно иметь доступ к элементам главного окна) необходимо использовать метод Show, если нужно открыть модальное окно (которое полностью перехватывает управление на себя, пока его не закрыть другие окна приложения не доступны), то нужно использовать метод ShowDialog. Метод ShowDialog не возвращает управление программе, пока пользователь не закроет окно.

Приложение должно получить от модального диалогового окна информацию, по щелчку какой кнопки оно было закрыто — ОК или Cancel. Диалоговое окно закрывается присвоением свойству DialogResult значения одного из членов перечисления DialogResult —DialogResult.OK или DialogResult.Cancel. Метод ShowDialog передает управление приложению и возвращает значение свойства DialogResult.

Таким образом, как минимум в диалоговом окне надо реализовать обработчики события Click кнопок ОК и Cancel, присваивающие свойству DialogResult соответствующее значение. Вот обработчик для кнопки ОК.

void OkButtonOnClick(object objSrc, EventArgs args)

{

 DialogResult =DialogResult.OK;

}

В следующем коде форма приложения выводит диалоговое окно и обрабатывает результаты:

if (dlg.ShowDialog() ==DialogResult.OK)

{…

}

В Windows Forms этот процесс немного упрощен благодаря реализации свойства DialogResult в классе Button. Если свойству кнопки DialogResult присвоено значение одного из членов перечисления DialogResult, при щелчке кнопки свойству формы DialogResult автоматически присваивается значение и форма закрывается.

 

Закрыть окно можно так: this.Close().

Существуют стандартные диалоговые окна: OpenFileDialog.

Свойство FileName задает название файла, которое будет находиться в поле "Имя файла:" при появлении диалога. Свойство Filter задает ограничение файлов, которые могут быть выбраны для открытия — в окне будут показываться только файлы с заданным расширением. Через вертикальную разделительную линию можно задать смену типа расширения, отображаемого в выпадающем списке "Тип файлов". Например, Text Files (*.txt)|*.txt|AllFiles(*.*)|*.* что означает обзор либо текстовых файлов, либо всех. Свойство InitialDirectory позволяет задать директорию, откуда будет начинаться обзор. Если это свойство не установлено, исходной директорией будет рабочий стол.

Вызов окна выбора файлов и проверка, что файл был выбран:

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{…

Обращение к выбранному файлу - openFileDialog1.FileName

}

Такие же методы и свойства имеет еще одно стандартное диалоговое окно SaveFileDialog. Существуют диалоговые окна выбора цвета ColorDialog и окно с возможностью выбирать шрифт, его размер и начертание - элемент управления FontDialog.

Еще одно стандартное окно – окно сообщений.

MessageBox.Show("Do you want save changes?",

"Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) .

Возвращает значение, DialogResult.Yes или DialogResult. No.

Создание MDI-приложений

Такие программы, как блокнот и Microsoft Paint, относятся к SDI (Single — Document Interface) приложениям, способным работать только с одним документом. Другие, такие как Microsoft Word или Adobe Photoshop, поддерживают работу сразу с несколькими документами и называются MDI (Multiple — Document Interface) приложениями. Для создания такого приложения добавим в него дочернюю форму и устанавливаем свойству IsMdiContainer значение true. Цвет формы при этом становится темно-серым. Теперь в обработчике события, которое должно инициировать появление новой формы (пусть эта форма имеет имя blank), записываем следующие действия:

private void mnuNew_Click(object sender, System.EventArgs e)

{

//Создаем новый экземпляр формы frm

blank frm = new blank();

// формируем и задаем уникальное имя для формы

frm.DocName = "Untitled " + ++openDocuments;

frm.Text = frm.DocName;

frm.MdiParent = this;

//Указываем, что родительским контейнером нового экземпляра будет эта форма.

frm.MdiParent = this;

//Вызываем форму

frm.Show();

}

Переменная openDocuments должна быть объявлена в классе главной формы, а переменная DocName - в классе frm как public string DocName = "".

Метод LayoutMdi определяет, как дочерние окна будут располагаться по отношению друг к другу. Он содержит перечисление MdiLayout, содержащее четыре члена:

1) ArrangeIcons переключает фокус на выбранную форму

2) Cascade - располагаются каскадом

3) TileHorizontal - располагаются горизонтально

4) TileVertical - располагаются вертикально.

 

Timer

       Таймер генерирует последовательность событий Tick().

Основные свойства элемента:

- Interval – период генерации события Tick(). Задается в миллисекундах

- Enable (bool) – разрешение работы

NotifyIcon

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

                     

Рис.1а                         Рис. 1б                                Рис. 1в

Обычно при нажатии правой кнопкой мыши на элементе в области уведомления появляется контекстное меню, предлагающее открыть или скрыть приложение (рис.1б). Поэтому для работы с этим элементом на форму необходимо положить кроме элемента NotifyIcon, еще элемент контекстного меню ContextMenu. Свойства этих элементов задаются следующим образом:

Изображение, используемое в качестве иконки (свойство Icon) элемента NotifyIcon, будет выводиться в область уведомлений, когда свойство notifyIcon1.Visible=true. Значение свойства Text представляет собой текст всплывающей подсказки, появляющейся при наведении курсора на иконку приложения (рис.1в).

Предполагается, что иконка в области уведомлений будет появляться, когда окно программы сворачивается. При этом генерируется событие Resize – изменения размера формы. Для того, чтобы проверить, что событие сгенерировалось именно при сворачивании окна, проверяется свойство WindowState (состояния окна). Таким образом, обработчик этого события может иметь следующий вид:

private void Form1_Resize(object sender, EventArgs e)

   {

       if (WindowState == FormWindowState.Minimized)

       {

           notifyIcon1.Visible = true;

           Hide();

       }

   }

Требования к лабораторной работе:

 Разработать MDI-приложение, позволяющее открывать дочерние окна, выполняющие задание согласно варианту. Для каждого задания предусмотреть его запуск, паузу, останов. Предусмотреть окно параметров, открывающееся как модальное. При сворачивании главного окна в системной области задач должна появиться иконка приложения. Контекстное меню иконки должно включать пункты Закрыть приложение, Развернуть приложение и О программе. Варианты заданий предполагают использование таймера.


Дата добавления: 2018-04-05; просмотров: 405; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!