Informatică, întrebare adresată de amigos34, 8 ani în urmă

A se face in C sau C++
Urgent
Realizați un program care realizează administrarea activității unei firme de curierat. Se introduc de la tastatură, pe linii separate, localitatea de destinație, identificatorul coletului (un număr întreg), data la care trebuie livrat ( anul, luna (1..12), ziua). La introducerea cuvântului STOP în loc de destinație, se vor afișa, în ordine cronologică data (linie separată), localitatea de destinație (linie separată), numărul de colete (linie separată), coletele în ordinea crescătoare a identificatorilor (toate pe o linie, separate prin virgule). Dacă sunt mai multe localități cu aceeași dată de livrare, se vor afișa în ordine alfabetică. Dacă se introduce de mai multe ori aceeași informație, se va afișa o singură dată.

Răspunsuri la întrebare

Răspuns de lucaciucandrei
2

#include<iostream>

#include<cstring>

using namespace std;

struct firma{

   char localitate[51];

   int ID;

   struct {

       int an,luna,zi;

   }data;

}colet[101];

int n=1;

int main(){

   do{

       cin.getline(colet[n].localitate,51);

       cin>>colet[n].ID>>colet[n].data.an>>colet[n].data.luna>>colet[n].data.zi;

       if(strcmp("STOP",colet[n].localitate)!=0)

           n++;

   }while(strcmp("STOP",colet[n].localitate)!=0);

   n--;

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

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

           if(colet[i].data.an>colet[j].data.an)

               swap(colet[i],colet[j]);

           else

               if(colet[i].data.an==colet[j].data.an&&colet[i].data.luna>colet[j].data.luna)

                   swap(colet[i],colet[j]);

               else

                   if(colet[i].data.an==colet[j].data.an&&colet[i].data.luna==colet[j].data.luna&&colet[i].data.zi>colet[j].data.zi)

                       swap(colet[i],colet[j]);

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

       cout<<colet[i].data.an<<' '<<colet[i].data.luna<<' '<<colet[i].data.zi<<endl;

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

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

           if(colet[i].data.an==colet[j].data.an&&colet[i].data.luna==colet[j].data.luna&&colet[i].data.zi==colet[j].data.zi)

               if(strcmp(colet[i].localitate,colet[j].localitate)>0)

                   swap(colet[i],colet[j]);

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

       cout<<colet[i].localitate<<endl;

   cout<<n<<endl;

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

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

           if(colet[i].ID>colet[j].ID)

               swap(colet[i],colet[j]);

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

       cout<<colet[i].localitate<<' '<<colet[i].ID<<' '<<colet[i].data.an<<' '<<colet[i].data.luna<<' '<<colet[i].data.zi<<", ";

   return 0;

}

Alte întrebări interesante