Orar semigroup #2

Orar semigroup #2

5/17

Din fisierul text AVIOANE.TXT se citesc: n, codurile celor n avioane, urmate de o insiruire de DA si NU (date de conditiile atmosferice).
Afisati:

a) coada initiala

b) ordinea in care decoleaza avioanele si numarul de incercari de decolare ale fiecarui avion

Obs: avioanele care decoleaza se sterg din lista.

Ex: daca AVIOANE.TXT: 3 111 222 333 DA NU NU NU DA DA DA DA

Avioanele decoleaza in ordinea: 111 o incercare(prima)

333 2 incercari

222 3 incercari

#include<iostream>
#include<fstream>
using namespace std;
struct nod{
int cod,nr;
nod* urm;};

void adaugare(nod* &prim, nod* &ultim, int cod, int nr)
{nod* p=new nod;
p->cod=cod;
p->nr=nr;
p->urm=NULL;
if(prim==NULL)
    prim=p;
else ultim->urm=p;
ultim=p;}

void stergere(nod* &prim)
{nod* p;
p=prim;
prim=prim->urm;
delete p;
}

void afisare(nod* prim)
{if(prim==NULL)
    cout<<"Coada goala";
cout<<prim->cod<<" | din a "<<prim->nr<<"-a incercare"<<endl;
}

int main()
{int n,cod,nr,i;
ifstream f("date");
nod* prim=NULL;
nod* ultim=NULL;
f>>n;
while(n)
{f>>cod;
n--;
adaugare(prim,ultim,cod,0);
}

char a[3];
while(prim)
{f>>a;
    if(strcmp(a,"DA")==0)
        {prim->nr++;
        cout<<"Decoleaza ";
        afisare(prim);
        stergere(prim);}
        else {prim->nr++;
        adaugare(prim,ultim,prim->cod,prim->nr);
        stergere(prim);}
}
      
}
Fisier
3 111 222 333 DA NU NU NU DA DA

joi, 17 mai 2012 by DlMuresan
Categories: | Leave a comment

Leave a Reply