Создание программы-интерпретатора блок-схем
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
о на рисунке 6.1.
Рисунок 6.1 - Внешний вид главной формы приложения
На главной форме приложения расположены следующие компоненты, определяющие функциональность программы:
. главное меню;
. панель инструментов и операций;
. окно с исходным кодом программы, соответствующей построенной схеме;
. окно с результатом выполнения программы.
6.1 Описание главного меню
Главное меню программы имеет два раздела Файл и Код программы.
Раздел Файл представлен на рисунке 6.2.
Рисунок 6.2 - раздел Файл главного меню программы
Описание опций раздела Файл главного меню программы:
. Новая схема - создать новую схему.
. Открыть - открыть существующую схему из формата XML.
. Сохранить - сохранить блок-схему в уже открытый файл (если файл был открыт) иначе сохранить в новый файл.
. Сохранить как - сохранить схему в новый файл.
. Выход - выйти из программы.
Раздел Код программы представлен на рисунке 6.3.
Рисунок 6.3 - раздел Код программы главного меню программы
Выполнить - запустить выполнение кода программы. Результат выполнения будет отображен в окне Результат выполнения кода.
6.2 Описание панели инструментов и операций
Ниже приведено описание панели инструментов и операций, которые используются в программе:
. Кнопка Обычный блок позволяет добавить в схему блок процесса.
. Кнопка Условие позволяет добавить в схему блоки условия.
. Кнопка Цикл позволяет добавить в схему блоки цикла.
. Кнопка Очистить схему удаляет всю структуру схемы и возвращает схему к исходному состоянию begin-end.
. Кнопка Удалить блок позволяет удалить выделенный блок или всю ветку, чтобы выбрать блок надо кликнуть по нему.
6.3 Описание вставки новых блоков
Для вставки нового блока нужно:
. на панели инструментов нажать кнопку нужного блока;
. на схеме появятся точки для вставки нового блока (рисунок 6.4). Узел, находящий под курсором, подсвечивается синим цветом, остальные доступные узлы красным.
Рисунок 6.4 - Режим вставки нового блока
3. Кликнуть по нужной точке вставки. Вставится новый блок и программа сама выровняет все блоки схемы (рисунок 6.5):
Рисунок 6.5 - Результат вставки нового блока
6.4 Выполнение кода блок схемы
По ходу редактирования блок схемы, в правой части окна будет обновляться код схемы. В любой момент его можно выполнить, воспользовавшись кнопкой Выполнить из раздела Код программы в главном меню.
Главным достоинством созданной нами программы являются простота создания схем, не нужно открывать множество окон и всплывающих меню, для того, чтобы создать схему. Откройте программу, выберите нужные блоки и подпишите их. Схема создана, теперь вы можете экспортировать созданную схему в какую-либо программу, чтобы интегрировать схему, куда вам нужно.
7. Примеры программ созданных в редакторе
В этом разделе приведены программы, созданные в редакторе.
7.1 Решение квадратного уравнения
Пример решения квадратного уравнения приведен на рисунке 7.1.
Рисунок 7.1 - Решение квадратного уравнения
7.2 Сортировка массива пузырьком
Пример сортировки массива приведен на рисунке 7.2.
Рисунок 7.2 - Сортировка массива пузырьком
.3 Среднее значение элементов массива
Пример вычисления среднего значения элементов массива приведен на рисунке 7.3.
Рисунок 7.3 - Среднее значение элементов массива
Заключение
В ходе данной курсовой работы была разработана система визуального программирования. Были реализованы основные функции этой системы, такие как сохранение построенной схемы в XML, автоматическая генерация программного кода и автоматическое расположение блоков на форме.
Был разработал удобный визуальный редактор для создания блок-схем программ. С его помощью пользователь может в интерактивном режиме проверять результат своей работы, запускать выполнение кода своей программы.
Программа была написана на платформе .NET Framework, были изучены и использованы некоторые возможности этой платформы.
Полученную программу можно использовать в школах на начальных этапах обучения программированию.
Приложение А
(справочное)
Исходный текст программы редактора схем
1) Block.csSystem;System.Collections.Generic;System.Drawing;flowchart.blocks;System.Xml.Serialization;flowchart
{
[Serializable]abstract class Block
{List Items;
[XmlIgnore]Block Branch;int w = 100;int h = 50;int marginTop;int marginRight;int marginBottom;int marginLeft;
[XmlIgnore]int width;
[XmlIgnore]int height;
[XmlIgnore]int X;
[XmlIgnore]int Y;
[XmlIgnore]bool isSelected = false;
//смещение вниз чтобы не перекрывало точку вставки
protected int dy = 18;
[XmlAttribute]string Text;
[XmlAttribute]string TextAtTheEnd;Font drawFont = new Font("Sans Serif", 10);SolidBrush drawBrush = new SolidBrush(Color.Black);static StringFormat strFormat = new StringFormat()
{= StringAlignment.Center,= StringAlignment.Center
};Block() { }Block (string text)
{= null;= new List();= 0;= 0;.Text = text;
}virtual bool PointInsideBlock(int x, int y)
{blockX = X + width / 2 - w/2;blockY = Y + dy;((x > blockX && x blockY && y < blockY + h));
}void AdjustSize()
{clientWidth = 0;clientHeight = 0;(this is Branch)
{(Block item in Items)
{.AdjustSize();(clientWidth < item.width)= item.width;+= item.height;
}minWidth = 180;minHeight = 16;(clientHeight < minHeight)= minHeight;(clientWidth < minWidth)= minWidth;= clientHeight;= clientWidth;
}
{(Block item in Items)
{.AdjustSize();(clientHeight < item.height)= item.height;+= item.width;
}= 40;= 40;