Unelte utilizator

Unelte site


teme2018:tema-2

Aceasta e o versiune anterioară a paginii.


Tema 2: The Network

Obiective

  • Înțelegerea conceptului de graf și a modurilor de parcurgere aferente
  • Aplicarea algoritmilor studiați pe topologie graf într-un exemplu practic
  • Înțelegerea unor anumite concepte din reţelistică.

Informaţii

  1. Deadline hard, 06 mai ora 23:59 (termen limită - nu se obţin puncte pe soluţiile trimise mai târziu)
  2. Trimiterea temelor se face pe platforma vmchecker (folosiți numele de utilizator şi parola de pe http://acs.curs.pub.ro).
  3. Checker-ul offline poate fi descărcat de la această TODO adresă
  4. Puteţi cere ajutor oricând la această adresă email

Descriere

Flavius e un student pasionat al Facultăţii de Automatică. Cea mai mare pasiune a sa a fost mereu reţelistica, astfel el a urmat modulele de la CISCO. La CISCO, el a învăţat despre OSPF ( Open Shortest Path First ), un protocol care l-a captivat pe Flavius. Aflând că la baza ideii de OSPF se află algoritmul lui Dijkstra, algoritm pe care îl va studia la cursul de SDA, i-a venit o idee. El s-a gândit să simuleze o reţea ce are la bază protocolul OSPF, pentru a aprofuda algoritmul lui Dijkstra (pentru cursul de SDA şi, mai ales, pentru el). Din păcate, săracul Flavius, student silitor, are o problemă. Flavius nu s-a înţeles foarte bine cu programarea şi nici acum nu e foarte priceput, aşa că s-a gândit să vă ceară ajutor cu codul sursă.

Cerinţe

TODO

Operațiile posibile asupra datelor din fișier vor fi:

  • ping x.x.x.x x.x.x.x : spune dacă este conexiune între două staţii
  • sipn x.x.x.x : afişează routerele cu care ai legatură directă
  • si x.x.x.x : afişează ce PC-uri sunt conectate direct la router
  • trace x.x.x.x x.x.x.x : afişează traseul de la echipament la echipament (ip-urile routerelor ce formează „drumul cel mai scurt“)
  • up x.x.x.x : dechide un PC
  • lc x.x.x.x x.x.x.x : distruge legătura dintre 2 routere
  • broke x.x.x.x : închide un PC
  • add x.x.x.x x.x.x.x : adaugă o legătură între 2 routere

Exemplu

Flavius s-a simţit cam vinovat pentru sarcinile pe care vi le-a dat, aşa că s-a gândit să vă dea un exemplu:

Date de intrare

date.in
6
Router1
192.0.1.1
1
pc1
192.0.1.2
1
Router2
192.0.2.1
1
pc1
192.0.2.2
1
Router3
192.0.3.1
1
pc1
192.0.3.2
1
Router4
192.0.4.1
1
pc1
192.0.4.2
0
Router5
192.0.5.1
1
pc1
192.0.5.2
1
Router6
192.0.6.1
1
pc1
192.0.6.2
1
8
Router1 Router2 10
Router1 Router3 1
Router3 Router4 5
Router3 Router5 1
Router4 Router2 3
Router4 Router6 1
Router5 Router4 1
Router6 Router2 1
14
ping 192.0.1.2 192.0.4.2
sipn 192.0.4.1
si 192.0.2.1
trace 192.0.1.2 192.0.2.2
up 192.0.4.2
ping 192.0.1.2 192.0.4.2
lc 192.0.3.1 192.0.5.1
trace 192.0.1.2 192.0.2.2
broke 192.0.2.2
add 192.0.3.1 192.0.5.1 10
trace 192.0.1.2 192.0.2.2
up 192.0.2.2
add 192.0.2.1 192.0.4.1 1
trace 192.0.1.2 192.0.2.2
date.out
NO
192.0.2.1 192.0.3.1 192.0.5.1 192.0.6.1
192.0.1.2
192.0.1.1 192.0.3.1 192.0.5.1 192.0.4.1 192.0.6.1 192.0.2.1 
OK
192.0.1.1 192.0.3.1 192.0.4.1 192.0.6.1 192.0.2.1 
 
192.0.1.1 192.0.3.1 192.0.4.1 192.0.2.1
Fişierul executabil va fi rulat cu o comandă de forma:
./network date.in date.out

Mai am niste chestii de scris trebuie sa le mai slefuiesc

Reguli pentru trimitere

  • puteţi încărca mai multe soluţii, se va lua în considerare soluţia cu cel mai mare punctaj trimisă până la termenul limită (6 mai, ora 23:59);
  • Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe vmchecker, folosind datele de autentificare de pe http://acs.curs.pub.ro/

Restricții:

  • implementarea se va face folosind liste
  • nu se acceptă implementări cu tipuri de date statice; lucrăm cu memorie alocată dinamic pentru eficientizare
  • Nerespectarea regulilor de coding style va fi depunctată
  • Se va depuncta lucrul nemodularizat, folosind funcții
  • Memoria trebuie dealocată. Dacă nu se respectă această cerință, vor fi date depunctări.
  • Ea va conține (direct în rădăcină):
    1. Listă ordonată fișierele sursă
    2. Makefile-ul (cu regulile make buid și make clean). Executabilul generat trebuie să se numească editor
    3. fișierul README în care va fi descrisă soluția problemei
  • Dacă soluția voastră nu compilează, dar dacă ideea este bună și trimiteți o încercare de implementare, puteți primi până la 20p
  • Temele care vor fi copiate vor primi 0p
  • Se va acorda un punctaj parțial de 50p pentru setul de operații simple: op1, op2….
  • Celelalte operații se consideră operații complexe și reprezintă cealaltă cuantă de 50p din punctajul total al temei, iar din această categorie fac parte: op1, op2…..
teme2018/tema-2.1523812884.txt.gz · Ultima modificare: 2018/04/15 20:21 de către mihai.iacov