Федеральное государственное бюджетное образовательное учреждение Высшего профессионального образования
Московский государственный технологический университет «СТАНКИН»
(ФГБОУ ВПО МГТУ «СТАНКИН»)
Факультет Кафедра
ИТС ИТ и ВС
КУРСОВАЯ РАБОТА
ПО ПРЕДМЕТУ «ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ»
Выполнил:
Студент 2 курса
группы ИДБ–12–04
Долгов П.М.
Принял:
Преподаватель
Лакунина О.Н.
Москва 2014
ТЕКСТ ЗАДАНИЯ
Написать программу, реализующую поставленную задачу в виде многооконного приложения. Задача заключается в смене элементов квадратной матрицы между 1-2 и 3-4 четвертями. Матрица делится на четверти ровно по середине.
Описание интерфейса:
При запуске программы создаётся окно выбора интерфейса (SDI и MDI).
Далее создается главное окно с пунктами меню: Файл, Правка, Окно, Справка.
В вкладке (Файл) есть действия: Выход - закрыть программу.
В вкладке (Правка) есть действия: Размерность матрицы.
В вкладке (Окно) есть: Начальные условия, Решение.
В вкладке (Справка) есть: О программе
Описание спроектированных окон:
Окно Выбор интерфейса:
Это окно предназначено для выбора интерфейса SDI или MDI.
Окно Главное окно:
Это главное окно с панелью управления. Во вкладке «Файл» есть функция выхода из программы, «Выход».
Окно Размерность матрицы:
В этом окне задаётся размерность матрицы. Размерность не может быть меньше 2, т.к в противном случае матрица не будет иметь решения.
Окно Начальные условия:
В этом окне задаются начальные условия. Присутствует datagridview для ввода данных, также есть кнопка «Сгенерировать случайно»[для заполнения массива случайными значениями от -99 до 99]) и «Выделить диагонали».
Окно Решение:
В этом окне происходит смена значений 1-2 и 3-4 четвертей массива при нажатии кнопки «Поменять местами»
Окно О программе:
В этом окне представлены сведения о программе.
Использованные основные переменные:
Основные переменные |
|
nud |
Размерность матрицы |
Основные переменные класса |
|
[,] mas |
Матрица, получаемая из DataGridView |
in1, in2 |
Индексы для индексатора |
i, j |
Индексы для работы с массивами |
Основные переменные статического класса |
|
Massiv |
Хранит исходную матрицу |
N |
Хранит размерность матрицы |
SV |
Хранит свойство для разделения матрицы |
POL |
Хранит номер середины матрицы |
Блок-схема алгоритма решения задачи:
Текст программы:
Файл Class1
namespace WindowsFormsApplication3
{
static public class Class //статический класс для хранения исходной матрицы, свойств
{
public static int[,] Massiv; //объявление статического массива
public static int N,SV,POL; //объявление переменных
public static void SuperMas(int n) //выделение памяти для массива
{
N = n;
Massiv = new int[N, N];
}
public static void kraska(int svojstvo, int polovina) //получение свойства и параметра
{
SV = svojstvo;
POL = polovina;
}
}
class obrabotka //класс в котором обрабатывается массив
{
public int[,] mas; //объявление массива
public obrabotka(){mas = new int[Class.N,Class.N];} //конструктор
public int this[int in1, int in2] //индексатор для заполнения массива
{
get
{
return mas[in1, in2];
}
set
{
mas[in1, in2] = value;
}
}
public void matrica() //функция передачи значений матрицы в статический класс
{
for (int i = 0; i < Class.N; i++)
for (int j = 0; j < Class.N; j++)
Class.Massiv[i, j] = mas[i, j];
}
}
}
Файл Выбор интерфейса
namespace WindowsFormsApplication3
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent(); //инициализация формы
}
private void Form2_Load(object sender, EventArgs e) //событие загрузки формы
{
}
private void button1_Click(object sender, EventArgs e) //событие происходящее при нажатии первой кнопки(SDI)
{
Form f3 = new Form3(); //объявление новой формы главного окна
f3.Show(); //показ формы
Hide(); //сворачивание формы выбора интерфейса
}
private void button2_Click(object sender, EventArgs e) //событие происходящее при нажатии второй кнопки(MDI)
{
Form f3 = new Form3(); // объявление новой формы главного окна
f3.IsMdiContainer = true; //объявление формы главного меню как MDI
f3.Show(); //показ формы
Hide();//сворачивание формы выбора интерфейса
}
}
}
