Uploaded by Arina Senina

Lab 5

advertisement
Министерство цифрового развития, связи и массовых коммуникаций
Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное
образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра информатики
ЛАБОРАТОРНАЯ РАБОТА № 5
«Создание приложений Windows Forms для формирования и обработки
двумерных массивов»
по языкам программирования
Москва 2021 г.
1) Индивидуальное задание на разработку проекта
Вариант – 16
16) Сформируйте двумерный массив K(m,n) заданных размеров из случайных
целых чисел в заданном диапазоне. Преобразуйте массив перестановкой
столбцов: первого с последним, второго с предпоследним и т.д.
2) Формализация задачи
Из условия задания следует, что его выполнение распадается на
следующие этапы, реализуемые соответствующими функциями приложения:
 ввод исходных данных (размеры исходного массива и границы
диапазона случайных чисел) – функция GetInt;
 формирование исходного массива – функция input;
 вывод исходного массива в заданный список (элемент управления
ListBox) формы – функция output;
 преобразование исходного массива перестановкой столбцов
первого с последним, второго с предпоследним – функция task; эта
функция использует функцию revers для перестановки элементов в
одной строке исходного массива ;
 вывод нового массива – функция output;
 освобождение памяти сформированных массивов – функция del.
Вызов функций формирования и вывода динамических массивов
производится в событийной процедуре по нажатию кнопки Решить.
3) Разработка графического интерфейса пользователя приложения
2
Рис.1 – Графический интерфейс проекта.
3
Объект
Класс объекта
Свойство
Значение свойства
Форма
Form1
Name
Text
Form1
BackColor (Palette)
Name
Menu
txtM
TextAlign
Font
Right
Arial; 9pt
Enabled
Name
True
txtN
TextAlign
Font
Right
Arial; 9pt
Enabled
True
Свойство
Значение свойства
Name
txtA
TextAlign
Font
Right
Arial; 9pt
Enabled
Name
True
txtB
TextAlign
Font
Right
Arial; 9pt
Enabled
Name
True
cmdTask
Text
Font
Решить
Arial;9pt
Name
cmdExit
Text
Font
Выход
Arial;9pt
Name
lstMatr1
ScrollAlwaysVisible
Font
True
HorizontalScrollbar
True
TabStop
Name
False
lstMatr2
ScrollAlwaysVisible
Font
True
Текстовое
поле
Текстовое
поле
Объект
Текстовое
поле
Текстовое
поле
TextBox
TextBox
Класс объекта
TextBox
TextBox
Кнопка
Button
Кнопка
Button
Список
ListBox
Список
ListBox
Динамические двумерные
массивы
4
Courier New; 9pt.
Courier New; 9pt.
HorizontalScrollbar
True
TabStop
False
4) Разработка схемы алгоритма функции
Начало
task()
Вх.параметры:
Массив matr[m,n]
размеры массива m и n
Возвращаемое значение:
Преобразованный массив
matr[m,n]
Начало
revers()
k=0
p=n-1
k=0
j=n/2
i=[0;m-1]
i=[0,j-1]
revers(matr,n)
k=k+1
u=matr[p-i]
matr[p-i]=matr[k]
matr[k]=u
k=k+1
Конец
task()
Конец
revers()
Вх.параметры:
Массив matr[n]
размер массива n
5) Разработка программного кода приложения
Рис. 2 – Программные коды заголовочных файлов Task.h.
Рис. 3 – Программные коды заголовочных файлов stdafx.h.
5
Рис. 4 – Программный код, task.cpp.
6
Рис. 5 – Программный код файла GetPut.cpp.
7
Рис. 6 – Программные коды событийных процедур.
6)Результаты выполнения проекта
8
Доказательство правильности результатов
1. На первом рис. число столбцов задано нечётным числом, поэтому
центральный элемент не нужно переставлять, и он остаётся без
изменения, а другие элементы переставляются из начала в конец, и
наоборот.
2. На втором рис. число столбцов задано чётным числом, это
означает, что все элементы будут переставляться местами, а
именно первый с последним, второй с предпоследним и т.д.
Исходя из этого следует вывод, что приложение работает исправно.
9
Download