Некоммерческое акционерное общество
АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ  И СВЯЗИ
Кафедра инженерной кибернетики

ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ
Методические указания к лабораторным работам
для специальности 5В070200 – Автоматизация и управление

Алматы, 2014

СОСТАВИТЕЛИ: Г.А. Омарова, К.Т. Сауанова «Визуальное программирование». Методические указания к лабораторным работам для специальности 5В070200 – «Автоматизация и управление» - Алматы: АУЭС, 2013. - 54 с.

Методические указания к лабораторным работам разработаны для студентов специальности 5В070200 – «Автоматизация и управление» по дисциплине  «Визуальное программирование». Выполнение лабораторных работ предусматривает работу на персональных компьютерах и служат для изучения компонентов и технологий в интегрированной среде разработки программ Visual Studio, с поддержкой технологии форм (Form), дизайнер классов, дизайнер схемы баз данных. Каждая  работа содержит: цель работы, задания, методические указания, контрольные вопросы.

Ил. -22 , табл-10., библиогр.- 8

Рецензент: Байкенов Б.С.

Печатается по  плану издания некоммерческого акционерного общества «Алматинский университета энергетики и связи» на 2013г.

© НАО «Алматинский   университет   энергетики   и    связи»,     2014 г.

 

Содержание

 

Введение

4

1 Лабораторная работа №1. Создание проекта с использованием компонентов TextBox, Label, Button

 5

2  Лабораторная работа №2. Использование компонента ListBox

10

3 Лабораторная работа №3. Создание проекта с использованием компонентов CheckedListBox 

15

4 Лабораторная работа №4. Создание проекта с использованием компонентов DataGridView

19

5 Лабораторная работа №5. Создание проекта с использованием компонентов MenuStrip

23

6  Лабораторная работа №6. Диалоговые окна

26

Приложение А

31

Приложение Б

34

Приложение В

38

Приложение Г

43

Приложение Д

49

Список литературы

53

Введение

В разработанном методическом указание по дисциплине «Визуальное программирование» изучается интегрированная среда разработки Visual Studio. Среда Visual Studio нацелена на создание приложений для ОС, Office 2007 и веб-приложений. Изучение в данной среде визуального программирования, базируется на наиболее распространенном языке программирования C++ для персональных компьютеров.

Курс предназначен для студентов специальностей 5В070200 - «Автоматизация и управление» и способствует приобретению студентами фундаментальных знаний по визуальному программированию. Visual Studio - это линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб- сайты, веб­приложения, веб- службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight.

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

1 Лабораторная работа №1. Создание проекта с использованием компонентов TextBox, Label, Button

Цель работы: изучение компонентов TextBox, Label, Button. 

1.1 Задание

Создать программу для вычисления функции с использованием компонентов TextBox, Label, Button.  Варианты заданий смотри в таблице 1.1.

Таблица 1.1 – Варианты заданий

Вариант № 

задания

1

Y=

2

Y=

3

Y=

4

Y=

5

Y=

6

Y=

7

Y=

8

Y=

9

Y=

10

Y=)

11

Y=

12

Y=

13

Y=

14

Y=

15

 

Y=

1.2 Методические указания к лабораторной работе

 

Используемые компоненты:

- Label. Представляет стандартную надпись Windows.

Некоторые свойства компонента Label:

- Font. Возвращает или задает шрифт текста, отображаемого элементом управления.

- Text. Получает или задает текст, сопоставленный с этим элементом управления.

- TextBox. Предоставляет элемент управления "текстовое поле" Windows.

Элемент управления TextBox позволяет пользователю вводить текст в приложение. Этот элемент управления обладает дополнительными функциональными возможностями, отсутствующие у стандартного элемента управления "текстовое поле" Windows, включая редактирование в многострочном режиме и маскировку ввода знаков пароля.

Обычно элемент управления TextBox используется для отображения или ввода одной строки текста. Свойства Multiline и ScrollBars позволяют отображать или вводить несколько строк текста. Чтобы разрешить дополнительные операции с текстом в многострочном элементе управления TextBox, необходимо установить значение true для свойств AcceptsTab и AcceptsReturn.

Объем текста, вводимого в элемент управления TextBox, можно ограничить путем установки для свойства MaxLength определенного количества знаков. Элементы управления TextBox могут также использоваться для принятия паролей и других конфиденциальных сведений. Свойство PasswordChar позволяет маскировать знаки, вводимые в однострочную версию элемента управления. Свойство CharacterCasing используется, чтобы разрешить ввод в элемент управления TextBox только прописных, только строчных или комбинации прописных и строчных букв.

Чтобы прокрутить содержание текстового поля TextBox, пока курсор (знак вставки) не окажется в видимой области элемента управления, можно использовать метод ScrollToCaret. Чтобы делить часть текста в текстовом поле, можно использовать метод Select.

Для ограничения текста, вводимого в элемент управления TextBox, имеется возможность создать обработчик событий для события KeyDown, который бы проверял каждый знак, введенный в элемент управления. Полностью запретить ввод данных в элемент управления TextBox можно, установив значение true для свойства ReadOnly.

Некоторые свойства TextBox:

- HideSelection — задает, остается ли визуальная индикация выделенного текста, когда фокус ввода перемещается на другой компонент (true выделенный текст не меняет подсветки, false— подсветка исчезает при выделении другого компонента).

- Lines — с помощью этого свойства можно задавать строки (через открываемое диалоговое окно), выводить строки и, естественно, вводить строки. Все, что задано в этом свойстве, попадает в свойство Text и наоборот.

- Multiline - задает режим многострочного ввода (мы его задали другим способом — открыли вспомогательное меню на самом компоненте).

- PasswordChar - если мы хотим, чтобы вводимые TextBox символы не высвечивались, а заменялись неким другим символом, как это происходит при вводе пароля, то в это свойство надо ввести значение такого символа (например, звездочку). Но при этом значение свойства Multiline должно быть false.

- Readonly - определяет, может ли пользователь менять текст в поле компонента: при значении этого свойства true - не может, при значении false - может.

-Text -  через это свойство вводится/выводится одна строка текста.

- TextAlign - свойство позволяет выравнивать текст в поле компонента, выбирая способ выравнивания из выпадающего списка (текст может располагаться слева, справа или по центру поля).

- wordwrap - задает возможность автоматического переноса символов к началу следующей строки, т. е. строку, не умещающуюся в поле ввода, можно продолжить (не нажимая, естественно, при этом на клавишу <Enter>).

- MaxLength -        получает или задает максимальное число знаков, которое разрешается вводить или вставлять в элемент управления "Текстовое поле".

Некоторые методы TextBox. Перечень некоторых методов компонента представлен в таблице 1.2.

Button.

Представляет элемент управления Windows "Кнопка".

Класс Button можно выбрать с помощью мыши, клавиш ВВОД или ПРОБЕЛ, если кнопка имеет фокус.

Задайте свойства AcceptButton или CancelButton для Form, чтобы можно было нажать кнопку путем нажатия клавиш ВВОД или ESC, даже если у кнопки нет фокуса. Это придает форме поведение диалогового окна.

Можно изменить внешний вид кнопки. Например, чтобы она выглядела плоской, как в веб- оформлении, задайте свойству FlatStyle значение FlatStyle::Flat. Свойству FlatStyle тоже может быть присвоено значение FlatStyle::Popup, при этом кнопка выглядит плоской, до тех пор, пока на нее не наведен указатель мыши; при наведении указателя кнопка принимает стандартный внешний вид кнопки Windows.

 

Таблица 1.2 - Перечень некоторых методов компонента Техt

Имя метода

Описание метода

AppendText

Добавляет текст к текущему тексту в окне компонента

Clear

Удаляет весь текст из поля ввода/вывода

Сору

Копирует выбранные строки в буфер памяти

Окончание таблицы 1.2

CreateGraphics

С помощью этого метода можно создать графический объект для рисования на компоненте

Сut

Вырезает отмеченное множество строк в поле ввода/вывода и помещает их в буфер памяти

DeselectAll

Снимает состояние выборки строк в компоненте

Dispose

Удаляет все ресурсы, занятые компонентом, из памяти

Focus

Устанавливает фокус ввода компоненту

Hide

Скрывает компонент от пользователя

Paste

Заменяет текущую выборку в поле ввода/вывода содержимым буфера памяти

Select

Выбирает заданный текст внутри компонента

Select All

Выбирает весь текст внутри компонента

Show

Выводит компонент {делает его видимым)

Undo

Отменяет последнюю операцию редактирования в поле ввода

 

Этап конструирования формы.

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

Расположите элементы TextBox, Label, Button на форме (см. рисунок 1.2).

Рисунок 1.2 – Расположение элементов на форме

 

Этап программирования.

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

Страница содержит две колонки. В первой колонке перечислены имена событий, на которые откликается компонент,   вторая заполняется программистом и содержит имена созданных обработчиков событий.

Пример обработчика события:

private:Sistem: :Void button3_Click{System::object^ sender,

system: :eventArgs^  e)

{

This -> close();

}

при нажатии кнопки происходит закрытие программы.

 

Преобразование числа в строку и обратно.

Свойство Text имеет тип String^, то есть это управляемый указатель на объект типа String. Соответственно, чтобы организовать ввод/вывод числовых данных необходимо уметь преобразовывать строки в числа и наоборот. Для этого имеется полезный класс Convert, содержащий статические методы для преобразования значений одного типа в другой. Для нашей задачи полезными будут следующие методы:

ToString() – преобразует значения любого числового типа в значение типа String.

ToDouble() – преобразует строку в вещественное значение двойной точности (double).

ToSingle() – преобразует строку в вещественное значение одинарной точности (float).

ToInt32() – преобразует строку в значение типа int.

Для примера считаем числовое значение из компонента textBox, умножим его на 2, а результат поместим в label. Соответствующий обработчик событий будет выглядеть следующим образом:

System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

             float i = Convert::ToSingle(TextBox1->Text);

            i = i * 2;

            Label1->Text = Convert::ToString(i);

   }

Также удобно использовать метод Parse. Например:

int a=a.Parse(textBox1->Text);

 

Для выполнения задания в обработчике события нажатия кнопки Button1 требуется ввести код:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

float a,b,c;

                              a=a.Parse(textBox1->Text);

                              b=b.Parse(textBox2->Text);

                              c=a*b;

                              Label1->Text=c.ToString();

                               }

Этап программирования завершен.

 

Теперь требуется сохранить проект и запустить программу.

Листинг программы смотри в приложении А.

 

Контрольные вопросы:

1)      В какой библиотеке хранятся визуальные компоненты?

2)      Каким классом описана форма?

3)      Какая директива компилятора имеется в модуле раздела реализации?

4)      На какой панели расположены изучаемые компоненты TextBox, Label, Button?

5)      Что такое событие?

6)      Для чего нужна форма?

7)      Какие компоненты служат для ввода данных?

8)      Что такое обработчик события?

 

2 Лабораторная работа №2. Использование компонента ListBox

 

Цель работы: освоение и использование компонента ListBox.

 

2.1 Задание

 

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

 

Таблица 2.1 – Варианты заданий

Вариант

задания

 

1

Вывести списки клиентов, посетившие страны Европы (наименование страны, гостиницы, длительность пребывания, стоимость тура)

 

 

2

Вывести списки данных определенных  концелярских  товаров (код товара, фирма-производитель, стоимость товара, количество)

 

3

Вывести списки данных по определенным услугам автосервиса (вид услуги, стоимость услуги, время выполнения, ФИО исполнителя)

 

 

 

 

 

Окончание таблицы 2.1

 

4

Вывести списки книг-бестселлеров (ФИО автора, год издания, издательство, цена)

 

5

Вывести списки студентов, обучающихся на определенном курсе (ФИО студентов, группа, год поступления, гранд/платное обучение)

 

6

Вывести фамилии водителей, выполнивших рейсы в определенный месяц (код рейса, пункт отправки, длительность, оплата)

 

7

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

 

8

Вывести списки больных, состоявших на учете в поликлинике (возраст больного, диагноз, дата посещения, ФИО лечащего врача)

 

9

Вывести списки лекторов, ведущих определенные дисциплины (наименование кафедры, количество кредитов, номер семестра,ФИО ассистентов)

 

10

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

 

11

Вывести списки фильмов, получивших премию на кинофестивале (наименование фильма, ФИО режиссера, страна, год выпуска)

 

12

Вывести списки владельцев машин, имеющих определенную марку (год выпуска, объем двигателя, стоимость машины,дата приобретения)

 

13

Вывести списки наименования клубных карт спортивного клуба (наименования услуг, стоимость, время посещения, период посещения)

 

14

Вывести списки пород собак- победителей на конкурсе (кличка, год, ФИО владельца, возраст собаки)

 

15

 

Вывести списки клиентов, взявших кредит (наименование кредита, период кредитования, сумма кредитования, процентная ставка)

 

 

 

2.2 Методические указания к лабораторной работе

 

ListBox  содержит список элементов для выбора.

Таблица 2.2 - Основные свойства

Имя

Описание

ActualHeight

Возвращает визуализированную высоту данного элемента. 

ActualWidth

Возвращает визуализированную ширину данного элемента. 

FontSize

Получает или задает размер шрифта.

Items

Получает коллекцию, используемую для генерирования содержимого ItemsControl.

Name

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

Width

Возвращает или задает ширину элемента. 

 

Таблица 2.3- Основные методы

Имя

Описание

AddText

Добавляет заданную текстовую строку к объекту ItemsControl.

FindName

Находит элемент по указанному имени идентификатора. 

FindResource

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

SelectAll

Выбирает все элементы в ListBox.

UnselectAll

Отменяет весь выбор в ListBox.

 

Разработка программы.

Разместить на форме экземпляры компонентов в соответствии с рисунком 2.1.

Рисунок 2.1 – Расположение элементов на форме

Справочник записи цвета в формате RGB – label1

Цвет в формате RGB- label2

Перевести – button1

 

Рисунок 2.2 – Содержимое listbox1

 

Выделяем объект listbox, вносим через свойство Items,щелкнув на кнопке с тремя точками, расположенной справа от него. В появившемся окне редактора вводим название цветов (см. рисунок 2.2), каждый на новой строке (см. рисунок 2.3).

 

Рисунок 2.3- Окно свойства и редактора коллекции строк

 

Активизировать двойным щелчком кнопку  «Перевести» и в заготовку обработчика button1_Click поместить текст:

 

switch(listBox1->SelectedIndex)

{

case 0: label3->Text=L"черный OOOOOO";break;

case 1: label3->Text=L"белый FFFFFF";break;

case 2: label3->Text=L"красный FFOOOO";break;

case 3: label3->Text=L"зеленый OOFFOO";break;

case 4: label3->Text=L"бирюзовый OOFFFF";break;

case 5: label3->Text=L"синий OOOOFF";break;

case 6: label3->Text=L"фиолетовый FFOOFF";break;

case 7: label3->Text=L"желтый FFFFOO";break;

case 8: label3->Text=L"коричневый 996633";break;

case 9: label3->Text=L"оранжевый FF8000";break;

case 10: label3->Text=L"липовый 8000FF";break;

case 11: label3->Text=L"серый AOAOAO";break;

}

 

Сохранить и запустить проект. Результаты работы приложения показаны на в рисунке 2.4.

 

Рисунок 2.4 – Результат работы приложения

 

Листинг программы смотрите в приложении Б.

 

Контрольные вопросы:

1)   На какой панели расположен изучаемый компонент ListBox?

2)   Что представляет собой окно Object Inspector?

3)   Какое расширение имеет файл формы?

4)   Что содержит изучаемый компонент ListBox?

5)   Какое свойство  компонента  ListBox задает размер шрифта?

6)   Какой метод выбирает все элементы в  ListBox?

7)   Какой метод добавляет текстовую строку к объекту ItemsControl?

8)   Какое свойство  компонента  ListBox возвращает  ширину  элемента?

 

3 Лабораторная работа №3. Список выключателей CheckListBox

 

Цель работы: ознакомиться с компонентами управления CheckListBox и научиться их использовать при создании приложений.

 

3.1 Задание

 

Создать приложение, которое при выборе данных  позволяет  вывести в текстовое поле выводимые значения. Варианты заданий смотри в таблице 3.1.

 

Таблица 3.1 – Варианты заданий

Вариант

задания

1

Вывести списки клиентов, посетивших страны Европы.(наименование страны, длительность пребывания, наименование гостиницы, стоимость тура)

2

Вывести списки данных оопределенных  концелярских  товаров (код товара, фирма-производитель, стоимость товара, количество)

3

Вывести списки данных по определенным услугам автосервиса (вид услуги, стоимость услуги, время выполнения, ФИО исполнителя)

4

Вывести списки книг-бестселлеров (ФИО автора, год издания, издательство, цена)

5

Вывести списки студентов, обучающихся на определенном курсе (ФИО студентов, группа, год поступления, гранд/платное обучение)

6

Вывести фамилии водителей, выполнивших рейсы в определенный месяц (код рейса, пункт отправки, длительность, оплата)

7

Вывести списки рейсов, совершающие полет в определенный город (дата прибытия, время прибытия, тип самолета, наименование авиаперевозчика)

8

Вывести списки больных, состоявших на учете в поликлинике (возраст больного, диагноз, дата посещения, ФИО лечащего врача)

9

Вывести списки лекторов, ведущих определенные дисциплины (наименование кафедры, количество кредитов, номер семестра,ФИО ассистентов)

Окончание таблицы 3.1

10

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

11

Вывести списки фильмов, получивших премию на кинофестивале (наименование фильма, ФИО режиссера, страна, год выпуска)

12

Вывести списки владельцев машин, имеющих определенную марку (год выпуска, объем двигателя, стоимость машины,дата приобретения)

 

Таблица 3.3 – Основные методы

Имя

Описание

CreateItemCollection

Создает новый экземпляр коллекции позиций. (Переопределяет ListBox::CreateItemCollection())

GetItemText

Возвращает текстовое представление указанного элемента

GetItemChecked

Возвращает значение, указывающее, отмечен ли заданный элемент

Hide

Скрывает элемент управления от пользователя

RefreshItems

Снова выполняет синтаксический анализ всех элементов CheckedListBox и получает для элементов новые текстовые строки  (переопределяет ListBox::RefreshItems())

 

 

Разработка  программы.

Разместить на форме экземпляры компонентов в соответствии с рисунком 3.1.

 

Рисунок 3.1- Размещение на форме компонентов

 

Аудитория –label1

Программы –label2

Примечание –label3

Пустое поле-textbox1

 


Рисунок 3.2 - ListBox1

 

 

Рисунок 3.3 - CheckListBox1

 

Выделяем объект listbox, вносим через свойство Items,  щелкнув на кнопке с тремя точками, расположенной справа от него. В появившемся окне редактора вводим название аудитории, каждый на новой строке (см. рисунок 3.4).

 

Рисунок 3.4 – Редактор коллекции строк.

 

Выделяем объект Checklistbox, вносим через свойство Items, щелкнув на кнопке с тремя точками, расположенной справа от него. В появившемся окне редактора вводим название программ, каждое на новой строке (см. рисунок 3.5)

 

Рисунок 3.5 – Редактор коллекции строк

 

Активизировать двойным щелчком объект ListBox1 и в заготовку обработчика поместить текст.

Сохраните проект и запустите приложение. Результат работы приложения показан на рисунке 3.6.

 

Рисунок 3.6 – Результат работы приложения

 

Листинг программы смотрите в приложении В.

Контрольные вопросы:

1)      Почему компонент  CheckedListBox  называют независимым переключателем?

2)      На какой панели расположены изучаемый компонент  CheckedListBox?

3)      Какое свойство  компонента  CheckedListBox   задает высоту и ширину элемента?

4)      Какой метод компонента  CheckedListBox  создает новый экземпляр коллекции позиций?

5)      Какое свойство  компонента  CheckedListBox   получает размер элемента управления по умолчанию?

6)      Какое свойство  компонента  CheckedListBox   задает значение для переключения флажка при выборе элемента?

7)      Для отображения формы в каком свойстве задается значение True ?

8)      Какой метод компонента  CheckedListBox  возвращает текстовое представление указанного элемента?

 

4 Лабораторная работа №4. Использование компонента DataGridView

 

Цель работы: ознакомиться с компонентом DataGridView. Научиться добавлять данные различных типов в столбцы компонента.

 

4.1  Задание

 

Создать таблицу с колоннами (например: Имя, Фамилия, Пол, Частное лицо, E-mail) с типами (DataGridViewTextBoxColumn, DataGridViewTextBoxColumn, DataGridViewComboBoxColumn, DataGridViewCheckBoxColurnn,  DataGridViewTextBoxColumn) соответственно. Вывести  данные по запросу. Варианты заданий смотри таблицу 4.1.

 

 

Таблица 4.1 – Варианты заданий

Вариант

 

Задания

1

Дан массив, в котором хранятся данные: ФИО клиентов, наименование страны, длительность пребывания, наименование гостиницы, стоимость тура. Вывести списки клиентов, посетивших страны Европы

2

Дан массив, в котором хранятся данные: наименование  товара, код товара, фирма-производитель, стоимость товара, количество. Вывести списки определенных  концелярских  товаров

Продолжение таблицы 4.1

3

Дан массив, в котором хранятся данные: наименование услуги, вид услуги, стоимость услуги, время выполнения, ФИО исполнителя. Вывести списки данных по определенным услугам автосервиса

4

Дан массив, в котором хранятся данные: наименование книги, ФИО автора, год издания, издательство, цена. Вывести списки книг-бестселлеров 

5

Дан массив, в котором хранятся данные: ФИО студентов, группа, год поступления, гранд/платное обучение. Вывести списки студентов, обучающихся на определенном курсе

6

Дан массив, в котором хранятся данные: ФИО водителя, код рейса, пункт отправки, длительность, оплата. Вывести фамилии водителей, выполнивших рейсы в определенный месяц

7

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

8

Дан массив, в котором хранятся данные: ФИО больного, возраст больного, диагноз, дата посещения, ФИО лечащего врача. Вывести списки больных, состоявших на учете в поликлинике

9

Дан массив, в котором хранятся данные: ФИО лектора, наименование кафедры, количество кредитов, номер семестра, ФИО ассистентов. Вывести списки лекторов, ведущих определенные дисциплины

10

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

11

Дан массив, в котором хранятся данные: наименование фильма, ФИО режиссера, страна, год выпуска. Вывести списки фильмов, получивших премию на кинофестивале

12

Дан массив, в котором хранятся данные: ФИО владельца, год выпуска, объем двигателя, стоимость машины, дата приобретения. Вывести списки владельцев машин, имеющие определенную марку

13

Дан массив, в котором хранятся данные: наименование клубной карты, наименования услуг, стоимость, время посещения, период посещения. Вывести списки наименования клубных карт спортивного клуба

 

Окончание таблицы 4.1

14

Дан массив, в котором хранятся данные: порода собаки, кличка, год, ФИО владельца, возраст собаки. Вывести списки пород собак- победителей на конкурсе

15

 

Дан массив, в котором хранятся данные: ФИО клиента, наименование кредита, период кредитования, сумма кредитования, процентная ставка. Вывести списки клиентов, взявших кредит свыше 4000 долларов

 

4.2  Методические указания к лабораторной работе

 

Для поддержки просмотра таблицы с данными NET Framework предоставляет класс с именем DataGridView (см. рисунок  4.1). Поэтому, чтобы программно создать представление таблицы с данными, необходимо объявить переменную типа DataGridView и добавить его в коллекцию элементов управления формы.

Рисунок  4.1- DataGridView в панели элементов.

 

На вкладке формы компонент будет выглядеть, как на рисунке 4.1.

 

Рисунок  4.2 - DataGridView на форме приложения

 

Вид сетки данных  выглядит как таблица  из колонн. Колонны организовывают просмотр данных сетки в категории информации. Для представления сетки данных в виде столбцов DataGridView класс оснащен свойством с именем Columns.DataGridView::Columns; свойство имеет тип DataGridViewColumnCollection и определяется следующим образом:

 

public ref class DataGridViewColumnCollection : public BaseCollection, IList, ICollection,IEnumerable;

 

Этот класс реализует IList,  ICollection и  IEnumerable интерфейсов. Это     означает,     что     вы     можете использовать  DataGridViewColumnCollection класса для создания и управления колонками.

Выполнение задания.

На форме разместите элементы DataGridView.

В компоненте Data GridView заходим по нажатию на элемент. Выбираем пункт “Правка столбцов”, в окне задаем имя колонок,  в свойстве header выбирается опция text и для каждой колонки задаем нужный тип (см. рисунок 4.3).

 

Рисунок  4.3- Окно правки столбцов

 

В обработчик OnClick размещаем текст:

dataGridViewl->Rows[0]->Cells[0]->Value = "Alexandr";

 dataGridViewl->Rows[0]->Cells[l]-> Value = "Ivanov";

 dataGridViewl->Rows[0]->Cells[2]->Value = "муж";

 dataGridViewl->Rows[0]->Cells[3]->Value = true;

dataGridViewl ->Rows[0]->Cells[4]->Value = "jahrakal@inbox.ru";

Сохраняем проект (результат выполнения смотри на рисунке 4.4).

 

Рисунок 4.4 – Результат выполнения

 

Контрольные  вопросы:

1)      На какой панели расположен изучаемый компонент DataGridView?

2)      Для чего нужен компонент DataGridView?

3)      Какое свойство определят представление сетки данных в виде столбцов?

4)      Какие интерфейсы используются для управления колонами?

5)      Какой тип данных может использоваться в столбцах?

6)      Назовите функции преобразования строковых данных в числовые?

7)      Что представляет собой раздел Protected?

8)      Что такое конструктор?

 

5 Лабораторная работа №5. Создание проекта с использованием компонента MenuStrip

 

Цель работы: научиться разрабатывать приложения, используя компонент MenuStrip .

 

5.1 Задание

 

Разработать приложение,  содержащее меню, вкладками которого являются предыдущие лабораторные работы и выход из программы.

 

5.2 Методические указания к лабораторной работе

 

MenuStrip является контейнером верхнего уровня, замещающим MainMenu. Он также предоставляет возможности управления ключами и возможности интерфейса MDI. Функционально ToolStripDropDownltem ^ToolStripMenuItem работают вместе с MenuStrip, несмотря на то что являются производными от ToolStripItem. Следующие элементы специально предназначены для универсального применения с объектами ToolStripSystemRenderer и ToolStripProfessionalRenderer во всех ориентациях. По умолчанию, они доступны во время разработки для элемента управления MenuStrip: ToolStripMenuItem, ToolStripTextBox, ToolStripComboBox.

Элемент управления MenuStrip представляет контейнер для структуры меню формы. Можно добавить объекты ToolStripMenuItem в объект MenuStrip, который представляет отдельные команды в структуре меню. Каждый объект ToolStripMenuItem может быть командой для приложения или родительским меню для других элементов вложенного меню.

Элемент управления MenuStrip заменяет элемент управления MainMenu предыдущих версий и расширяет его функциональные возможности, однако элемент управления MainMenu поддерживается для обеспечения обратной совместимости и использования в будущем при необходимости.

 

 

Таблица 5.1- Перечень свойств компонента                                        

Имя

Описание

AutoSize

 

Получает или задает значение, указывающее, подстраивается ли автоматически высота элемента управления при изменении шрифта, назначенного для элемента управления. (унаследовано от TextBoxBase)

BackColor Font

Получает или задает цвет фона управления элемента  (унаследовано от TextBoxBase)

ReadOnly

Возвращает или задает шрифт текста, отображаемого элементом  управления. (Унаследовано от Control)

BackColor Font

Получает или задает значение, указывающее, является ли текст
 в текстовом поле доступным только для чтения. (унаследовано от TextBoxBase)

SelectedText

SelectedText Получает или задает значение, показывающее текст, выбранный в текущий момент в элементе управления. (унаследовано от TextBoxBase)

 

Выполнение задания.

Расположите на форме выбранный  компонент MenuStrip , т.к. он является невизульным, то на форме в режиме конструктора его не будет видно (см. рисунок 5.1).

 

Рисунок 5.1- Выбор компонента MenuStrip из панели инструментов

 

Создайте кнопки в меню (см. рисунок 5.2), и задайте соответствующие действия в обработчиках.

 

Рисунок 5.2- Структура документа

 

Сохранить проект (см. рисунок 5.3).

 

Рисунок 5.3- Вид сохраненного проекта

 

Контрольные вопросы:

1)      На какой панели расположены изучаемый компонент MenuStrip?

2)      Чем является изучаемый компонент MenuStrip?

3)      Какие возможности предоставляет изучаемый компонент MenuStrip?

4)      Какое свойство задает цвет фона элемента управления?

5)      Какое свойство возвращает шрифт текста, отображаемого элементом управления?

6)      Что представляет собой раздел реализации?

7)      Что прописывается в разделе Рublic?

8)      Что такое метод?

 

6 Лабораторная работа №6. Диалоговые окна

 

Цель работы: ознакомление с диалоговыми окнами.

 

6.1 Задание

 

Создание   диалогового  окна для выбора файла и  комментариев  для лабораторной работы № 5.

 

6.2 Методические указания к лабораторной работе

 

Компонент OpenFileDialog.

Компонент находится в списке All Windows Forms палитры компонентов. Он предназначен для выбора файлов, выводит на экран стандартное окно Windows для выбора и открытия файлов.

Чтобы начать диалог по поиску файла, надо использовать метод ShowDialog(). Если установить свойство MultiSelect в true, то можно выбрать группу файлов.

Можно воспользоваться свойством ShowReadOnly, которое дает возможность появиться галочке рядом с файлом, если он имеет тип «только для чтения».

Свойство Filter задает условие фильтрации файлов (чтобы выбирались только те, которые указаны в фильтре).

Компонент при добавлении не появляется в форме, а помещается на специальный поддон, расположенный  в нижней части окна дизайнера формы (как и многие другие компоненты ImageList, Timer и другие). Если требуется открыть папку вместо файла, то следует воспользоваться  классом FolderBrowserDialog.

Диалоговое окно для выбора файла появляется в режиме исполнения приложения в момент выполнения метода ShowDialog. Когда пользователь в диалоговом окне нажимает на кнопку открыть (или Open— это зависит от установленной у вас версии Windows), метод ShowDialog возвращает  значение DialogResult, которое сравнивается со значением такого же свойства у формы. А в форме мы его устанавливаем равным ок. Это значит, что если возвращенное значение тоже будет ок, то метод сработал без ошибок и окно открылось. Теперь если нажать в окне на кнопку «Открыть», то окно закроется и имя выбранного файла поместится в свойство компонента filename, откуда его можно в дальнейшем брать и использовать по назначению.

На рисунке  6.4  показан результат работы компонента по выбору текстового файла. Строка фильтра в свойстве Filter задается по правилам

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

Здесь представлено начальное окно программы, нажимаем кнопку «Открыть» (см. рисунок 6.1).

 

Рисунок 6.1 –Начальное окно программы

 

Появляется окно выбора файла, выбираем файл с расширением  (*.txt) (см. рисунок 6.2).

 

Рисунок 6.2- Окно выбора файла

 

Получаем текст в окне ListBox (см. рисунок 6.3).

 

Рисунок 6.3- Результат работы компонента по выбору текстового файла и выбор текстового файла и вывода его содержимого в ListBox

 

Например, если задать, чтобы высветились все текстовые файлы и все файлы Word, то в этом случае строка фильтра будет такой:

TextFiles (*txt) | * txt| WordFiles (*doc),

а в поле типов будет две строки

Text Files *txt

Word Files *doc

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

 


Рисунок 6.4-  Свойства OpenFileDialog

 

Порядок выполнения.

Разместить на форме экземпляры компонентов в соответствии с рисунком 6.3.

Рисунок 6.5 - Форма приложения

 

Элементы формы:

Label1->Caption(Окно вывода текста)

Button1,2

ListBox1

OpenFileDialog1

 

Добавьте текст ограниченный снизу и сверху комментариями содержащими (***********).

Поместите в обработчик события button1_Click следующий текст:

Stream^ s;

this->DialogResult= System::Windows::Forms::DialogResult::OK;

if (this->openFileDialog1->ShowDialog()== System::Windows::Forms::DialogResult::OK)

 {

if ( (s= this->openFileDialog1->OpenFile()) != nullptr )

{

String ^a=this->openFileDialog1->FileName;

char *ss=StrToChar (a);

LoadFromFile(ss, this->listBox1);

}

else

MessageBox::Show("Ошибка открытия фаила");

}

 

Теперь можете запустить приложение.

 

 

Контрольные вопросы:

1)      В какой вкладке находится изучаемый компонент OpenFileDialog?

2)      Для чего предназначен  компонент OpenFileDialog?

3)      Какие диалоговые окна существуют?

4)      4.Что такое модальное окно?

5)      Чем отличаются модальные окна от немодальных?

6)      Что такое деструктор?

7)      Что такое метод?

8)      8.Какие функции преобразовывают из числовых данных в строковые?

 

 

Приложение А

 

#pragma once

namespace Му1лаба {

using namespace System;

using namespace System: :ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System: :Data;

using namespace System: :Drawing;

// <summary>

//Сводка для Forml

 

//Внимание! При изменении имени этого класса необходимо также изменить //  свойство имени файла ресурсов ("Resource File Name") для средства

компиляции управляемого ресурса,

//        связанного со всеми файлами с расширением .resx, от которых зависит

данный класс. В противном случае,

//        конструкторы не смогут правильно работать с локализованными

//        ресурсами, сопоставленными данной форме.

//</summary>

public ref class Forml : public System:: Windows::Forms::Form {

public:

Forml (void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

protected:

// <summary>

//Освободить все используемые ресурсы.

//</summary>

Forml()

{

if (components)

{

delete components;

}

}

private: System::Windows::Forms::ButtonA buttonl; protected:

private: System::Windows::Forms::TextBoxA textBoxl; private: System::Windows::Forms::TextBoxA textBox2; private: System::Windows::Forms::LabelA labell;

private:                                                     *

//<summary>

// Требуется переменная конструктора.

//</summary>

System:: ComponentModel:: Container Components;

#pragma region Windows Form Designer generated code //<summary>

// Обязательный метод для поддержки конструктора - не изменяйте

// содержимое данного метода при помощи редактора кода.

// </summary>

void InitializeComponent(void)

{

this->buttonl = (gcnew System::Windows::Forms::Button()); this->textBoxl = (gcnew System::Windows::Forms::TextBox()); this->textBox2 = (gcnew System::Windows::Forms::TextBox()); this->labell = (gcnew System::Windows::Forms::Label()); this->SuspendLayout();

//

// button 1

//

this->buttonl->Location = System::Drawing::Point(63, 151); this->buttonl->Name = L"buttonl"; this->buttonl->Size = System::Drawing::Size(75, 23); this->buttonl->TabIndex = 0; this->buttonl->Text = L"buttonl"; this->buttonl->UseVisualStyleBackColor = true; this->buttonl->Click += gcnew System: :EventHandler(this, &Forml ::buttonl_Click);

//

// textBoxl

//

this->textBoxl->Location = System::Drawing::Point(63, 58); this->textBoxl->Name = L"textBoxl"; this->textBoxl->Size = System::Drawing::Size(100, 20); this->textBoxl->TabIndex = 1;

//

// textBox2

//

this->textBox2->Location = System: :Drawing::Point(63, 85); this->textBox2->Name = L"textBox2"; this->textBox2->Size = System::Drawing::Size(100, 20); this->textBox2->TabIndex = 2;

//

// label 1

//

this->labell-> AutoSize = true;

this->labell->Location = System: :Drawing::Point(63, 201); this->labell->Name = L"labell"; this->labell->Size = System::Drawing::Size(35, 13);

 

this->labell->TabIndex = 3; this->labell->Text = L"labell";

//

// Forml

//

this->AutoScaleDimensions = System: :Drawing::SizeF(6, 13);

this->AutoScaleMode = System:: Windows: :Forms::AutoScaleMode::Font;

this->ClientSize = System: :Drawing::Size(284, 262);

this->Controls->Add(this->label 1);

this->Controls->Add(this->textBox2);

this->Controls->Add(this->textBoxl);

this->Controls->Add(this->buttonl);

this->Name = L"Forml";

this->Text = L"Forml";

this->ResumeLayout(false);

this->PerformLayout();

}

#pragma endregion

private: System::Void buttonl_Click(System::ObjectA sender, System::EventArgsA e) {

float a,b,c;

a=a.Parse(textBoxl ->Text); b=b.Parse(textBox2->Text); c=a*b;

label 1 ->T ext=c .To String();

}

};

}

Приложение Б

 

Листинг программы:

 

namespace laba2 {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

/// <summary>

/// Сводка для Form1

/// </summary>

public ref class Form1 : public System::Windows::Forms::Form

{

public:

        Form1(void)

        {

                  InitializeComponent();

                  //

                  //TODO: добавьте код конструктора

                  //

        }

protected:

        /// <summary>

        /// Освободить все используемые ресурсы.

        /// </summary>

        ~Form1()

        {

        if (components)

        {

        delete components;

        }

        }

private: System::Windows::Forms::ListBox^  listBox1;

private: System::Windows::Forms::Button^  button1;

private: System::Windows::Forms::Label^  label1;

private: System::Windows::Forms::Label^  label2;

private: System::Windows::Forms::Label^  label3;

protected:

private:

/// <summary>

/// Требуется переменная конструктора.

/// </summary>

System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

/// </summary>

void InitializeComponent(void)

{

        this->listBox1 = (gcnew System::Windows::Forms::ListBox());

        this->button1 = (gcnew System::Windows::Forms::Button());

        this->label1 = (gcnew System::Windows::Forms::Label());

        this->label2 = (gcnew System::Windows::Forms::Label());

        this->label3 = (gcnew System::Windows::Forms::Label());

        this->SuspendLayout();

        //

        // listBox1

        //

        this->listBox1->FormattingEnabled = true;

        this->listBox1->Items->AddRange(gcnew cli::array< System::Object^  >(12) {L"black", L"white", L"red", L"green", L"azure", L"blue", L"purple", L"yellow", L"brown", L"orange", L"violet", L"grey"});

        this->listBox1->Location = System::Drawing::Point(12, 26);

        this->listBox1->Name = L"listBox1";

        this->listBox1->Size = System::Drawing::Size(97, 160);

        this->listBox1->TabIndex = 0;

        //

        // button1

        //

        this->button1->Location = System::Drawing::Point(12, 192);

        this->button1->Name = L"button1";

        this->button1->Size = System::Drawing::Size(97, 23);

        this->button1->TabIndex = 1;

        this->button1->Text = L"Перевести";

        this->button1->UseVisualStyleBackColor = true;

        this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);

        //

        // label1

        //

        this->label1->AutoSize = true;

        this->label1->Location = System::Drawing::Point(9, 10);

        this->label1->Name = L"label1";

        this->label1->Size = System::Drawing::Size(221, 13);

        this->label1->TabIndex = 2;

        this->label1->Text = L"Справочник записи цвета в формате RGB";

        //

        // label2

        //

        this->label2->AutoSize = true;

        this->label2->Location = System::Drawing::Point(115, 26);

        this->label2->Name = L"label2";

        this->label2->Size = System::Drawing::Size(115, 13);

        this->label2->TabIndex = 3;

        this->label2->Text = L"Цвет в формате RGB";

        //

        // label3

        //

        this->label3->AutoSize = true;

        this->label3->Location = System::Drawing::Point(115, 48);

        this->label3->Name = L"label3";

        this->label3->Size = System::Drawing::Size(35, 13);

        this->label3->TabIndex = 4;

        this->label3->Text = L"label3";

        //

        // Form1

        //

        this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

        this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

        this->ClientSize = System::Drawing::Size(236, 222);

        this->Controls->Add(this->label3);

        this->Controls->Add(this->label2);

        this->Controls->Add(this->label1);

        this->Controls->Add(this->button1);

        this->Controls->Add(this->listBox1);

        this->Name = L"Form1";

        this->Text = L"Laba_2";

        this->ResumeLayout(false);

        this->PerformLayout();

 

        }

#pragma endregion

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^                               e) {

        switch(listBox1->SelectedIndex)

        {

        case 0: label3->Text=L"черный OOOOOO";break;

        case 1: label3->Text=L"белый FFFFFF";break;

        case 2: label3->Text=L"красный FFOOOO";break;

        case 3: label3->Text=L"зеленый OOFFOO";break;

        case 4: label3->Text=L"бирюзовый OOFFFF";break;

        case 5: label3->Text=L"синий OOOOFF";break;

        case 6: label3->Text=L"фиолетовый FFOOFF";break;

        case 7: label3->Text=L"желтый FFFFOO";break;

        case 8: label3->Text=L"коричневый 996633";break;

        case 9: label3->Text=L"оранжевый FF8000";break;

        case 10: label3->Text=L"липовый 8000FF";break;

        case 11: label3->Text=L"серый AOAOAO";break;

        }}

};

}

Приложение В

 

Листинг программы:

#pragma once

 

namespace laba3 {

 

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

 

/// <summary>

/// Сводка для Form1

/// </summary>

public ref class Form1 : public System::Windows::Forms::Form

{

public:

Form1(void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

protected:

/// <summary>

/// Освободить все используемые ресурсы.

/// </summary>

~Form1()

{

if (components)

{

delete components;

}

}

private: System::Windows::Forms::CheckedListBox^  clb1;

protected:

private: System::Windows::Forms::ListBox^  listBox1;

private: System::Windows::Forms::Label^  label1;

private: System::Windows::Forms::Label^  label2;

private: System::Windows::Forms::TextBox^  textBox1;

private: System::Windows::Forms::Label^  label3;

protected:

private:

/// <summary>

/// Требуется переменная конструктора.

/// </summary>

System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

/// </summary>

void InitializeComponent(void)

{

this->clb1 = (gcnew System::Windows::Forms::CheckedListBox());

this->listBox1 = (gcnew System::Windows::Forms::ListBox());

this->label1 = (gcnew System::Windows::Forms::Label());

this->label2 = (gcnew System::Windows::Forms::Label());

this->textBox1 = (gcnew System::Windows::Forms::TextBox());

this->label3 = (gcnew System::Windows::Forms::Label());

this->SuspendLayout();

//

// clb1

//

this->clb1->FormattingEnabled = true;

this->clb1->Items->AddRange(gcnew cli::array< System::Object^  >(12) {L"1С-Предприятие", L"MS Project", L"Visual C++", L"SQL Server", L"Delphi", L"LabView", L"MatLab", L"SystemView", L"MathCad", L"AutoCad", L"Borland Pascal", L"Turbo C++"});

this->clb1->Location = System::Drawing::Point(78, 27);

this->clb1->Name = L"clb1";

this->clb1->Size = System::Drawing::Size(120, 184);

this->clb1->TabIndex = 0;

//

// listBox1

//

this->listBox1->FormattingEnabled = true;

this->listBox1->Items->AddRange(gcnew cli::array< System::Object^  >(5) {L"430", L"434", L"435", L"437", L"429"});

this->listBox1->Location = System::Drawing::Point(13, 26);

this->listBox1->Name = L"listBox1";

this->listBox1->Size = System::Drawing::Size(59, 69);

this->listBox1->TabIndex = 1;

this->listBox1->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::listBox1_SelectedIndexChanged);

//

// label1

//

this->label1->AutoSize = true;

this->label1->Location = System::Drawing::Point(12, 9);

this->label1->Name = L"label1";

this->label1->Size = System::Drawing::Size(60, 13);

this->label1->TabIndex = 2;

this->label1->Text = L"Аудитория";

//

// label2

//

this->label2->AutoSize = true;

this->label2->Location = System::Drawing::Point(78, 9);

this->label2->Name = L"label2";

this->label2->Size = System::Drawing::Size(68, 13);

this->label2->TabIndex = 3;

this->label2->Text = L"Программы";

//

// textBox1

//

this->textBox1->Location = System::Drawing::Point(204, 26);

this->textBox1->Multiline = true;

this->textBox1->Name = L"textBox1";

this->textBox1->ReadOnly = true;

this->textBox1->Size = System::Drawing::Size(100, 181);

this->textBox1->TabIndex = 4;

//

// label3

//

this->label3->AutoSize = true;

this->label3->Location = System::Drawing::Point(201, 9);

this->label3->Name = L"label3";

this->label3->Size = System::Drawing::Size(70, 13);

this->label3->TabIndex = 5;

this->label3->Text = L"Примечание";

//

// Form1

//

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

this->ClientSize = System::Drawing::Size(318, 220);

this->Controls->Add(this->label3);

this->Controls->Add(this->textBox1);

this->Controls->Add(this->label2);

this->Controls->Add(this->label1);

this->Controls->Add(this->listBox1);

this->Controls->Add(this->clb1);

this->Name = L"Form1";

this->Text = L"Form1";

this->ResumeLayout(false);

this->PerformLayout();

}

#pragma endregion        

private: System::Void listBox1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {

int i;

 for(i=0;i<12;i++)

this->clb1->SetItemCheckState(i,CheckState::Unchecked);

 switch(listBox1->SelectedIndex)

{case 0:

clb1->SetItemCheckState(2,CheckState::Checked);

clb1->SetItemCheckState(3,CheckState::Checked);

clb1->SetItemCheckState(4,CheckState::Checked);

clb1->SetItemCheckState(10,CheckState::Checked);

clb1->SetItemCheckState(11,CheckState::Checked);

textBox1->Text=L"Желательно установить другие программы";

break;

case 1:

clb1->SetItemCheckState(1,CheckState::Checked);

clb1->SetItemCheckState(3,CheckState::Checked);

clb1->SetItemCheckState(5,CheckState::Checked);

clb1->SetItemCheckState(6,CheckState::Checked);

clb1->SetItemCheckState(8,CheckState::Checked);

clb1->SetItemCheckState(9,CheckState::Checked);

clb1->SetItemCheckState(10,CheckState::Checked);

textBox1->Text=L"Эта аудитория занята на весь день";

break;

case 2:

clb1->SetItemCheckState(2,CheckState::Checked);

clb1->SetItemCheckState(3,CheckState::Checked);

clb1->SetItemCheckState(4,CheckState::Checked);

clb1->SetItemCheckState(6,CheckState::Checked);

clb1->SetItemCheckState(8,CheckState::Checked);

clb1->SetItemCheckState(9,CheckState::Checked);

textBox1->Text=L"Можно установить Turbo C++";

break;

case 3:

clb1->SetItemCheckState(5,CheckState::Checked);

clb1->SetItemCheckState(7,CheckState::Checked);

clb1->SetItemCheckState(9,CheckState::Checked);

textBox1->Text=L"В этой аудитории проводятся занятия по спецдисциплинам";

break;

case 4:

clb1->SetItemCheckState(1,CheckState::Checked);

clb1->SetItemCheckState(2,CheckState::Checked);

clb1->SetItemCheckState(8,CheckState::Checked);

clb1->SetItemCheckState(3,CheckState::Checked);

textBox1->Text=L"Это - аудитория преподователей";

break;

}

}

};

}

Приложение Г

 

#pragma once

namespace Mylab {

using namespace System;

using namespace System::ComponentModel;

using namespace System:Collections;

using namespace System::Windows::Forms;

using namespace System: :Data;

using namespace System: :Drawing;

//<summary>

//Сводка для Forml

//

//Внимание! При изменении имени этого класса необходимо также изменить

//       свойство имени файла ресурсов ("Resource File Name") для средства

компиляции управляемого ресурса,

//       связанного со всеми файлами с расширением .resx, от которых зависит

данный класс. В противном случае,

//       конструкторы не смогут правильно работать с локализованными

//       ресурсами, сопоставленными данной форме.

//</summary>

public ref class Forml : public System "Windows:: Forms:: Form {

public:

Forml (void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

protected:

// <summary>

// Освободить все используемые ресурсы.

//</summary>

Forml ()

{

if (components)

{

delete components;

}

}

private: System::Windows::Forms::MenuStripA menuStripl; protected:

private: System::Windows::Forms::ToolStripMenuItemA файлТоо181прМепиКет; private: System::Windows::Forms::ToolStripMenuItemA добавитьТооШйгрМетЛет;

private: System::Windows::Forms::ToolStripMenuItemA добавитьТоо18шрМспиЬет1; private: System::Windows::Forms::ToolStripMenuItemA yGpaTbToolStripMenuItem; private: System::Windows::Forms::ToolStripMenuItemA TeKCTOBOcrio.aeToolStripMenuItem;

private: System::Windows::Forms::ToolStripMenuItemA flo6aBHTbToolStripMenuItem2; private: System:: W indo ws ::Forms::Tool StripMenuItemA у братьТ ool StripMenuItem 1; private: System::Windows::Forms::ToolStripMenuItemA выходТoolStripMenuItem; private: System::Windows::Forms::ButtonA buttonl; private: System::Windows::Forms::TextBoxA textBoxl;

private:

// <summary>

//Требуется переменная конструктора.

//</summary>

System: :ComponentModel: :Container Acomponents;

#pragma region Windows Form Designer generated code

// <summary>

//Обязательный метод для поддержки конструктора - не изменяйте

//содержимое данного метода при помощи редактора кода.

//</summary>

void InitializeComponent(void)

{

this->menuStripl = (gcnew System::Windows::Forms::MenuStrip()); this->(|)aftHToolStripMenuItem = (gcnew System:: Windows: :Forms::ToolStripMenuItem());

this->;io6aBHTbToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());

this->flo6aBHTbToolStripMenuIteml = (gcnew System:: Windows: :Forms:: T oolStripMenuItem());

this->y6paTbToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());

this->TeKCTOBoerioneToolStripMenuItem = (gcnew System:: Windows: :Forms: :ToolStripMenuItem());

this->flo6aBHTbToolStripMenuItem2 = (gcnew System:: Windows: :Forms: :ToolStripMenuItem());

this->y6paTbToolStripMenuIteml = (gcnew System::Windows::Forms::ToolStripMenuItem());

this->BbixoflToolStripMenuItem = (gcnew System:: Windows: :Forms::ToolStripMenuItem());

this->buttonl = (gcnew System::Windows::Forms::Button()); this->textBoxl = (gcnew System::Windows::Forms::TextBox()); this->menuStripl->SuspendLayout(); this->SuspendLayout();

//

// menuStripl

//

this->menuStrip 1 ->Items->AddRange(gcnew cli: :array<

System: Windows: :Forms::ToolStripItemA >(1) {this-^aftnToolStripMenuItem});

this->menuStripl->Location = System::Drawing::Point(0, 0); this->menuStripl->Name = L"menuStripl";

 this->menuStripl->Size = System::Drawing::Size(341, 24); this->menuStripl->TabIndex = 0;   *.

this->menuStripl->Text = L"menuStripl";

//

// ((jabnToolStripMenultem

//

this->фaйлToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItemA >(3) {this->flo6aBHTbToolStripMenuItem,

this->TeKCTOBoerioneToolStripMenuItem, this- >выходТ oolStripMenuItem});

this->(j)aftBToolStripMenuItem->Naine = L'^aftBToolStripMenuItem"; this->фaйлToolStripMenuItem->Size = System::Drawing::Size(48, 20); this->(jjabnToolStripMenuItem->Text = Ь"Файл";

//

// j;o6aBHTbToolStripMenuItem

//

this->flo6aBHTbToolStripMenuItcm->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItemA >(2) (this- >flo6aBHTbToolStripMenuIteml,

this->y6paTbToolStripMenuItem}); this->;to6aiiHTbToolStripMenuItem->Name = L'AoGaBHTbl'oolStripMenuItem";

this-^o6aBHTbToolStripMenuItem->Size = System:: Drawing:: Size( 176,

22);

this->/io6aBHTbToolStripMenuItem->Text = Ь"кнопка на форуме"; this-^o6aBHTbToolStripMenuItem->Click += gcnew System::EventHandler(this, &Forml:^o6aBHTbToolStripMenuItem_Click);

//

// добавитьТ oolStripMenuItem 1

//

this->flo6aBHTbToolStripMenuIteml->Name = L"flo6aBHTbToolStripMenuIteml";

th is->zio6aBHTb'roolStri pMenu Item 1 ->Size = System::Drawing::Size(124,

22);

this-AuooaBHTbToolStripMenuItem 1 ->Text = Ь"добавить"; this->flo6aBHTbToolStripMenuIteml->Click += gcnew System::EventHandler(this, &Forml::flo6aBHTbToolStripMenuIteml_Click);

//

// y6paTbToolStripMenuItem

//

this->y6paTbToolStripMenuItem->Name = L"y6paTbToolStripMenuItem"; this->y6paTbToolStripMenuItem->Size = System::Drawing::Size(124, 22); this->y6paTbToolStripMenuItem->Text = L"y6paTb"; this->y6paTbToolStripMenuItem->Click += gcnew System::EventHandler(this, &Forml::y6paTbToolStripMenuItem_Click);

//

// TeKCTOBoeFIoHeToolStripMenuItem

//

this->TeKCTOBoerioj[eToolStripMenuItem->DropDownItems- >AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItemA >(2) {this- Aio6aBHTbToolStripMenuItem2,

this->y6paTbT oolStripMenuItem 1}); this->TeKCTOBoe]loneToolStripMenuItem->Name = L"TeKCTOBoeIIoneToolStripMenuItem";

this->TeKCTOBoenoj[eToolStripMenuItem->Size = System::Drawing::Size(176, 22);

this->TeKCTOBoenoaeToolStripMenuItem->Text = Ь"текстовое поле";

//

// flo6aBHTbToolStripMenuItem2

//

this->flo6aBHTbToolStripMenuItem2->Name =

Ь"добавить1 oolStripMenuItem2";

this-^o6aBHTbToolStripMenuItem2->Size = System::Drawing::Size(124,

22);

thi з->добавитьТ oolStripMenuItem2->T ext = Ь"добавить"; this-^o6aBHTbToolStripMenuItem2->Click += gcnew System: :EventHandler(this, &Forml::добавитьТоо18МрМепиЕет2_СИск);

//

// y6paTbToolStripMenuIteml

//

this->y6paTbToolStripMenuIteml ->Name =

L"y6paTbToolStripMenuIteml";

this->y6paTbToolStripMenuIteml->Size = System::Drawing::Size( 124, 22); this->y6paTbToolStripMenuIteml->Text = L"y6paTb"; this->y6paTbToolStripMenuIteml->Click += gcnew System: :EventHandler(this, &Form 1: :y6paTbToolStripMenuItem 1 _Click);

//

// BbixoflToolStripMenuItem

//

this->Bbixo;_[ToolStripMenuItem->Name = LMBbixoflToolStripMenuitem"; this->BbD^ToolStripMenuItem->Size = System::Drawing::Size(176, 22); Ш18->выходТоо181прМепиИет->Тех1 = Е"Выход"; 1Ыз->выходТоо18Е1рМепиЕет->СНск += gcnew System::EventHandler(this, &Forml::выходТоо18Е1рМепиЕет_СНск);

//

// button 1

//

this->buttonl->Location = System::Drawing::Point(13, 45); this->buttonl->Name = L"buttonl"; this->buttonl->Size = System: :Drawing::Size(75, 23); this->buttonl->Tablndex = 1; this->buttonl->Text = Е"подсказка"; this->buttonl->UseVisualStyleBackColor = true; this->buttonl->Click += gcnew System: :EventHandler(this,

&Forml ::buttonl_Click);

//

// textBoxl

//

this->textBoxl->Location = System::Drawing::Point(13, 96); this->textBoxl->Name = L"textBoxl"; this->textBoxl->Size = System::Drawing::Size(271, 20); this->textBoxl->Tab Index = 2;

//

// Forml                          *

//

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->AutoScaleMode = System: :Windows::Forms::AutoScaleMode::Font;

this->ClientSize = System: :Drawing::Size(341, 262);

this->Controls->Add(this->textBox 1);

this->Controls->Add(this->buttonl);

this->Controls->Add(this->menuStrip 1);

this->MainMenuStrip = this->menuStripl;

this->Name = L"Forml";

this->Text = L"Forml";

this->menuStrip 1 ->ResumeLayout(false);

this->menuStrip 1 ->PerformLayout();

this->ResumeLayout(false);

this->PerformLayout();

}

#pragma endregion

private: System::Void z;o6aBHTbToolStripMenuItem_Click(System::ObjectA sender, System::EventArgsA e) {

}

private: System::Void Ao6aBHTbToolStripMenuIteml_Click(System::ObjectA sender, System: :EventArgsA e) {

buttonl ->Visible=true;

}

private: System::Void y6paTbToolStripMenuItem_Click(System::ObjectA sender,

System: :EventArgsA e) {

buttonl->Visible=false;

}

private: System::Voidflo6aBHTbToolStripMenuItem2_Click(System::ObjectA sender,

System: :EventArgsA e) {

textBox 1 ->Visible=true;

}

private: System::Void y6paTbToolStripMenuIteml_Click(System::ObjectA sender,

System: :EventArgsA e) {

textBox 1 ->Visible=false;

}

private: System::Void выxoдToolStripMenuItem_Click(System::ObjectA sender,

System: :EventArgsA e) {

System: Environment: :Exit(System: Environment: ExitCode);

}

private: System::Void buttonl_Click(System::ObjectA sender, System::EventArgsA e) {

textBoxl->Text="Нажмите добавить и убрать для появления и исчезновения элементов с формы";

}

};

}

 

Приложение Д

 

Forml.h                               

#pragma once                       

namespace laba4 {

using namespace System; using namespace System: :ComponentModel; using namespace System:‘.Collections; using namespace System::Windows::Forms; using namespace System: :Data; using namespace System: :Drawing; using namespace System::IO; using namespace System::Text;

//<summary>

// Сводка для Forml

//

//Внимание! При изменении имени этого класса необходимо также изменить

//       свойство имени файла ресурсов ("Resource File Name") для средства компиляции

управляемого ресурса,

//       связанного со всеми файлами с расширением .resx, от которых зависит данный

класс. В противном случае,

//       конструкторы не смогут правильно работать с локализованными

//       ресурсами, сопоставленными данной форме.

// </summary>

public ref class Forml : public System::Windows::Forms::Form

{

public:

Forml (void)

{ >

InitializeComponentQ;

//

//TODO: добавьте код конструктора

//

}

protected:

//<summary>

// Освободить все используемые ресурсы.

//</summary>

~Forml()

{

if (components)

{

delete components;

}

}

protected:

private: System::Windows::Forms::OpenFileDialogA openFileDialogl;

private: System::Windows::Forms::SaveFileDialogA saveFileDialogl; private: System::Windows::Forms::ButtonA buttonl; * private: System::Windows::Forms::ButtonA button2; private: System::Windows::Forms::LabelA label 1; private: System::Windows::Forms::ListBoxA listBoxl;

protected:

private:

// <summary>

// Требуется переменная конструктора.

//</summary>

char * StrToChar(String A str)

{

cli::pin_ptr<const wchar_t> wch = PtrToStringChars(str); size_t convertedChars = 0; size_t sizelnBytes = ((str->Length + 1) *2); ermo_t err = 0;

char *ch= (char *)malloc(sizeInBytes);

err = wcstombs_s(&convertedChars, ch, sizelnBytes,wch, sizelnBytes); if (err!=0)

MessageBox::Show("wcstombs_s failed!\n"); return(ch);

}

// =:===============:,== =,

void LoadFromFile(char *File,ListBox Alb)

(char s[300];

FILE *fp; int i; i=0;

lb->Items->Clear (); if(!(fp=fopen(File,"r")))

{

MessageBox::Show("Ошибка открытия файла", "Приложение54",

MessageBoxButtons::OK,MessageBoxIcon: Asterisk);

return;

}

while (!feof(fp))

{

fgets(s,300,fp);

String Add = gcnew String(s);

/*этот способ конвертирования не удаляет последний управляющий символ,который надо

удалить:*/

int j=dd->Length-1;

dd=dd->Substring(0,j);

lb->Items-> Add(dd);

i++;

}

}

 

#pragma region Windows Form Designer generated code

//<summary>

// Обязательный метод для поддержки конструктора - не изменяйте

// содержимое данного метода при помощи редактора кода.

// </summary>

void InitializeComponent(void)

{

this->openFileDialogl = (gcnew System::Windows::Forms::OpenFileDialog()); this->saveFileDialogl = (gcnew System::Windows::Forms::SaveFileDialog()); this->buttonl = (gcnew System::Windows::Forms::Button()); this->button2 = (gcnew System::Windows::Forms::Button()); this->listBoxl = (gcnew System::Windows::Forms::ListBox()); this->labell = (gcnew System::Windows::Forms::Label()); this-> SuspendLay out();

//

// openFileDialogl

//

this->openFileDialogl->FileName = L"openFileDialogl"; this->openFileDialogl->Filter = L"Text(*.txt)|*.txt";

//

// button 1

//

this->buttonl->Location = System::Drawing::Point(12, 203); this->buttonl->Name = L"buttonl"; this->buttonl->Size = System::Drawing::Size(75, 23); this->buttonl->TabIndex = 1; this->buttonl->Text = Ь"открыть"; this->buttonl->UseVisualStyleBackColor = true;

this->buttonl->Click += gcnew System: :EventHandler(this, &Forml::buttonl_Click_l);

//

// button2

//

this->button2->Location = System: :Drawing::Point(l24, 203); this->button2->Name = L"button2"; this->button2->Size = System::Drawing::Size(75, 23); this->button2->TabIndex = 2; this->button2->Text = Е"выход"; this->button2->UseVisualStyleBackColor = true;

this->button2->Click += gcnew System::EventHandler(this, &Forml::button2_Click);

//

// listBoxl

//

this->listBoxl->FormattingEnabled = true; this->listBoxl->Location = System::Drawing::Point(5, 24); this->listBoxl->Name = L"listBoxl"; this->listBoxl->Size = System::Drawing::Size(488, 173); this->listBoxl->TabIndex = 3;

//

//label 1

//

this->label 1 -> AutoSize = true;                    *

this->labell->Location = System::Drawing::Point( 12, 8); this->labell->Name = L"labell"; this->labell->TabIndex = 4; this->labell->Text = L"Okho вывода текста";

//

// Forml

//

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->AutoScaleMode = System:: Windows: :Forms::AutoScaleMode::Font;

this->ClientSize = System::Drawing::Size(497, 242);

this->Controls->Add(this->labell);

this->Controls-> Add(this->listBox 1);

this->Controls->Add(this->button2);

this->Controls-> Add(this->button 1);

this->Name = L"Forml";

this->Text = L"Forml";

this->Load += gcnew System::EventHandler(this, &Forml::Forml_Load);

this->ResumeLayout(false);

thi s->PerformLayout();

}

#pragma endregion

private: System::Void Forml_Load(System::ObjectA sender, System::EventArgsA e) {}

private: System::Void buttonl_Click_l(System::ObjectA sender, System:EventArgsA e) { StreamA s;

this->DialogResult= System:: Windows: :Forms: :DialogResult:: OK; if (this->openFileDialogl->ShowDialog()=:= System::Windows::Forms::DialogResult::OK) {

if ((s= this->openFileDialogl->OpenFile()) != nullptr)

{

String Aa=this->openFileDialogl->FileName; char *ss=StrToChar (a);

LoadFromFile(ss, this->listBox 1);}

else

MessageBox::Show("Ошибка открытия файла");

}

}

private: System::Void button2_Click(System::ObjectA sender, System::EventArgsA e) { this->Close ();

}

};

}

2)     CPP

#include "stdafx.h"

#include <io.h>

#include <stdio.h> #include <fcntl.h>

#include <share.h>                                       *,

#include <stdlib.h>

#include <vcclr.h>

#include "Forml.h"

using namespace laba4;

[ ST AThread Attribute]

int main(array<System:: String A> Aargs)

{

// Включение визуальных эффектов Windows XP до создания каких-либо элементов управления

Application: :EnableVisualStyles();

Application:: SetCompatibleT extRenderingDefault(false);

// Создание главного окна и его запуск Application: :Run(gcnew Forml ()); return 0;

}

Список литературы

 

1.    Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д. Приемы объектно-ориентированного проектирования Паттерны проектирования - СПб.: Питер, 2013.-368 с.

2.    Госсе М., Келлер Б., Кришнамурти А., Вузворт М. Управление жизненным циклом приложений «Visual Studio 2010» профессиональный поход.- М.: ЭКОМ, 2012.- 896 с.

3.    Макконнелл С. Совершенный код.- Питер: Русская редакция, 2012.-896 с.

4.    Керниган Б., Ритчи Д. Язык программирования Си. Пер. с англ.,3-е изд., испр. - СПб.: «Невский Диалект», 2001. - 352 с.

5.    Павловская Т.А. C/C++. Программирование на языке высокого уровня: учебник для студентов вузов, обучающихся по направлению «Информатика и вычислительная техника» / Т.А. Павловская - СПб.: Питер, 2005.-461 с.

6.    Культин Н. Б. C/C++ в задачах и примерах. - СПб.: БХВ- Петербург, 2005. - 430 с.

7.    Подбельский В.В. Язык СИ++: учебное пособие. - М.: Финансы и статистика, 2003. - 560 с.

 

Сводный план 2013г., поз 71

Гульнара Абуталиновна Омарова
Клара  Тагаевна Сауанова

ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ
Методические указания к лабораторным для специальности
для студентов специальности 5В070200 – Автоматизация и управление

Редактор Л.Т.Сластихина
Специалист по стандартизации Н.К. Молдабекова

Подписано в печать _______
Тираж 80 экз.  
Объем____уч.-изд.л.
Формат 60х84 1/16
Бумага типографская №__
Заказ ____.Цена___ _тенге

Копировально-множительное бюро
Некоммерческое акционерное общество
“Алматинский университет энергетики и связи”
050013, Алматы, ул.Байтурсынова, 126