Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка програми для пошуку максимально віддалених вершин у графі

Реферат Розробка програми для пошуку максимально віддалених вершин у графі





}

if (distanceList.Count == 0)

return false;

for (int i=0; i lt; distanceList.Count; i ++)

{

NodesDistanceEntry nde=distanceList [i];

if (maxDistanceLength lt; nde.pathLength)

{

maxDistanceLength=nde.pathLength;

maxDistanceInd=i;

}

}

return true;

}

public void Draw (ref Graphics g)

{

Pen pen=new Pen (Color.Black, 5);

for (int i=0; i lt; graph.edges.Count; i ++)

{

Point xFrom, xTo;

int node1, node2;

graph.edges [i] .GetLinkedNodes (out node1, out node2);

xFrom=new Point (graph.nodes [node1] .GetPositionX (), graph.nodes [node1] .GetPositionY ());

xTo=new Point (graph.nodes [node2] .GetPositionX (), graph.nodes [node2] .GetPositionY ());

g.DrawLine (pen, xFrom, xTo);

}

for (int i=0; i lt; graph.nodes.Count; i ++)

{

GraphNode node=graph.nodes [i];

if (node.isExists ())

{

NODE_TYPE nodeType=NODE_TYPE.NOT_CONNECTED;// 0 - Not connected, 1 - OK node, 2 - Path node

if (maxDistanceInd!=- 1)

{

if (distanceList [maxDistanceInd] .node1!=i amp; amp; distanceList [maxDistanceInd] .node2!=i)

foreach (GraphEdge edge in graph.edges)

{

int node1, node2;

edge.GetLinkedNodes (out node1, out node2);

if (node1 == i || node2 == i)

{

nodeType=NODE_TYPE.OK;

break;

}

}

else

nodeType=NODE_TYPE.FOUND;

}

else

{

foreach (GraphEdge edge in graph.edges)

{

int node1, node2;

edge.GetLinkedNodes (out node1, out node2);

if (node1 == i || node2 == i)

{

nodeType=NODE_TYPE.OK;

break;

}

}

}

switch (nodeType)

{

case NODE_TYPE.NOT_CONNECTED:

g.DrawImage (graph.imgNode, node.GetPositionX () - graph.imageCenter, node.GetPositionY () - graph.imageCenter);

break;

case NODE_TYPE.OK:

g.DrawImage (graph.imgOkNode, node.GetPositionX () - graph.imageCenter, node.GetPositionY () - graph.imageCenter);

break;

case NODE_TYPE.FOUND:

g.DrawImage (imgFoundNode, node.GetPositionX () - graph.imageCenter, node.GetPositionY () - graph.imageCenter);

break;

default:

g.DrawImage (graph.imgNode, node.GetPositionX () - graph.imageCenter, node.GetPositionY () - graph.imageCenter);

break;

}

g.DrawString ((i + 1) .ToString (), graph.font, Brushes.Black, node.GetPositionX () - 12, node.GetPositionY () - 12);

}

}

}


2.7 Графічний інтерфейс


Для реалізації графічного інтерфейсу були використані стандартні засоби візуального проектування інтерфейсу середовища розробки Microsoft Visual Studio 2012. Графічний інтерфейс являє собою форму (System.Windows.Forms.Form) на якій розташовані рядок меню і командна панель. На командній панелі розташовані елементи управління RadioButton для вибору режиму редагування графа і кнопки, необхідні для пошуку шляху.




Граф відображається на формі за допомогою події Paint. Червоним кольором позначені вершини, що не мають жодного ребра (не пов'язані з іншими вершинами). Зеленим кольором позначаються вершини, пов'язані хоча б з однією іншою вершиною. На командній панелі є вибір різних режимів редагування графа:


Назад | сторінка 10 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Модуль Graph в програмі Turbo Pascal
  • Реферат на тему: Системи, керовані потоком даних. Мова "Dataflow Graph Language" ...
  • Реферат на тему: Розробка Web-додатки з використанням JavaScript каркаса Node.js
  • Реферат на тему: Ukrainian break-through in the European and World strategy of individual pr ...
  • Реферат на тему: Розробка та реалізація алгоритму Флойда і Беллмана-Форда для пошуку найкоро ...