Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Создать обработчики событий для остальных пунктов меню

ЛАБОРАТОРНАЯ РАБОТА 3

Создание Windows-приложения для обработки матрицы

Цель работы: научиться создавать элементы интерфейсов для приложения и писать простой обработчик событий на C++ для приложения Windows Forms, работающего под управления.NET Framework.

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

В лабораторной работе необходимо научиться использовать элементами управления, такими как Надписи (label), Текстовые поля (textbox), Кнопки (Button) и Меню (MenuStrip) для разработки программного интерфейса. Лабораторная работа состоит из двух заданий.

Задание 1. Создать на форме меню для ввода и обработки матрицы.

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

Создать новый проект Windows Forms с именем form_lab3.cpp.

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

Сначала настроим свойства формы: введем заголовок формы в свойство Text, увеличим ширину формы и зададим цвет формы, изменив свойство BackColor, например,на цвет LightGrey из списка Web.

Поместить на форму компонент MenuStrip (Меню). При этом на форме появится светлый прямоугольник с текстом: «Вводить здесь». Щелкнув мышью по прямоугольнику, вы перейдете в режим ввода названия пункта меню. Например, назовем первый пункт: «Выбор цвета формы». Ниже откроется прямоугольник для ввода пунктов подменю, а правее: названия следующего пункта меню. Таким образом, создайте первый пункт меню следующего вида:

Т.к. выбор каждого пункта меню должен приводить к выполнению некоторых действий, создайте обработчики событий для каждого подпункта этого пункта меню, изменяя свойство формы BackColor, например, так:

this->BackColor=Color::Red;

Откомпилируйте проект и проверьте работу первого пункта меню.

Добавим следующий пункт меню, назвав его «Работа с матрицей», а для него создадим два подпункта: «Формирование» и «Обработка». Меню примет вид:

 

Закончим формирование меню, добавив третий пункт «О программе», в котором создадим подпункты: «Сведения о разработчике» и «Задание по обработке».И последний пункт будет называться «Выход».

Перетащим на форму Надпись (label) для вывода результатов обработки и разместим её на середине формы. Форма примет вид:

Создать обработчики событий для остальных пунктов меню

Перейдем к написанию обработчиков событий для пункта меню «Работа с матрицей». Напишем две функции: для формирования матрицы датчиком случайных чисел и для поиска максимального значения и поместим их в библиотечный файл с исходными кодами. Для этого щелкнем правой кнопкой мыши в Обозревателе решений на папке Файлы исходного кода, далее вызовем меню правой кнопкой мыши. В появившемся меню выберем: Добавить -> Создать Элемент. В открывшемся окне вписываем название файла – Matrica.cpp и нажимаем Добавить.

В файл поместим следующий код:

#pragma once

#include "stdafx.h"

#include "stdlib.h" //библиотека содержит функцию rand()

void form(int matr[5][5])

{

int i,j;

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

for(j=0;j<5;j++)

matr[i][j]=rand()%100-40;

}

int Maximum(int matr[5][5])

{int i,j;int m=0;

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

for(j=0;j<5;j++)

if(matr[i][j]>m) m=matr[i][j];

return m;

}

Следующим шагом нужно добавить заголовочный файл Matrica.h в проект. Для этого щелкнем правой кнопкой мыши в Обозревателе решений на папке Заголовочные файлы, далее меню Добавить -> Создать Элемент, вписываем название файла – Matrica.h и нажимаем Добавить. В данном файле будет содержаться прототипы (заголовки) разработанных функций и описание общих переменных. Добавляем туда следующий исходный код:

static int A[5][5]; //Описание матрицы

void form(int matr[5][5]);

int Maximum(int matr[5][5]);

Далее подключаем этот файл к проекту с помошью директивы #include – Открываем главный файл проекта:form_lab3.cpp и добавляем туда после строчки #include "stdafx.h" следующий код:

#include "Matrica.h"

Теперь наш заголовочный файл подключен к проекту и все готово к созданию обработчиков событий.

Приведите обработчики событий выбора пунктов меню «форматирование» и «обработка» к следующему виду: //формирование матрицы датчиком случайных чисел

private: System::Void формированиеToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

int i,j; System::String^s=gcnew String("");

form(A); //вызов функции Form()

// Вывод матрицы в окно MessageBox

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

{

for(j=0;j<5;j++)

s=s+System::Convert::ToString(A[i][j])+"\t";

s=s+"\r\n";

}

MessageBox::Show(s," Матрица");

}

 

//обработка матрицы

private: System::Void обработкаToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

int max;

max=Maximum(A); //вызов функции Maximum()

label1->Text="Значение максимума=" +System::Convert::ToString(max);

}

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

Процедуру обработки события «выход» приведем к следующему виду:

private: System::Void выходToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

this->Close();

}

Откомпилируйте проект и проверьте работу всех пунктов меню.

Задание 2. Обработка массива по индивидуальному заданию.

Напишите программу на языке С++ для обработки матрицы по варианту, выбранному из методических указания к лабораторной работе №11.



<== предыдущая лекция | следующая лекция ==>
Расшифровка параметров зубчатых передач цилиндрического двухступенчатого редуктора | Расчет по экспериментальным данным
Поделиться с друзьями:


Дата добавления: 2017-03-12; Мы поможем в написании ваших работ!; просмотров: 426 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Не будет большим злом, если студент впадет в заблуждение; если же ошибаются великие умы, мир дорого оплачивает их ошибки. © Никола Тесла
==> читать все изречения...

2575 - | 2263 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.