Автор работы: Пользователь скрыл имя, 20 Декабря 2011 в 10:11, курсовая работа
Различные схемы являются неотъемлемой частью любой информационной системы или программного продукта. Существует множество схем создающийся по различным стандартам, в частности стандарт ГОСТ 19.701 различает следующие схемы:
1. Схема данных.
2. Схема программы.
3. Схема работы системы.
4. Схема взаимодействия программ.
5. Схема ресурсов системы.
ВВЕДЕНИЕ 3
1. Аналитический обзор существующих программ-редакторов схем 4
1.1 Microsoft Offise Visio 2007 4
1.2 Редактор блок-схем 5
1.3 FCEditor 6
1.4 Вывод по аналитическому обзору 6
2. Выбор технических средств 8
3. Диграммы 9
3.1 Функциональная модель 9
3.2 Функционально-стоимостной анализ IDEF0-схемы 14
3.3 Диаграмма потоков данных 15
3.4 Диаграмма прецендентов 16
3.5 Диаграмма последовательностей 17
3.6 Диаграмма классов 18
4. Описание системы…………………......……………………………………………….....…23
ЗАКЛЮЧЕНИЕ 26
ПРИЛОЖЕНИЕ А(справочное)Исходный текст пограммы…..……………….…………….27
СПИСОК ЛИТЕРАТУРЫ
Для отображения элементов схемы на экране используется библиотека GDI, типа и функции из пространства имен System.Drawing и System.Drawing.Drawing2d.
В программе используются стандартные типы GDI такие как Pen, Font, Brush, Point. Для рисования графических примитивов используются функции GDI такие как DrawLine, DrawCurve и т.п.
Более
подробно рассмотреть классы системы
можно в Приложении А.
4. Описание системы
Нами было создано приложение программа-редактор схем. С помощью этой программы можно создавать, сохранять, редактировать схему, а также выполнять проверку схемы. Главная форма приложения показана на рис. 4.1.
Рисунок
4.1 – Внешний вид главной формы приложения
На главной форме приложения расположены следующие компоненты, определяющие функциональность программы:
Если щёлкнуть два раза правой кнопкой мыши на блоке или на стрелке, то откроется дочерняя форма «Свойства элемента» (рис. 4.2):
Рисунок 4.2 – Внешний вид дочерних форм
На этой форме есть панель изменения текста для блока, всплывающее меню изменения толщины линий для блока, кнопки постановки наконечников стрелок в начале и\или в конце стрелки, кнопка пунктира для стрелок, а также кнопки удаления блока или стрелки.
Главным достоинством созданной нами программы являются простота создания схем, не нужно открывать множество окон и всплывающих меню, для того, чтобы создать схему откройте программу, выберите нужный тип схемы, далее поместите нужные блоки и связи в рабочую область и правильно скомпонуйте их (рис. 4.3):
Рисунок
4.3 – Созданная программа
Схема
создана, теперь можете нажать кнопку
«проверить схему», чтобы проверить
правильность построения схемы. После
этого вы можете экспортировать созданную
схему в какую-либо программу, чтобы интегрировать
схему, куда вам нужно.
В ходе данной курсовой работы были выявлены важные функции программ-редакторов схем, такие как:
1. Возможность экспорта созданной схемы в различные форматы.
2. Обладание автоматической «подгонкой» блоков и стрелок.
3. Возможность создания схем разного типа.
Некоторые из этих функций были успешно реализованы в программе.
В ходе разработки курсовой работы были использованы различные виды схем, например IDEF0 или UML, были изучены различные программы, позволяющие строить эти схемы, такие как BPWin и Wicrosoft Offise Visio 2007.
Созданная
нами программ может применяться в
качестве учебной при создании схем по
ГОСТ 19.701.
Приложение А
(справочное)
Исходный текст программы
1) mainForm.cs – главная форма программы
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml.Serialization;
namespace FCEditor
{
public partial class MainForm : Form
{
WorkAreaForm workAreaForm;
Configuration config = new Configuration();
int fontSize = 12;
public MainForm()
{
InitializeComponent();
workAreaForm = new WorkAreaForm();
workAreaForm.MdiParent = this;
workAreaForm.drawFont = new Font("Arial", 12);
workAreaForm.Show();
toolStripComboBox1.ComboBox.
toolStripComboBox1.ComboBox.
toolStripComboBox1.
toolStripComboBox2.
toolStripTextBox1.LostFocus += new EventHandler(
lineThicknesstoolStripTextBox.
toolStripTextBox1.Text = Convert.ToString(workAreaForm.
comboBox1.SelectedIndex = 0;
}
private void initBlockPut(int num)
{
if (workAreaForm.putBlock || workAreaForm.putArrow)
{
return;
}
else
{
workAreaForm.putBlock = true;
workAreaForm.blockType = num;
workAreaForm.Cursor = Cursors.Cross;
}
}
private void initArrowPut(int num)
{
if (workAreaForm.putBlock || workAreaForm.putArrow)
{
return;
}
else
{
workAreaForm.putArrow = true; //нужно нарисовать фигуру
workAreaForm.arrowType = num;
workAreaForm.Cursor = Cursors.Cross;
}
}
private void button1_Click(object sender, EventArgs e) { initBlockPut(1); }
private void DataBlockButton_Click(object sender, EventArgs e) { initBlockPut(2); }
private void DecisionBlockButton_Click(
private void RamBlockButton_Click(object sender, EventArgs e) { initBlockPut(4); }
private void SerialAcessMemoryBlockButton_
private void ManualInputButton_Click(object sender, EventArgs e) { initBlockPut(6); }
private void PredefinedProcessButton_Click(
private void ManualOperationButton_Click(
private void PreparationButton_Click(object sender, EventArgs e) { initBlockPut(9); }
private void button10_Click(object sender, EventArgs e) { initBlockPut(10); }
private void button11_Click(object sender, EventArgs e) { initBlockPut(11); }
private void button12_Click(object sender, EventArgs e) { initBlockPut(12); }
private void button13_Click(object sender, EventArgs e) { initBlockPut(13); }
private void button14_Click(object sender, EventArgs e) { initBlockPut(14); }
private void button15_Click(object sender, EventArgs e) { initBlockPut(15); }
private void button16_Click(object sender, EventArgs e) { initBlockPut(16); }
private void button17_Click(object sender, EventArgs e) { initBlockPut(17); }
private void button18_Click(object sender, EventArgs e) { initBlockPut(18);
}
private void button2_Click(object sender, EventArgs e) { initArrowPut(1); }
private void button3_Click(object sender, EventArgs e) { initArrowPut(2); }
private void horizontalArrowButton_Click(
private void verticalArrowButton_Click(
static private Font ChangeFontSize(Font font, float fontSize)
{
if (font != null)
{
float currentSize = font.Size;
if (currentSize != fontSize)
{
font = new Font(font.Name, fontSize, font.Style, font.Unit, font.GdiCharSet, font.GdiVerticalFont);
}
}
return font;
}
#region work with font changing comboboxes
private void toolStripComboBox1_
{
if (this.workAreaForm == null)
return;
Font fnt = null;