Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии программирования. Учебно-методическое пособие для СПО

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
2.Способы описания массивов на языке Си. Понятия размерности массивов,
описание размерности массивов.
3.Задание типов элементов массива. Могут ли элементы массива иметь
разный тип?
4.Как располагаются элементы массива в памяти?
5.Чем отличаются алгоритмы поиска максимального и минимального
элемента массива.
6.Что является общим во всех алгоритмах формирования и обработки
массивов?
7. Чем отличаются алгоритмы расчета суммы и подсчета числа элементов
массива.
81
Занятие № 12
Создание меню в Windows-приложение
Цель работы: научиться создавать элементы интерфейсов для приложения и
писать простой обработчик событий на C++ для приложения WindowsForms,
работающего под управления .NET Framework.
Методические указания к практическому занятию
В работе необходимо научиться пользовать элементами управления, такими как Надписи (label), Текстовые поля (textbox), Кнопки (Button) и Меню (MenuStrip) для разработки программного интерфейса. Работа состоит из двух заданий.
Задание 1. Создать на форме меню для ввода и обработки матрицы.
В работе необходимо создать форму с меню, предназначенного формировать
датчиком случайных чисел матрицу размером 5х5, обрабатывать эту матрицу и выводить результаты вычислений. Кроме этого предусмотрим вывод информации о разработчике на экран. В качестве примера обработки
определим максимальное значение из элементов матрицы. Для этого:
1. Создать новый проект WindowsFormsс именем form_lab9.cpp.
2. Разместить на форме элементы управления и настроить их свойства
Сначала настроим свойства формы: введем заголовок формы в свойство Text,
увеличим ширину формы и зададим цвет формы, изменив свойство BackColor,
например, на цвет LightGrey из списка Web.
Поместить на форму компонент MenuStrip (Меню).При этом на форме появится светлый прямоугольник с текстом: «Вводить здесь». Щелкнув мышью по прямоугольнику, вы перейдете в режим ввода названия пункта меню. Например, назовем первый пункт: «Выбор цвета формы». Ниже откроется прямоугольник для ввода пунктов подменю, а правее: названия следующего пункта меню. Таким образом, создайте первый пункт меню
следующего вида:
82
Т.к. выбор каждого пункта меню должен приводить к выполнению некоторых действий, создайте обработчики событий для каждого подпункта этого пункта меню, изменяя свойство формы BackColor,
например, так:
this->BackColor=Color::Red;
Откомпилируйте проект и проверьте работу первого пункта меню.
Добавим следующий пункт меню, назвав его «Работа с матрицей», а для него
создадим два подпункта: «Формирование» и «Обработка». Меню примет вид:
Закончим формирование меню, добавив третий пункт «О программе», в котором создадим подпункты: «Сведения о разработчике» и «Задание по
обработке». И последний пункт будет называться «Выход».
83
Перетащим на форму Надпись (label) для вывода результатов обработки и разместим её на середине формы. Форма примет вид:
3. Создать обработчики событий для остальных пунктов меню
Перейдем к написанию обработчиков событий для пункта меню «Работа с матрицей». Напишем две функции: дляформирования матрицы датчиком случайных чисел и для поиска максимального значения и поместим их в библиотечный файлс исходными кодами. Для этого щелкнем правой кнопкой
мыши в Обозревателе решений на папке Файлы исходного кода, далее
вызовем меню правой кнопкой мыши. В появившемся меню выберем:
Добавить -> Создать Элемент. В открывшемся окне вписываем название файла – Matrica.cpp и нажимаем Добавить.
В файл поместим следующий код:
#pragmaonce #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;
84
}
int Maximum(int matr[5][5])
{int i,j;intm=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 intA[5][5]; //Описание матрицы void form(intmatr[5][5]); int Maximum(intmatr[5][5]);
Далее подключаем этот файл к проекту с помощью директивы #include – Открываем главный файл проекта: form_lab9.cpp и добавляем туда после строчки #include "stdafx.h" следующий код:
#include "Matrica.h"
Теперь наш заголовочный файл подключен к проекту и все готово к созданию
обработчиков событий.
Приведите обработчики событий выбора пунктов меню «форматирование» и
«обработка» к следующему виду:
//формирование матрицы датчиком случайных чисел
private: System::VoidформированиеToolStripMenuItem_Click(System:: Object^
sender, System::EventArgs^ e) { int i,j;
85
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(); }
Откомпилируйте проект и проверьте работу всех пунктов меню.
86
Задание 2. Обработка массива по индивидуальному заданию.
Напишите программу на языке С++ для обработки матрицы по варианту:
ВАРИАНТ №1 Написать программу
- сформировать матрицу А(NхN)
- найти в матрице количество четных и количество нечетных чисел матрицы;
- уменьшить значения диагональных (главной и побочной) элементов
матрицы на наименьшее число, полученное в предыдущем пункте
задания. Программа должна осуществить вывод исходной матрицы и преобразованной.
ВАРИАНТ №2 Написать программу
- сформировать матрицу А(NхN)
- найти в матрице количество отрицательных и количество положительных чисел матрицы;
- уменьшить все значения матрицы на наибольшее число, полученное в
предыдущем пункте задания.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №3 Написать программу
- сформировать матрицу А(NхN)
- найти в матрице количество отрицательных чисел на главной диагонали и на побочной диагонали матрицы отдельно;
- увеличить элементы матрицы на наименьшее число, полученное в
предыдущем пункте задания.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
87
ВАРИАНТ №4 Написать программу
- сформировать матрицу А(NхN)
- найти в матрице количество четных чисел на главной диагонали матрицы;
- уменьшить значения элементов матрицы, стоящих под побочной
диагональю на число, полученное в предыдущем пункте задания.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №5 Написать программу
- сформировать матрицу А(NхN)
- найти в матрице количество нечетных чисел под главной диагональю матрицы;
- уменьшить все отрицательные значения матрицы на число, полученное
в предыдущем пункте задания.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №6 Написать программу
- сформировать матрицу А(NхN)
- найти в матрице количество четных чисел над главной диагональю матрицы;
- найти значения максимального на главной диагонали и минимального
элемента матрицы на побочной диагонали.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №7 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(6х6);
88
- найти в матрице количество отрицательных чисел под главной диагональю матрицы;
- увеличить элементы второго столбца матрицы на число, полученное в предыдущем пункте.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №8 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(6х6);
- найти в матрице сумму чисел, стоящих над побочной диагональю;
- увеличить элементы третьего столбца матрицы на число, полученное в
предыдущем пункте. Программа должна осуществить вывод исходной матрицы и преобразованной.
ВАРИАНТ №9 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(4х4);
- найти в матрице количество нулевых элементов;
- увеличить все отрицательные числа матрицы на число, полученное в
предыдущем пункте.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №10 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(6х6);
- найти в матрице сумму отрицательных чисел;
- увеличить элементы последней строки матрицы на число, полученное в
предыдущем пункте.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
89
ВАРИАНТ №11 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(5х6);
- найти в матрице сумму положительных чисел;
- увеличить отрицательные элементы матрицы на число, полученное в
предыдущем пункте.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №12 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(3х6);
- найти в матрице минимальное отрицательное число;
- увеличить элементы первой строки матрицы на число, полученное в
предыдущем пункте. Программа должна осуществить вывод исходной матрицы и преобразованной.
ВАРИАНТ №13 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(5х5);
- найти в матрице количество положительных чисел;
- увеличить элементы побочной диагонали на число, полученное в
предыдущем пункте.
Программа должна осуществить вывод исходной матрицы и
преобразованной.
ВАРИАНТ №14 Написать программу
- сформировать датчиком случайных чисел целочисленную матрицу А(6х4);
- найти в матрице минимальное положительное число;
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]