- •«Белгородский государственный национальный исследовательский университет»
- •Кафедра Прикладной информатики и информационных технологий
- •1 Курса группы 12002108
- •Белгород 2022 содержание
- •Введение
- •1 Общая постановка задачи
- •2 Разработка алгоритмов и структур данных
- •VidNum(poleVis, pole, dff)
- •VidNum()
- •3.1 Программирование задачи в консольном варианте
- •3.2 Программирование задачи с использованием экранных форм
- •4 Демонстрация разработанного программного приложения
- •4.1 Демонстрация задачи в консольном варианте
- •4.2 Демонстрация задачи с использованием экранных форм
- •Заключение
- •Список использованных источников
- •Приложение a
- •Приложение b
3.1 Программирование задачи в консольном варианте
Использованные библиотеки показаны на рисунке 3.1.1
Рисунок 3.1.1 – Использованные библиотеки
Библиотека iostream используется для организации ввода-вывода. Библиотека iomanip содержит манипуляторы, используемые при работе с потоковыми операциями (задаёт ширину поля отображения для следующего элемента в потоке.). Библиотека ctime используется для генерации зерна по системному времени компьютера c srand. Библиотека cstdio обеспечивает выполнение операций ввода-вывода при работе с файлами. Библиотека windows.h используется для получения данных об операционной системе.
Пользовательские функции, используемые в программе, представлены на рисунке 3.1.2.
Рисунок 3.1.2 – Использованные пользовательские функции
Генерация «базового поля» и пользовательское меню представлены на рисунке 3.1.3.
Рисунок 3.1.3 – Генерация «базового поля» и пользовательское меню
Определение данных текущей игры, процесс игры и запись результатов в файл представлены на рисунке 3.1.4.
Рисунок 3.1.4 – Определение данных текущей игры, процесс игры и запись результатов в файл
Функция вывода поля и функция перестановки столбцов и строк представлены на рисунке 3.1.5.
Рисунок 3.1.5 – Функция вывода поля и функция перестановки столбцов и строк
Функция заполнения элементов массива соответствующим сложности количеством нулей (пустых клеток) представлена на рисунке 3.1.6
Рисунок 3.1.6 – Функция заполнения элементов массива нулями
Ввод цифры в клетку поля и проверка на правильность представлены на рисунке 3.1.7.
Рисунок 3.1.7 – Ввод цифры и проверка на правильность
Функция дополнения файла новыми данными и функция чтения данных из файла и поиска пользователя по имени представлены на рисунке 3.1.8.
Рисунок 3.1.8 – Чтение данных из файла, поиск по имени и запись в файл новых данных
Заполнение динамического массива данными из файла и его сортировка по возрастанию представлены на рисунке 3.1.9.
Рисунок 3.1.9 – Заполнение динамического массива данными из файла и сортировка
3.2 Программирование задачи с использованием экранных форм
В экранных формах будут реализованы два действия. Первое – создание ячеек и их заполнение цифрами в соответствии с правилами судоку. Левый элемент DataGridView (поле-таблица) будет содержать заполненные и пустые клетки, правый элемент DataGridView будет отображать готовое решение варианта судоку из левого элемента. Второе действие – это очистка полей, которая может быть использована для последующей повторной генерации новых полей. Экранная форма представлена на рисунке 3.2.1.
.Рисунок
3.2.1 – Экранная форма
В экранной форме используются элементы:
dataGridView – таблица для вывода поля;
button – кнопка создания нового варианта поля и кнопка очистки;
label – пояснительные записки для элементов;
checkBox – оператор выбора, определяющий, будет ли заполнено готовое поле с решением.
Для создания фонового изображения в экранной форме использовано свойство BackgroundImage, которое использует выбранное разработчиком и хранящееся на компьютере изображение.
Работа кнопки «Заполнить» схожа с работой функций perestanovka, vidNum, а также части функций main и play из консольного варианта программы. Она создаёт «базовое поле», перемешивает его в соответствии с правилами игры, а затем выводит требуемые элементы. Программный код кнопки «Заполнить» представлен в приложении B.
Кнопка «Очистить» использует функцию Clear для обоих элементов dataGridView, удаляя их строки. Программный код кнопки «Очистить» представлен в приложении B.
Таким образом, в третьем разделе были реализованы алгоритмы как в консольном варианте, так и в экранных формах.
