Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica
Grafurile neorientate

Grafurile neorientate


Grafurile neorientate

1.Introducere.

Acest program este realizat in limbajul de programare Borland C++, prin prezentarea lui vrea sa-l invete pe utilizator elementele de baza ale grafurilor neorientate,cat si a-i explica metodologia lor.

In acest scop lucrarea ofera un meniu principal,de unde pot fi activate toate aplicatiile ei prin niste butoane.Primul buton al meniului este butonul "AFISARE GRAF" unde utilizatorului ii va aparea un exemplu de graf neorientat,a-l doilea si a-l treilea sunt butoanele de parcurgere a grafurilor in latime si adancime:"PARCURGERE BF(latime)" si "PARCURGERE DF(adancime)".A-l patrulea buton "MA/LA" cuprinde matricea de adiacenta si lista de adiacenta a grafului initial iar butonul cinci "GRADE" cuprinde afisarea gradelor fiecarui nod al grafului. Butonul "DESPRE" ,este buton in care sunt scrise elementele de baza despre grafurile neorientate,iar prin butonul "IESIRE" se face iesirea din meniu.



Programul ofera printr-un meniu interactiv posibilitatea de a selecta unul din butoanele :

a. AFISARE GRAF

b. PARCURGERE BF

c. PARCURGERE DF

d. MA/LA

e. GRADE

f. DESPRE

g. IESIRE

2.Prezentare generala.

Aplicatia este bazata pe un meniu interactiv,meniul fiind alcatuit din mai multe butoane si o parte a ecranului in care se face afisarea comenzii butonului activat.

Prin parcurgerea acestei aplicatii utilizatorul poate studia partea generala si cea mai importanta a grafurilor neorientate,activand fiecare din butoanele meniului.Prin activarea primului buton "AFISARE GRAF" se deseneaza un graf neorientat cu sase noduri,fiind creat printr-o functie "void desen()",pe baza lui desfasurandu-se toate celelalte aplicatii.

Urmatoarele butoane "PARCURGERE BF" si "PARCURGERE DF" ofera utilizatorului posibilitatea de a parcurge graful initial dupa unul dintre cele 6 noduri,introducand de la tastatura numarul nodului de pornire.Odata cu afisarea grafului se face si afisarea vectorului de noduri.

Butonul "MA/LA" afiseaza matricea de adiacenta si lista de adiacenta a grafului initial,si afiseaza graful in partea de jos a ecranului de aplicatie.

"GRADE" este butonul prin care programul afiseaza gradele fiecarui nod al grafului,si se face afisarea grafului pe ecran .

Prin butonlu "DESPRE" se face o scurta prezentare teoretica a grafurilor neorientate,fiind incluse definitia grafurilor,parcurgerea atat in latime cat si in adancime,definitia matricei de adiacenta a grafurilor neorientate.

Butonul de iesire din program este butonul "IESIRE".

3.Bibliotecile programului.

Sursa utilizeaza pe langa o serie de biblioteci standard si o biblioteca realizata de programator:

math.h

stdlib.h

conio.h

fstream.h

graphics.h

values.h

string.h

dos.h

io.h

stdio.h

MOUSE.H - care gestioneaza pozitionarea mouse-ului pe ecran si ofera coordonatele acestuia atunci cand s-a efectuat clic. De asemenea exista functii pentru afisarea respectiv ascunderea mouse-ului pe ecranul grafic.

Programul contine de asemenea cateva fisiere de tip text in care sunt stocate mai multe date:"graf.txt","poz.txt" si fiesierul "despre.txt"in care este scrisa teoria grafurilor neorientate,ea putand fi activata de la butonul "DESPRE".

4.Functiile programului.

Afistext()-este functia prin care se face afisarea textului din ecranul de aplicatie,textul fiind aliniat la stanga.

Despre()-prin aceasta functie se face afisarea in program a textului din fisierul "despre.txt" prin apasarea butonului "DESPRE".

Citire() se face citirea si afisarea din fisierul "graf.txt" a grafului initial.

Desen()-functia face desenarea grafului initial,desenarea muchiilor cat si a arcelor grafului si numerotarea lor.

Matrice() si Lista()-sunt functiile care afiseaza matricea de adiacenta a grafului,respective lista de adiacenta,in ambele functii apelandu-se functia citire().

Set_menu()-este functia prin care sa creat meniul principal.

Main() este functia principala a programului care apeleaza functiile Mouseshow(),Mousehide(),set_menu(),si fiecare functie ce reprezinta o aplicatie a programului:desen(),parcurgere bf(),parcurgere df(),matrice(),lista(),grad() si functia desen2() prin care se face o alta afisare a grafului.

5.Programul.

#include<math.h>

#include <stdlib.h>

#include <conio.h>

#include <fstream.h>

#include <graphics.h>

#include <values.h>

#include<string.h>

#include 'mouse.h'

#include <dos.h>

#include <io.h>

#include <stdio.h>

int n,a[10][10],poz[3][10];

int mbut,mx,my;

float acosa,unghi;

void afistext(char c[50],int x,int y)

void despre()

fclose(f);

void citire()

f.close();g.close();

void desen()

setcolor(9);

for( i=1;i<=n;i++)

for( j=1;j<=n;j++)

if(a[i][j]==1)line(poz[1][j]-4,poz[2][j]-4,poz[1][i]-4,poz[2][i]-4);

setcolor(BLACK);

for( j=1;j<=n;j++) pieslice(poz[1][j]-2,poz[2][j]+5,0,359,11);

setcolor(WHITE);

for( j=1;j<=n;j++)

// for( j=1;j<=n;j++) pieslice(poz[1][j]-2,poz[2][j]+5,0,359,11);

}

void desen2()

for( j=1;j<=n;j++) circle(poz[1][j]+40,poz[2][j]+144,11);

}

void matrice()

void lista()

void grad()

void set_menu();

void init()

void ecran(int left, int top, int right, int bottom)

void draw_on(int left, int top, int right, int bottom)

void draw_off(int left, int top, int right, int bottom)

int test(int left,int top,int right, int bottom) //verif click intre parametrii

if(mx>left&&my>top&&mx<right&&my<bottom)

draw_off(left, top, right, bottom);

setfillstyle(1,0);

}

return 0;

void text()

void set_screen()

void blink(int x)

void parcurgereBF()

c[1]=x;viz[x]=1;p=u=1;

while(p<=u)

}

for(i=1;i<=n;i++)

void set_menu()

int EXIT()

void parcurgereDF()

if(y==0)k--;

else

void main()

if(test(475,90,625,120))

if(test(475,125,625,155))

if(test(475,160,625,190))

if(test(475,195,625,225))

if(test(475,230,625,260))

}while(!EXIT());

6.Biblioteca "Mouse.cpp".

#include<dos.h>

void MOUSE(int &a1,int &a2,int &a3,int &a4)

void MouseInit(void)

void MouseHide(void)

void MouseShow(void)

void MouseData(int& but, int& x, int& y)

void MouseMove(int x, int y)

void SetMinMaxX (unsigned short Min, unsigned short Max)

void SetMinMaxY (unsigned short Min, unsigned short Max)

7.Concluzii.

Programul s-a vrut a fi un program interactiv care ajuta la trecerea in revista a catorva cunostinte despre grafurile neorientate,si exemplificarea a catorva aplicatii.

Programul de fata poate fi imbunatatit prin:

  • Crearea unui meniu mai complex cu mai multe optiuni
  • Adaugarea mai multor informatii legate de grafurile orientate
  • Utilizarea unor functii mai complexe care sa duca la imbunatatirea aplicatiilor.

CUPRINS

Introducere.............pag.1

Prezentare generala........pag.2

Bibliotecile programului.......pag.2-3

Functiile programului........pag.3

Programul............pag.4-13

Biblioteca"Mouse.cpp"......pag.13-14

Concluzii............pag.14





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.