Автор работы: Пользователь скрыл имя, 11 Декабря 2011 в 13:26, лабораторная работа
Для корректной работы программного средства необходимо выполнить ряд требований:
а) исходный код программы должен соответствовать правилам написания программ на языке программирования PHP 5.
б) исходный код программы должен содержаться в одном файле.
в) на компьютере должно быть установлено приложение GraphViz, оно необходимо для отображения граф-схемы алгоритма. Приложение устанавливается автоматически.
Цели и задачи
3
Руководство пользователя. Главное меню программы
4
Вкладка “Файл”
4
Вкладка “Обработка”
5
Вкладка “Справка”
5
Панель быстрого доступа
6
Краткие сведения о метрике Мак-Кейба
7
Результаты выполнения программы
8
Список литературы
Functions.Add(Graph_);
Graph_ = Main;
//Parser NewFunc = new Parser(Code, curPos, Functions);
//NewFunc.GetBlock("}");
//NewFunc.Graph_.Label = FuncName;
//Functions.Add(NewFunc.Graph)
//for (int i = 0; i < NewFunc.Functions.Count; i++)
// Functions.Add(NewFunc.
//curPos = NewFunc.curPos;
//Graph NewFunc = new Graph(FuncName);
}
public void GetBlock(string EndBlock)
{
string Token;
int BlockBegin = curPos;
bool IsBlockEmpty = true;
bool IsBlockFinifed = false;
while (!IsBlockFinifed)
{
if (curPos <= (Code.Length - 1))
{
Token = GetToken();
if ((EndBlock != Token)&&("" != Token))
{
IsBlockFinifed = false;
switch (Token)
{
case "if":
case "while":
case "do":
case "for":
case "function":
default:
}
}
else
IsBlockFinifed = true;
}
else
IsBlockFinifed = true;
}
if (!IsBlockEmpty) // in cycle
Graph_.AddBlock(true, "LBlock");
}
}
}
Листинг файла Graph.cs
using System;
using System.Collections.Generic;
using System.Linq;
using
System.Text;
namespace MSSVIR
{
class Graph
{
public Block Root;
public Block curBlock;
public int NumberOfBlocks { get; private set; }
public string Label { get; set; }
public int
Cyclematic = 1;
public Graph(string Label_)
{
Root = null;
curBlock = null;
NumberOfBlocks = 0;
Label = Label_;
}
public void AddBlock(bool IsLinear, string label_)
{
string Node;
if (IsLinear)
Node = "node" + NumberOfBlocks.ToString() + "[shape=\"rectangle\",label=\"
else
{
Cyclematic++;
Node = "node" + NumberOfBlocks.ToString() + "[shape=\"diamond\",label=\"" + label_ + "\"];";
}
if (Root == null)
{
Root = new Block(IsLinear, Node, "node" + NumberOfBlocks.ToString());
curBlock = Root;
NumberOfBlocks++;
}
Информация о работе Анализ программного средства по метрике Мак-Кейба