1 / 16

Problema [Lectia 5] PROIECT INFORMATICA

Problema [Lectia 5] PROIECT INFORMATICA. AUTOMOBILELE Grupa IV. P roblema noastra consta intr-un exemplu din viata reala similar cu utilizarea stivei alocate dinamic, si anume, cazul unor automobile ce stationeaza la semafor. Textul problemei:.

betty
Download Presentation

Problema [Lectia 5] PROIECT INFORMATICA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problema[Lectia 5] PROIECT INFORMATICA AUTOMOBILELE Grupa IV

  2. Problema noastra consta intr-un exemplu din viata reala similar cu utilizarea stivei alocate dinamic, si anume, cazul unor automobile ce stationeaza la semafor.

  3. Textul problemei: In Piata Avram Iancu, la semafor, asteapta 15 automobile. Acestea se vor citi din fisierul masini.in si vor fi caracterizate de numarul de inmatriculare si culoare. Se cere: a) Creati stiva cu automobilele b) Afisati stiva c) Calculati cate automobile rosii, albastre si argintii se afla la semafor (pentru fiecare culoare in parte) d) Scrieti in fisierul auto.out automobilele care nu au numar de cluj e) Cand semaforul se face verde primele k automobile pleaca.Eliminati-le.

  4. CJ 84 TIM CJ 27 ANA B 50 ABC BR 64 BIC CJ 65 IOA

  5. CJ 63 THO CJ 22 TRI CJ 14 MIR AR 44 KYA CJ 94 BIA

  6. SI 24 PRO B 24 KAL CJ 24 VIO CJ 55 AMK CJ 52 ORW

  7. Pasul 1 – Structura struct nod { char loc[10],lit[10],cul[20]; int nr; nod *urm; }; nod *varf; Fiecare automobil este caracterizat de numarul de inmatriculare format din localitate (loc[10]), numar (nr) si litere (lit[10]) si culoare (cul[20]).

  8. Pasul 2 – Crearea stivei(cerinta a.) Crearea stivei se realizeaza prin apelarea functiei PUSH intr-o alta functie de citire, si anume: Functia push: void push (nod *&varf,char a[10],int b,char c[10], char d[10]) { nod *p; p=new nod; strcpy (p->loc,a); p->nr=b; strcpy(p->lit,c); strcpy(p->cul,d); p->urm=varf; varf=p; } Functia de citire: void creare (nod *&varf) { nod *p; int i,b; char a[10],c[10],d[10]; for (i=1; i<=15; i++) {f>>a; f>>b; f>>c; f>>d; push (varf,a,b,c,d); } }

  9. Adaugarea masinilor in stiva: CJ 27 ANA verde B 20 ABC negru CJ 65 IOA albastru CJ 84 TIM rosu BR 64 BIC argintiu CJ 94 BIA rosu AR 44 KYA negru CJ 63 THO galben CJ 14 MIR albastru CJ 22 TRI negru CJ 55 AMK verde B 24 KAL argintiu CJ 52 ORW argintiu SI 24 PRO rosu CJ 24 VIO argintiu

  10. Pasul 3 – Afisarea stivei(cerinta b.) void afisare (nod *varf) { nod *p; p=varf; while (p!=NULL) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 560); cout<<p->loc<<" "<<p->nr<<" "<<p->lit<<" "<<p->cul<<endl; cout<<"__________________"<<endl; p=p->urm; } }

  11. Pasul 4 – Contorizarea culorilor masinilor(cerinta c.) void culori (nod *varf,int&cont1,int&cont2,int&cont3) { nod *p; p=varf; while (p) { if (strcmp(p->cul,"rosu")==0) cont1++; else if (strcmp(p->cul,"albastru")==0) cont2++; else if (strcmp(p->cul,"argintiu")==0) cont3++; p=p->urm; } } Pentru fiecare culoare (rosu,albastru si argintiu) este utilizat un contor ce creste in momentul in care in stiva sunt gasite automobilele caracterizate de una din aceste culori si care este transmis prin referinta.

  12. Pasul 5 – Masinile din afara Clujului(cerinta d.) void numar (nod *varf) { nod *p; p=varf; while (p) { if (strcmp(p->loc,"cj")!=0) g<<p->loc<<" "<<p->nr<<" "<<p->lit<<" "<<p->cul<<endl; p=p->urm; } } Functia numar verifica din ce localitate este fiecare masina din stiva, iar cele care nu sunt inregistrate in cluj sunt notate in fisierul auto.out.

  13. Pasul 6 – Eliminarea primelor k masini(cerinta e.) void pop (nod *&varf) { nod *p; p=varf; varf=varf->urm; delete p; }

  14. Exemplu pentru primele 4 masini:

  15. Pasul 7 – Main-ul main () { creare (varf); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11); cout<<"Masinile care asteapta la semafor la semafor: "<<endl<<endl<<endl; afisare (varf); cout<<endl; culori(varf,cont1,cont2,cont3); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4); cout<<"Masini rosii: "<<cont1; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 3); cout<<endl<<"Masini albastre: "<<cont2; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); cout<<endl<<"Masini argintii: "<<cont3<<endl; cout<<endl; numar (varf); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15); cout<<"k: "; cin>>k; while (k!=0) { pop (varf); k--;} afisare (varf); f.close(); g.close(); }

  16. Realizatori: Bojan Roxana Bretea Denisa Chereches Luana Chira Luiza Felecan Bianca Ranga Ramona Grupa IV – Clasa Xd

More Related