Advertisement
TheVigilante39

FISIERE v2

Jan 23rd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 40.27 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. //#include <fstream>
  3. #include <iostream>
  4. #include <conio.h>
  5. #include <stdlib.h>
  6. #include <iomanip>
  7. #include <cstring>
  8. #pragma warning(disable : 4700)
  9. #pragma warning(disable : 4101)
  10. int ok = 0, list_counter = 0;
  11. using namespace std;
  12. ifstream f("in.txt");
  13. ofstream g("out.txt");
  14. struct elv{
  15.     char nume[40];
  16.     int an;
  17.     char localizare[40];
  18.     };
  19. struct nod{
  20.     elv info;
  21.     nod *urm;
  22.     };
  23. nod * prim,* ultim;
  24. void adauga_console(nod *&prim, nod *&ultim){
  25.     elv v;
  26.     cout<<"Nume Monument:";*/f.get(v.nume,40);f.get();
  27.     if ((strcmp(v.nume,"Muzeul Olteniei")==0)||(strcmp(v.nume,"muzeul olteniei")==0)){
  28.         v.an = 1928;
  29.         strcpy(v.localizare, "Str. Popa Sapca nr. 8");
  30.     }
  31.     else if((strcmp(v.nume,"Muzeul de Arta")==0)||(strcmp(v.nume,"muzeul de arta")==0)){
  32.         v.an = 1908;
  33.         strcpy(v.localizare, "Calea Unirii nr. 15");
  34.     }
  35.     else if((strcmp(v.nume,"Casa Vernescu")==0)||(strcmp(v.nume,"casa vernescu")==0)){
  36.         v.an = 1910;
  37.         strcpy(v.localizare, "Strada Mitropolit Firmilian nr. 20");
  38.     }
  39.     else if((strcmp(v.nume,"Palatul de Justitie")==0)||(strcmp(v.nume,"palatul de justitie")==0)){
  40.         v.an = 1880;
  41.         strcpy(v.localizare, "Str. Alexandru Ioan Cuza, nr. 13");
  42.     }
  43.     else if((strcmp(v.nume,"Casa Canciulescu")==0)||(strcmp(v.nume,"casa canciulescu")==0)){
  44.         v.an = 1928;
  45.         strcpy(v.localizare, "Str. Simion Barnutiu nr. 2");
  46.     }
  47.     else if((strcmp(v.nume,"Casa Ferraru")==0)||(strcmp(v.nume,"casa ferraru")==0)){
  48.         v.an = 1914;
  49.         strcpy(v.localizare, "Calea Unirii nr. 68");
  50.     }
  51.     else if((strcmp(v.nume,"Casa Dianu")==0)||(strcmp(v.nume,"casa dianu")==0)){
  52.         v.an = 1905;
  53.         strcpy(v.localizare, "Str. 24 Ianuarie nr. 4");
  54.     }
  55.     else if((strcmp(v.nume,"Capela Sf. Maria")==0)||(strcmp(v.nume,"capela sf. maria")==0)){
  56.         v.an = 1900;
  57.         strcpy(v.localizare, "Str. Enescu George");
  58.     }
  59.     else if((strcmp(v.nume,"Casa Zwillinger")==0)||(strcmp(v.nume,"casa zwillinger")==0)){
  60.         v.an = 1900;
  61.         strcpy(v.localizare, "Calea Unirii nr. 88");
  62.     }
  63.     else if((strcmp(v.nume,"Hanul Putureanu")==0)||(strcmp(v.nume,"hanul putureanu")==0)){
  64.         v.an = 1887;
  65.         strcpy(v.localizare, "Str. Matei Basarab nr. 9");
  66.     }
  67.     else {
  68.         cout << "Nu ati introdus un monument de pe lista. Va rugam introduceti urmatoarele : " << endl;
  69.         cout << "-Introduceti anul constructiei :"; >> v.an;
  70.         f.get();
  71.         cout << "-Introduceti locatia : ";f.get(v.localizare,40);
  72.         f.get();
  73.     //}
  74.     nod* p;
  75.     if((prim==ultim)&&(prim==0)){
  76.             prim=ultim=new nod;
  77.             prim->info=v;
  78.             prim->urm=0;
  79.             }
  80.     else {
  81.         p=new nod;
  82.         p->info=v;
  83.         ultim->urm=p;
  84.         ultim=p;
  85.         ultim->urm=0;
  86.     }
  87.     ok = 1;
  88. }
  89. void adauga_fisier(nod *&prim, nod *&ultim){
  90.     elv v;
  91.     /*cout<<"Nume Monument:";*/f.get(v.nume,40);f.get();
  92.     /*if ((strcmp(v.nume,"Muzeul Olteniei")==0)||(strcmp(v.nume,"muzeul olteniei")==0)){
  93.         v.an = 1928;
  94.         strcpy(v.localizare, "Str. Popa Sapca nr. 8");
  95.     }
  96.     else if((strcmp(v.nume,"Muzeul de Arta")==0)||(strcmp(v.nume,"muzeul de arta")==0)){
  97.         v.an = 1908;
  98.         strcpy(v.localizare, "Calea Unirii nr. 15");
  99.     }
  100.     else if((strcmp(v.nume,"Casa Vernescu")==0)||(strcmp(v.nume,"casa vernescu")==0)){
  101.         v.an = 1910;
  102.         strcpy(v.localizare, "Strada Mitropolit Firmilian nr. 20");
  103.     }
  104.     else if((strcmp(v.nume,"Palatul de Justitie")==0)||(strcmp(v.nume,"palatul de justitie")==0)){
  105.         v.an = 1880;
  106.         strcpy(v.localizare, "Str. Alexandru Ioan Cuza, nr. 13");
  107.     }
  108.     else if((strcmp(v.nume,"Casa Canciulescu")==0)||(strcmp(v.nume,"casa canciulescu")==0)){
  109.         v.an = 1928;
  110.         strcpy(v.localizare, "Str. Simion Barnutiu nr. 2");
  111.     }
  112.     else if((strcmp(v.nume,"Casa Ferraru")==0)||(strcmp(v.nume,"casa ferraru")==0)){
  113.         v.an = 1914;
  114.         strcpy(v.localizare, "Calea Unirii nr. 68");
  115.     }
  116.     else if((strcmp(v.nume,"Casa Dianu")==0)||(strcmp(v.nume,"casa dianu")==0)){
  117.         v.an = 1905;
  118.         strcpy(v.localizare, "Str. 24 Ianuarie nr. 4");
  119.     }
  120.     else if((strcmp(v.nume,"Capela Sf. Maria")==0)||(strcmp(v.nume,"capela sf. maria")==0)){
  121.         v.an = 1900;
  122.         strcpy(v.localizare, "Str. Enescu George");
  123.     }
  124.     else if((strcmp(v.nume,"Casa Zwillinger")==0)||(strcmp(v.nume,"casa zwillinger")==0)){
  125.         v.an = 1900;
  126.         strcpy(v.localizare, "Calea Unirii nr. 88");
  127.     }
  128.     else if((strcmp(v.nume,"Hanul Putureanu")==0)||(strcmp(v.nume,"hanul putureanu")==0)){
  129.         v.an = 1887;
  130.         strcpy(v.localizare, "Str. Matei Basarab nr. 9");
  131.     }
  132.     else {*/
  133.         //cout << "Nu ati introdus un monument de pe lista. Va rugam introduceti urmatoarele : " << endl;
  134.         /*cout << "-Introduceti anul constructiei :";*/f >> v.an;
  135.         f.get();
  136.         /*cout << "-Introduceti locatia : ";*/f.get(v.localizare,40);
  137.         f.get();
  138.     //}
  139.     nod* p;
  140.     if((prim==ultim)&&(prim==0)){
  141.             prim=ultim=new nod;
  142.             prim->info=v;
  143.             prim->urm=0;
  144.             }
  145.     else {
  146.         p=new nod;
  147.         p->info=v;
  148.         ultim->urm=p;
  149.         ultim=p;
  150.         ultim->urm=0;
  151.     }
  152.     ok = 1;
  153. }
  154. void meniu_citire(){
  155.     int k;
  156.     k = 0;
  157.     while(k!=3){
  158.         cout << "Alegeti : " << endl << endl;
  159.         cout << "1. Adaugare fisier" << endl;
  160.         cout << "2. Adaugare individuala consola" << endl;
  161.         cout << "3. Iesire"<<endl;
  162.         cin >> k;
  163.         switch (k){
  164.             case 1: system("cls");
  165.                     adauga_fisier(prim,ultim);
  166.                     cout << "Adaugare fisier finalizata." << endl;
  167.                     getch();
  168.                     break;
  169.             case 2: system("cls");
  170.                     adauga_console(prim,ultim);
  171.                     cout << "Adaugare consola finalizata." << endl;
  172.                     getch();
  173.                     break;
  174.             case 3: return;
  175.         }
  176.     }
  177. }
  178. void afisare(nod *prim){
  179.     nod* p;
  180.     //int i=1;
  181.     p=prim;
  182.     //cout<<"    "<<left<<setw(20)<<"Numele monumentului"<<' '<<left<<setw(20)<<"     An"<<left<<' '<<"Localizare"<<endl<<endl;
  183.     while(p){
  184.         /*if (i < 10)
  185.             cout<<i<<"."<<' ';
  186.         else
  187.             cout << i << ".";*/
  188.         //cout<<left<<" "<<setw(20)<<p->info.nume <<right<<setw(10)<<p->info.an<<"            "<<left<<setw(30)<<p->info.localizare<<endl;
  189.         g << p->info.nume << endl << p->info.an << endl <<p->info.localizare << endl;
  190.         p=p->urm;
  191.         //i++;
  192.     }}
  193. void min(nod *prim){
  194.     nod *p;
  195.     double min=9000000;
  196.     p=prim;
  197.     if (p == 0){
  198.         cout << "Nu ati introdus nimic" << endl;
  199.         return;
  200.     }
  201.     else {
  202.         while(p){
  203.             if(p->info.an<min)min=p->info.an;
  204.             p=p->urm;
  205.         }
  206.         cout<<"    "<<left<<setw(20)<<"Numele monumentului"<<' '<<left<<setw(20)<<"    An"<<left<<' '<<"Localizare"<<endl<<endl;
  207.         p=prim;
  208.         while(p){
  209.             if(p->info.an==min)
  210.                 g << p->info.nume << endl << p->info.an << endl << p->info.localizare << endl;
  211.                 //cout<<left<<"   "<<setw(20)<<p->info.nume<<right<<setw(10)<<p->info.an<<"            "<<left<<setw(30)<<p->info.localizare<<endl;
  212.             p=p->urm;
  213.         }
  214.     }
  215. }
  216. void max(nod *prim){
  217.     nod *p;
  218.     double max=-1;
  219.     p=prim;
  220.     if (p == 0){
  221.         cout << "Nu ati introdus nimic" << endl;
  222.         return;
  223.     }
  224.     else {
  225.         while(p){
  226.             if(p->info.an>max)max=p->info.an;
  227.             p=p->urm;
  228.         }
  229.         //cout<<"    "<<left<<setw(20)<<"Numele monumentului"<<' '<<left<<setw(20)<<"    An"<<left<<' '<<"Localizare"<<endl<<endl;
  230.         p=prim;
  231.         while(p){
  232.             if(p->info.an==max)
  233.                 g << p->info.nume << endl << p->info.an << endl << p->info.localizare << endl;
  234.             //cout<<left<<"   "<<setw(20)<<p->info.nume<<right<<setw(10)<<p->info.an<<"            "<<left<<setw(30)<<p->info.localizare<<endl;
  235.             p=p->urm;
  236.          }
  237.     }
  238. }
  239. void sortcnume(){
  240.     elv x;
  241.     int k=-1;
  242.     nod *p;
  243.     while(k){
  244.         p=prim;
  245.         k=0;
  246.         while(p->urm){
  247.             if(strcmp(p->info.nume,p->urm->info.nume)==1){
  248.                 x=p->info;
  249.                 p->info=p->urm->info;
  250.                 p->urm->info=x;
  251.                 k=1;
  252.                 }
  253.             p=p->urm;}
  254.       }
  255. }
  256. void sortdnume(){
  257.     elv x;
  258.     int k=-1;
  259.     nod *p;
  260.     while(k){
  261.         p=prim;
  262.         k=0;
  263.         while(p->urm){
  264.             if(strcmp(p->info.nume,p->urm->info.nume)==-1){
  265.                 x=p->info;
  266.                 p->info=p->urm->info;
  267.                 p->urm->info=x;
  268.                 k=1;
  269.                 }
  270.             p=p->urm;}
  271.       }
  272. }
  273. void sortcloc(){
  274.     elv x;
  275.     int k=-1;
  276.     nod *p;
  277.     while(k){
  278.         p=prim;
  279.         k=0;
  280.         while(p->urm){
  281.             if(strcmp(p->info.localizare,p->urm->info.localizare)==1){
  282.                 x=p->info;
  283.                 p->info=p->urm->info;
  284.                 p->urm->info=x;
  285.                 k=1;
  286.                 }
  287.             p=p->urm;}
  288.       }
  289. }
  290. void sortdloc(){
  291.     elv x;
  292.     int k=-1;
  293.     nod *p;
  294.     while(k){
  295.         p=prim;
  296.         k=0;
  297.         while(p->urm){
  298.             if(strcmp(p->info.localizare,p->urm->info.localizare)==-1){
  299.                 x=p->info;
  300.                 p->info=p->urm->info;
  301.                 p->urm->info=x;
  302.                 k=1;
  303.                 }
  304.             p=p->urm;}
  305.       }
  306. }
  307. void sortcan(){
  308.     nod *p;
  309.     int k =-1;
  310.     elv x;
  311.     while(k){
  312.         p=prim;
  313.         k=0;
  314.         while(p->urm){
  315.             if(p->info.an>p->urm->info.an){
  316.                 x=p->info;
  317.                 p->info=p->urm->info;
  318.                 p->urm->info=x;
  319.                 k=1;
  320.                 }
  321.             p=p->urm;
  322.         }
  323.       }
  324. }
  325. void sortdan(){
  326.     nod *p;
  327.     int k=-1;
  328.     elv x;
  329.     while(k){
  330.         p=prim;
  331.         k=0;
  332.         while(p->urm){
  333.             if(p->info.an<p->urm->info.an){
  334.                 x=p->info;
  335.                 p->info=p->urm->info;
  336.                 p->urm->info=x;
  337.                 k=1;
  338.                 }
  339.             p=p->urm;
  340.         }
  341.       }
  342.  
  343. }
  344. void meniusortare(){
  345.     int k;
  346.     k = 0;
  347.     while(k!=7){
  348.         cout<<"Alege sortarea:"<<endl<<endl;
  349.         cout<<"1. Sortare crescatoare an constructie"<<endl;
  350.         cout<<"2. Sortare descrescatoare constructie"<<endl;
  351.         cout<<"3. Sortare alfabetica dupa numele monumentului"<<endl;
  352.         cout<<"4. Sortare invers alfabetica dupa numele monumentului"<<endl;
  353.         cout<<"5. Sortare alfabetica localizare"<<endl;
  354.         cout<<"6. Sortare invers alfabetica localizare"<<endl;
  355.         cout<<"7. Iesire"<<endl;
  356.         cout<<endl<<"Alege optiunea:";
  357.         cin>>k;
  358.         switch(k){
  359.             case 1:system("cls");
  360.                    if (ok){
  361.                         sortcan();
  362.                         cout<<"SORTAREA S-A EFECTUAT.";
  363.                    }
  364.                    else if (( ok )&& ( list_counter == 1))
  365.                         cout <<"LISTA ARE UN SINGUR ELEMENT, SORTAREA ESTE NESEMNIFICATIVA.";
  366.                    else
  367.                        cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  368.                    _getch();
  369.                    system("cls");
  370.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  371.                    afisare(prim);
  372.                    system("cls");
  373.                    g.close();
  374.                    break;
  375.             case 2:system("cls");
  376.                    if (ok){
  377.                         sortdan();
  378.                         cout<<"SORTAREA S-A EFECTUAT.";
  379.                    }
  380.                    else
  381.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  382.                    _getch();
  383.                    system("cls");
  384.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  385.                    afisare(prim);
  386.                    system("cls");
  387.                    g.close();
  388.                    break;
  389.             case 3:system("cls");
  390.                    if (ok){
  391.                         sortcnume();
  392.                         cout<<"SORTAREA S-A EFECTUAT.";
  393.                    }
  394.                    else
  395.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  396.                    _getch();
  397.                    system("cls");
  398.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  399.                    afisare(prim);
  400.                    system("cls");
  401.                    g.close();
  402.                    break;
  403.             case 4:system("cls");
  404.                    if (ok){
  405.                         sortdnume();
  406.                         cout<<"SORTAREA S-A EFECTUAT.";
  407.                    }
  408.                    else
  409.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  410.                    _getch();
  411.                    system("cls");
  412.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  413.                    afisare(prim);
  414.                    system("cls");
  415.                    g.close();
  416.                    break;
  417.             case 5:system("cls");
  418.                    if (ok){
  419.                         sortcloc();
  420.                         cout<<"SORTAREA S-A EFECTUAT.";
  421.                    }
  422.                    else
  423.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  424.                    _getch();
  425.                    system("cls");
  426.                     break;
  427.             case 6:system("cls");
  428.                    if (ok){
  429.                         sortdloc();
  430.                         cout<<"SORTAREA S-A EFECTUAT.";
  431.                    }
  432.                    else
  433.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  434.                    _getch();
  435.                    system("cls");
  436.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  437.                    afisare(prim);
  438.                    system("cls");
  439.                    g.close();
  440.                     break;
  441.             /*case 7:system("cls");
  442.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  443.                    afisare(prim);
  444.                    system("cls");
  445.                    g.close();
  446.                    //_getch();
  447.                    system("cls"); break;*/
  448.             case 7:return;
  449.         }
  450.     }
  451. }
  452. int nr_elemente(nod* &prim){
  453.     int counter = 0;
  454.     nod* c = prim;
  455.     while(c){
  456.         counter++;
  457.         c = c->urm;
  458.     }
  459.     return counter;
  460. }
  461. void stergere_nume_monument(char a[]){
  462.     nod* p,*q;
  463.     p=prim;
  464.     q=prim->urm;
  465.     while(q){
  466.         if(strcmp(q->info.nume,a)==0){
  467.             p->urm=q->urm;
  468.             delete(q);
  469.             q=p->urm;
  470.         }
  471.         else{
  472.             q=q->urm;
  473.             p=p->urm;
  474.         }
  475.     }
  476.     ultim = q;
  477.     if(strcmp(prim->info.nume,a)==0){
  478.         q=prim;
  479.         prim=prim->urm;
  480.         delete(q);
  481.     }
  482. }
  483. void stergere_an_constructie(int x){
  484.     nod* p,*q;
  485.     p=prim;
  486.     q=prim->urm;
  487.     while(q){
  488.         if(q->info.an == x){
  489.             p->urm=q->urm;
  490.             delete(q);
  491.             q=p->urm;
  492.         }
  493.         else{
  494.             q=q->urm;
  495.             p=p->urm;
  496.         }
  497.     }
  498.     ultim = q;
  499.     if(prim->info.an == x){
  500.         q=prim;
  501.         prim=prim->urm;
  502.         delete(q);
  503.     }
  504. }
  505.  
  506. void meniustergere(){
  507.     int x,op,y,nr_nume_before, nr_nume_after,nr_an_before,nr_an_after;
  508.     char a[100];
  509.     op = 0;
  510.     while(op!=4){
  511.         cout<<"Alege optiunea:"<<endl<<endl;
  512.         cout<<"1. Stergere monument cu numele dat"<<endl;
  513.         cout<<"2. Stergere monument cu anul de constructie"<<endl;
  514.         //cout<<"3. Afisare"<<endl;
  515.         cout<<"4. Iesire"<<endl;
  516.         cout<<endl<<"Alege optiunea:";
  517.         cin>>op;
  518.         cin.get();
  519.         switch(op){
  520.             case 1:system("cls");
  521.                    cout<<"Numele monumentului : ";
  522.                    cin.get(a,100);
  523.                    cin.get();
  524.                    nr_nume_before = nr_elemente(prim);
  525.                    stergere_nume_monument(a);
  526.                    nr_nume_after = nr_elemente(prim);
  527.                    if (nr_nume_before > nr_nume_after)
  528.                        cout<<"STERGEREA S-A EFECTUAT.";
  529.                    else
  530.                        cout <<"ELEMENTUL INTRODUS NU EXISTA.";
  531.                    _getch();
  532.                    system("cls");
  533.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  534.                    afisare(prim);
  535.                    system("cls");
  536.                    g.close();
  537.                    break;
  538.             case 2:system("cls");
  539.                    cout << "Anul constructiei : ";
  540.                    nr_nume_before = nr_elemente(prim);
  541.                    cin >> y;
  542.                    stergere_an_constructie(y);
  543.                    nr_nume_after = nr_elemente(prim);
  544.                    if (nr_nume_before > nr_nume_after)
  545.                        cout<<"STERGEREA S-A EFECTUAT.";
  546.                    else
  547.                        cout <<"ELEMENTUL INTRODUS NU EXISTA.";
  548.                    _getch();
  549.                    system("cls");
  550.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  551.                    afisare(prim);
  552.                    system("cls");
  553.                    g.close();
  554.                    break;
  555.             /*case 3:system("cls");
  556.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  557.                    afisare(prim);
  558.                    system("cls");
  559.                    g.close();
  560.                    //_getch();
  561.                    system("cls");
  562.                    break;*/
  563.             case 3:return;
  564.         }
  565.     }
  566. }
  567. int main(){
  568.     prim=0;
  569.     ultim=0;
  570.     int op;
  571.     op = 0;
  572.     while (op!=7){
  573.         cout<<" 1.Creare/Adaugare"<<endl;
  574.         cout<<" 2.Afisare lista monumente"<<endl;
  575.         cout<<" 3.Minim dupa an constructie"<<endl;
  576.         cout<<" 4.Maxim dupa an constructie"<<endl;
  577.         cout<<" 5.Meniu sortare"<<endl;
  578.         cout<<" 6.Meniu stergere"<<endl;
  579.         cout<<" 7.Iesire"<<endl;
  580.         cout<<endl<<endl<<"Tastati optiunea : ";
  581.         cin>>op;
  582.         cin.get();
  583.         switch(op){
  584.         case 1: system("cls");
  585.                 cout << "Lista optiunilor la care datele se completeaza automat : " << endl << "-Muzeul de Arta" << endl << "-Muzeul Olteniei" << endl << "-Palatul de Justitie" << endl << "-Casa Vernescu" << endl << "-Casa Canciulescu" << endl << "-Casa Ferraru" << endl << "-Casa Dianu" << endl << "-Casa Zwillinger" << endl << "-Hanul Putureanu" << endl << "-Capela Sf. Maria" << endl << endl ;
  586.                 //adauga_fisier(prim,ultim);
  587.                 while(!f.eof()){
  588.                     list_counter++;
  589.                     adauga_fisier(prim,ultim);
  590.                 }
  591.                 system("cls");
  592.                 break;
  593.         case 2: system("cls");
  594.                 g.open("out.txt", ofstream::out | ofstream::trunc);
  595.                 afisare(prim);
  596.                 system("cls");
  597.                 g.close();
  598.                 break;
  599.         case 3: system("cls");
  600.                 g.open("out.txt", ofstream::out | ofstream::trunc);
  601.                 min(prim);
  602.                 _getch();
  603.                 system("cls");
  604.                 g.close();
  605.                 break;
  606.         case 4: system("cls");
  607.                 g.open("out.txt", ofstream::out | ofstream::trunc);
  608.                 max(prim);
  609.                 _getch();
  610.                 system("cls");
  611.                 g.close();
  612.                 break;
  613.         case 5: system("cls");
  614.                 if (list_counter == 0)
  615.                     cout << "SORTAREA NU ESTE VALABILA DEOARECE LISTA NU ARE NICI UN ELEMENT."<< endl;
  616.                 else if (list_counter == 1)
  617.                     cout << "SORTAREA NU ESTE VALABILA DEOARECE LISTA ARE UN SINGUR ELEMENT."<< endl;
  618.                 else
  619.                     meniusortare();
  620.                 _getch();
  621.                 system("cls");
  622.                 break;
  623.         case 6: system("cls");
  624.                 if (list_counter == 0)
  625.                     cout << "SORTAREA NU ESTE VALABILA DEOARECE LISTA NU ARE NICI UN ELEMENT."<< endl;
  626.                 else
  627.                     meniustergere();
  628.                 _getch();
  629.                 system("cls");
  630.                 break;
  631.         case 7: f.close();
  632.                 g.close();
  633.                 remove("in.txt");
  634.                 rename("out.txt","in.txt");
  635.                 return 0;
  636.         default:system("cls"); cout<<"OPTIUNE INCORECTA!!"<<endl<<endl;_getch();system("cls");break;
  637.         }
  638.     }
  639. }
  640. #include <bits/stdc++.h>
  641. //#include <fstream>
  642. #include <iostream>
  643. #include <conio.h>
  644. #include <stdlib.h>
  645. #include <iomanip>
  646. #include <cstring>
  647. #pragma warning(disable : 4700)
  648. #pragma warning(disable : 4101)
  649. int ok = 0, list_counter = 0;
  650. using namespace std;
  651. ifstream f("in.txt");
  652. ofstream g("out.txt");
  653. struct elv{
  654.     char nume[40];
  655.     int an;
  656.     char localizare[40];
  657.     };
  658. struct nod{
  659.     elv info;
  660.     nod *urm;
  661.     };
  662. nod * prim,* ultim;
  663. void adauga_console(nod *&prim, nod *&ultim){
  664.     elv v;
  665.     cout<<"Nume Monument:";*/f.get(v.nume,40);f.get();
  666.     if ((strcmp(v.nume,"Muzeul Olteniei")==0)||(strcmp(v.nume,"muzeul olteniei")==0)){
  667.         v.an = 1928;
  668.         strcpy(v.localizare, "Str. Popa Sapca nr. 8");
  669.     }
  670.     else if((strcmp(v.nume,"Muzeul de Arta")==0)||(strcmp(v.nume,"muzeul de arta")==0)){
  671.         v.an = 1908;
  672.         strcpy(v.localizare, "Calea Unirii nr. 15");
  673.     }
  674.     else if((strcmp(v.nume,"Casa Vernescu")==0)||(strcmp(v.nume,"casa vernescu")==0)){
  675.         v.an = 1910;
  676.         strcpy(v.localizare, "Strada Mitropolit Firmilian nr. 20");
  677.     }
  678.     else if((strcmp(v.nume,"Palatul de Justitie")==0)||(strcmp(v.nume,"palatul de justitie")==0)){
  679.         v.an = 1880;
  680.         strcpy(v.localizare, "Str. Alexandru Ioan Cuza, nr. 13");
  681.     }
  682.     else if((strcmp(v.nume,"Casa Canciulescu")==0)||(strcmp(v.nume,"casa canciulescu")==0)){
  683.         v.an = 1928;
  684.         strcpy(v.localizare, "Str. Simion Barnutiu nr. 2");
  685.     }
  686.     else if((strcmp(v.nume,"Casa Ferraru")==0)||(strcmp(v.nume,"casa ferraru")==0)){
  687.         v.an = 1914;
  688.         strcpy(v.localizare, "Calea Unirii nr. 68");
  689.     }
  690.     else if((strcmp(v.nume,"Casa Dianu")==0)||(strcmp(v.nume,"casa dianu")==0)){
  691.         v.an = 1905;
  692.         strcpy(v.localizare, "Str. 24 Ianuarie nr. 4");
  693.     }
  694.     else if((strcmp(v.nume,"Capela Sf. Maria")==0)||(strcmp(v.nume,"capela sf. maria")==0)){
  695.         v.an = 1900;
  696.         strcpy(v.localizare, "Str. Enescu George");
  697.     }
  698.     else if((strcmp(v.nume,"Casa Zwillinger")==0)||(strcmp(v.nume,"casa zwillinger")==0)){
  699.         v.an = 1900;
  700.         strcpy(v.localizare, "Calea Unirii nr. 88");
  701.     }
  702.     else if((strcmp(v.nume,"Hanul Putureanu")==0)||(strcmp(v.nume,"hanul putureanu")==0)){
  703.         v.an = 1887;
  704.         strcpy(v.localizare, "Str. Matei Basarab nr. 9");
  705.     }
  706.     else {
  707.         cout << "Nu ati introdus un monument de pe lista. Va rugam introduceti urmatoarele : " << endl;
  708.         cout << "-Introduceti anul constructiei :"; >> v.an;
  709.         f.get();
  710.         cout << "-Introduceti locatia : ";f.get(v.localizare,40);
  711.         f.get();
  712.     //}
  713.     nod* p;
  714.     if((prim==ultim)&&(prim==0)){
  715.             prim=ultim=new nod;
  716.             prim->info=v;
  717.             prim->urm=0;
  718.             }
  719.     else {
  720.         p=new nod;
  721.         p->info=v;
  722.         ultim->urm=p;
  723.         ultim=p;
  724.         ultim->urm=0;
  725.     }
  726.     ok = 1;
  727. }
  728. void adauga_fisier(nod *&prim, nod *&ultim){
  729.     elv v;
  730.     /*cout<<"Nume Monument:";*/f.get(v.nume,40);f.get();
  731.     /*if ((strcmp(v.nume,"Muzeul Olteniei")==0)||(strcmp(v.nume,"muzeul olteniei")==0)){
  732.         v.an = 1928;
  733.         strcpy(v.localizare, "Str. Popa Sapca nr. 8");
  734.     }
  735.     else if((strcmp(v.nume,"Muzeul de Arta")==0)||(strcmp(v.nume,"muzeul de arta")==0)){
  736.         v.an = 1908;
  737.         strcpy(v.localizare, "Calea Unirii nr. 15");
  738.     }
  739.     else if((strcmp(v.nume,"Casa Vernescu")==0)||(strcmp(v.nume,"casa vernescu")==0)){
  740.         v.an = 1910;
  741.         strcpy(v.localizare, "Strada Mitropolit Firmilian nr. 20");
  742.     }
  743.     else if((strcmp(v.nume,"Palatul de Justitie")==0)||(strcmp(v.nume,"palatul de justitie")==0)){
  744.         v.an = 1880;
  745.         strcpy(v.localizare, "Str. Alexandru Ioan Cuza, nr. 13");
  746.     }
  747.     else if((strcmp(v.nume,"Casa Canciulescu")==0)||(strcmp(v.nume,"casa canciulescu")==0)){
  748.         v.an = 1928;
  749.         strcpy(v.localizare, "Str. Simion Barnutiu nr. 2");
  750.     }
  751.     else if((strcmp(v.nume,"Casa Ferraru")==0)||(strcmp(v.nume,"casa ferraru")==0)){
  752.         v.an = 1914;
  753.         strcpy(v.localizare, "Calea Unirii nr. 68");
  754.     }
  755.     else if((strcmp(v.nume,"Casa Dianu")==0)||(strcmp(v.nume,"casa dianu")==0)){
  756.         v.an = 1905;
  757.         strcpy(v.localizare, "Str. 24 Ianuarie nr. 4");
  758.     }
  759.     else if((strcmp(v.nume,"Capela Sf. Maria")==0)||(strcmp(v.nume,"capela sf. maria")==0)){
  760.         v.an = 1900;
  761.         strcpy(v.localizare, "Str. Enescu George");
  762.     }
  763.     else if((strcmp(v.nume,"Casa Zwillinger")==0)||(strcmp(v.nume,"casa zwillinger")==0)){
  764.         v.an = 1900;
  765.         strcpy(v.localizare, "Calea Unirii nr. 88");
  766.     }
  767.     else if((strcmp(v.nume,"Hanul Putureanu")==0)||(strcmp(v.nume,"hanul putureanu")==0)){
  768.         v.an = 1887;
  769.         strcpy(v.localizare, "Str. Matei Basarab nr. 9");
  770.     }
  771.     else {*/
  772.         //cout << "Nu ati introdus un monument de pe lista. Va rugam introduceti urmatoarele : " << endl;
  773.         /*cout << "-Introduceti anul constructiei :";*/f >> v.an;
  774.         f.get();
  775.         /*cout << "-Introduceti locatia : ";*/f.get(v.localizare,40);
  776.         f.get();
  777.     //}
  778.     nod* p;
  779.     if((prim==ultim)&&(prim==0)){
  780.             prim=ultim=new nod;
  781.             prim->info=v;
  782.             prim->urm=0;
  783.             }
  784.     else {
  785.         p=new nod;
  786.         p->info=v;
  787.         ultim->urm=p;
  788.         ultim=p;
  789.         ultim->urm=0;
  790.     }
  791.     ok = 1;
  792. }
  793. void meniu_citire(){
  794.     int k;
  795.     k = 0;
  796.     while(k!=3){
  797.         cout << "Alegeti : " << endl << endl;
  798.         cout << "1. Adaugare fisier" << endl;
  799.         cout << "2. Adaugare individuala consola" << endl;
  800.         cout << "3. Iesire"<<endl;
  801.         cin >> k;
  802.         switch (k){
  803.             case 1: system("cls");
  804.                     adauga_fisier(prim,ultim);
  805.                     cout << "Adaugare fisier finalizata." << endl;
  806.                     getch();
  807.                     break;
  808.             case 2: system("cls");
  809.                     adauga_console(prim,ultim);
  810.                     cout << "Adaugare consola finalizata." << endl;
  811.                     getch();
  812.                     break;
  813.             case 3: return;
  814.         }
  815.     }
  816. }
  817. void afisare(nod *prim){
  818.     nod* p;
  819.     //int i=1;
  820.     p=prim;
  821.     //cout<<"    "<<left<<setw(20)<<"Numele monumentului"<<' '<<left<<setw(20)<<"     An"<<left<<' '<<"Localizare"<<endl<<endl;
  822.     while(p){
  823.         /*if (i < 10)
  824.             cout<<i<<"."<<' ';
  825.         else
  826.             cout << i << ".";*/
  827.         //cout<<left<<" "<<setw(20)<<p->info.nume <<right<<setw(10)<<p->info.an<<"            "<<left<<setw(30)<<p->info.localizare<<endl;
  828.         g << p->info.nume << endl << p->info.an << endl <<p->info.localizare << endl;
  829.         p=p->urm;
  830.         //i++;
  831.     }}
  832. void min(nod *prim){
  833.     nod *p;
  834.     double min=9000000;
  835.     p=prim;
  836.     if (p == 0){
  837.         cout << "Nu ati introdus nimic" << endl;
  838.         return;
  839.     }
  840.     else {
  841.         while(p){
  842.             if(p->info.an<min)min=p->info.an;
  843.             p=p->urm;
  844.         }
  845.         cout<<"    "<<left<<setw(20)<<"Numele monumentului"<<' '<<left<<setw(20)<<"    An"<<left<<' '<<"Localizare"<<endl<<endl;
  846.         p=prim;
  847.         while(p){
  848.             if(p->info.an==min)
  849.                 g << p->info.nume << endl << p->info.an << endl << p->info.localizare << endl;
  850.                 //cout<<left<<"   "<<setw(20)<<p->info.nume<<right<<setw(10)<<p->info.an<<"            "<<left<<setw(30)<<p->info.localizare<<endl;
  851.             p=p->urm;
  852.         }
  853.     }
  854. }
  855. void max(nod *prim){
  856.     nod *p;
  857.     double max=-1;
  858.     p=prim;
  859.     if (p == 0){
  860.         cout << "Nu ati introdus nimic" << endl;
  861.         return;
  862.     }
  863.     else {
  864.         while(p){
  865.             if(p->info.an>max)max=p->info.an;
  866.             p=p->urm;
  867.         }
  868.         //cout<<"    "<<left<<setw(20)<<"Numele monumentului"<<' '<<left<<setw(20)<<"    An"<<left<<' '<<"Localizare"<<endl<<endl;
  869.         p=prim;
  870.         while(p){
  871.             if(p->info.an==max)
  872.                 g << p->info.nume << endl << p->info.an << endl << p->info.localizare << endl;
  873.             //cout<<left<<"   "<<setw(20)<<p->info.nume<<right<<setw(10)<<p->info.an<<"            "<<left<<setw(30)<<p->info.localizare<<endl;
  874.             p=p->urm;
  875.          }
  876.     }
  877. }
  878. void sortcnume(){
  879.     elv x;
  880.     int k=-1;
  881.     nod *p;
  882.     while(k){
  883.         p=prim;
  884.         k=0;
  885.         while(p->urm){
  886.             if(strcmp(p->info.nume,p->urm->info.nume)==1){
  887.                 x=p->info;
  888.                 p->info=p->urm->info;
  889.                 p->urm->info=x;
  890.                 k=1;
  891.                 }
  892.             p=p->urm;}
  893.       }
  894. }
  895. void sortdnume(){
  896.     elv x;
  897.     int k=-1;
  898.     nod *p;
  899.     while(k){
  900.         p=prim;
  901.         k=0;
  902.         while(p->urm){
  903.             if(strcmp(p->info.nume,p->urm->info.nume)==-1){
  904.                 x=p->info;
  905.                 p->info=p->urm->info;
  906.                 p->urm->info=x;
  907.                 k=1;
  908.                 }
  909.             p=p->urm;}
  910.       }
  911. }
  912. void sortcloc(){
  913.     elv x;
  914.     int k=-1;
  915.     nod *p;
  916.     while(k){
  917.         p=prim;
  918.         k=0;
  919.         while(p->urm){
  920.             if(strcmp(p->info.localizare,p->urm->info.localizare)==1){
  921.                 x=p->info;
  922.                 p->info=p->urm->info;
  923.                 p->urm->info=x;
  924.                 k=1;
  925.                 }
  926.             p=p->urm;}
  927.       }
  928. }
  929. void sortdloc(){
  930.     elv x;
  931.     int k=-1;
  932.     nod *p;
  933.     while(k){
  934.         p=prim;
  935.         k=0;
  936.         while(p->urm){
  937.             if(strcmp(p->info.localizare,p->urm->info.localizare)==-1){
  938.                 x=p->info;
  939.                 p->info=p->urm->info;
  940.                 p->urm->info=x;
  941.                 k=1;
  942.                 }
  943.             p=p->urm;}
  944.       }
  945. }
  946. void sortcan(){
  947.     nod *p;
  948.     int k =-1;
  949.     elv x;
  950.     while(k){
  951.         p=prim;
  952.         k=0;
  953.         while(p->urm){
  954.             if(p->info.an>p->urm->info.an){
  955.                 x=p->info;
  956.                 p->info=p->urm->info;
  957.                 p->urm->info=x;
  958.                 k=1;
  959.                 }
  960.             p=p->urm;
  961.         }
  962.       }
  963. }
  964. void sortdan(){
  965.     nod *p;
  966.     int k=-1;
  967.     elv x;
  968.     while(k){
  969.         p=prim;
  970.         k=0;
  971.         while(p->urm){
  972.             if(p->info.an<p->urm->info.an){
  973.                 x=p->info;
  974.                 p->info=p->urm->info;
  975.                 p->urm->info=x;
  976.                 k=1;
  977.                 }
  978.             p=p->urm;
  979.         }
  980.       }
  981.  
  982. }
  983. void meniusortare(){
  984.     int k;
  985.     k = 0;
  986.     while(k!=7){
  987.         cout<<"Alege sortarea:"<<endl<<endl;
  988.         cout<<"1. Sortare crescatoare an constructie"<<endl;
  989.         cout<<"2. Sortare descrescatoare constructie"<<endl;
  990.         cout<<"3. Sortare alfabetica dupa numele monumentului"<<endl;
  991.         cout<<"4. Sortare invers alfabetica dupa numele monumentului"<<endl;
  992.         cout<<"5. Sortare alfabetica localizare"<<endl;
  993.         cout<<"6. Sortare invers alfabetica localizare"<<endl;
  994.         cout<<"7. Iesire"<<endl;
  995.         cout<<endl<<"Alege optiunea:";
  996.         cin>>k;
  997.         switch(k){
  998.             case 1:system("cls");
  999.                    if (ok){
  1000.                         sortcan();
  1001.                         cout<<"SORTAREA S-A EFECTUAT.";
  1002.                    }
  1003.                    else if (( ok )&& ( list_counter == 1))
  1004.                         cout <<"LISTA ARE UN SINGUR ELEMENT, SORTAREA ESTE NESEMNIFICATIVA.";
  1005.                    else
  1006.                        cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  1007.                    _getch();
  1008.                    system("cls");
  1009.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1010.                    afisare(prim);
  1011.                    system("cls");
  1012.                    g.close();
  1013.                    break;
  1014.             case 2:system("cls");
  1015.                    if (ok){
  1016.                         sortdan();
  1017.                         cout<<"SORTAREA S-A EFECTUAT.";
  1018.                    }
  1019.                    else
  1020.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  1021.                    _getch();
  1022.                    system("cls");
  1023.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1024.                    afisare(prim);
  1025.                    system("cls");
  1026.                    g.close();
  1027.                    break;
  1028.             case 3:system("cls");
  1029.                    if (ok){
  1030.                         sortcnume();
  1031.                         cout<<"SORTAREA S-A EFECTUAT.";
  1032.                    }
  1033.                    else
  1034.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  1035.                    _getch();
  1036.                    system("cls");
  1037.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1038.                    afisare(prim);
  1039.                    system("cls");
  1040.                    g.close();
  1041.                    break;
  1042.             case 4:system("cls");
  1043.                    if (ok){
  1044.                         sortdnume();
  1045.                         cout<<"SORTAREA S-A EFECTUAT.";
  1046.                    }
  1047.                    else
  1048.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  1049.                    _getch();
  1050.                    system("cls");
  1051.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1052.                    afisare(prim);
  1053.                    system("cls");
  1054.                    g.close();
  1055.                    break;
  1056.             case 5:system("cls");
  1057.                    if (ok){
  1058.                         sortcloc();
  1059.                         cout<<"SORTAREA S-A EFECTUAT.";
  1060.                    }
  1061.                    else
  1062.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  1063.                    _getch();
  1064.                    system("cls");
  1065.                     break;
  1066.             case 6:system("cls");
  1067.                    if (ok){
  1068.                         sortdloc();
  1069.                         cout<<"SORTAREA S-A EFECTUAT.";
  1070.                    }
  1071.                    else
  1072.                         cout <<"DEOARECE LISTA NU ARE ELEMENTE, SORTAREA NU S-A EFECTUAT.";
  1073.                    _getch();
  1074.                    system("cls");
  1075.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1076.                    afisare(prim);
  1077.                    system("cls");
  1078.                    g.close();
  1079.                     break;
  1080.             /*case 7:system("cls");
  1081.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1082.                    afisare(prim);
  1083.                    system("cls");
  1084.                    g.close();
  1085.                    //_getch();
  1086.                    system("cls"); break;*/
  1087.             case 7:return;
  1088.         }
  1089.     }
  1090. }
  1091. int nr_elemente(nod* &prim){
  1092.     int counter = 0;
  1093.     nod* c = prim;
  1094.     while(c){
  1095.         counter++;
  1096.         c = c->urm;
  1097.     }
  1098.     return counter;
  1099. }
  1100. void stergere_nume_monument(char a[]){
  1101.     nod* p,*q;
  1102.     p=prim;
  1103.     q=prim->urm;
  1104.     while(q){
  1105.         if(strcmp(q->info.nume,a)==0){
  1106.             p->urm=q->urm;
  1107.             delete(q);
  1108.             q=p->urm;
  1109.         }
  1110.         else{
  1111.             q=q->urm;
  1112.             p=p->urm;
  1113.         }
  1114.     }
  1115.     ultim = q;
  1116.     if(strcmp(prim->info.nume,a)==0){
  1117.         q=prim;
  1118.         prim=prim->urm;
  1119.         delete(q);
  1120.     }
  1121. }
  1122. void stergere_an_constructie(int x){
  1123.     nod* p,*q;
  1124.     p=prim;
  1125.     q=prim->urm;
  1126.     while(q){
  1127.         if(q->info.an == x){
  1128.             p->urm=q->urm;
  1129.             delete(q);
  1130.             q=p->urm;
  1131.         }
  1132.         else{
  1133.             q=q->urm;
  1134.             p=p->urm;
  1135.         }
  1136.     }
  1137.     ultim = q;
  1138.     if(prim->info.an == x){
  1139.         q=prim;
  1140.         prim=prim->urm;
  1141.         delete(q);
  1142.     }
  1143. }
  1144.  
  1145. void meniustergere(){
  1146.     int x,op,y,nr_nume_before, nr_nume_after,nr_an_before,nr_an_after;
  1147.     char a[100];
  1148.     op = 0;
  1149.     while(op!=4){
  1150.         cout<<"Alege optiunea:"<<endl<<endl;
  1151.         cout<<"1. Stergere monument cu numele dat"<<endl;
  1152.         cout<<"2. Stergere monument cu anul de constructie"<<endl;
  1153.         //cout<<"3. Afisare"<<endl;
  1154.         cout<<"4. Iesire"<<endl;
  1155.         cout<<endl<<"Alege optiunea:";
  1156.         cin>>op;
  1157.         cin.get();
  1158.         switch(op){
  1159.             case 1:system("cls");
  1160.                    cout<<"Numele monumentului : ";
  1161.                    cin.get(a,100);
  1162.                    cin.get();
  1163.                    nr_nume_before = nr_elemente(prim);
  1164.                    stergere_nume_monument(a);
  1165.                    nr_nume_after = nr_elemente(prim);
  1166.                    if (nr_nume_before > nr_nume_after)
  1167.                        cout<<"STERGEREA S-A EFECTUAT.";
  1168.                    else
  1169.                        cout <<"ELEMENTUL INTRODUS NU EXISTA.";
  1170.                    _getch();
  1171.                    system("cls");
  1172.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1173.                    afisare(prim);
  1174.                    system("cls");
  1175.                    g.close();
  1176.                    break;
  1177.             case 2:system("cls");
  1178.                    cout << "Anul constructiei : ";
  1179.                    nr_nume_before = nr_elemente(prim);
  1180.                    cin >> y;
  1181.                    stergere_an_constructie(y);
  1182.                    nr_nume_after = nr_elemente(prim);
  1183.                    if (nr_nume_before > nr_nume_after)
  1184.                        cout<<"STERGEREA S-A EFECTUAT.";
  1185.                    else
  1186.                        cout <<"ELEMENTUL INTRODUS NU EXISTA.";
  1187.                    _getch();
  1188.                    system("cls");
  1189.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1190.                    afisare(prim);
  1191.                    system("cls");
  1192.                    g.close();
  1193.                    break;
  1194.             /*case 3:system("cls");
  1195.                    g.open("out.txt", ofstream::out | ofstream::trunc);
  1196.                    afisare(prim);
  1197.                    system("cls");
  1198.                    g.close();
  1199.                    //_getch();
  1200.                    system("cls");
  1201.                    break;*/
  1202.             case 3:return;
  1203.         }
  1204.     }
  1205. }
  1206. int main(){
  1207.     prim=0;
  1208.     ultim=0;
  1209.     int op;
  1210.     op = 0;
  1211.     while (op!=7){
  1212.         cout<<" 1.Creare/Adaugare"<<endl;
  1213.         cout<<" 2.Afisare lista monumente"<<endl;
  1214.         cout<<" 3.Minim dupa an constructie"<<endl;
  1215.         cout<<" 4.Maxim dupa an constructie"<<endl;
  1216.         cout<<" 5.Meniu sortare"<<endl;
  1217.         cout<<" 6.Meniu stergere"<<endl;
  1218.         cout<<" 7.Iesire"<<endl;
  1219.         cout<<endl<<endl<<"Tastati optiunea : ";
  1220.         cin>>op;
  1221.         cin.get();
  1222.         switch(op){
  1223.         case 1: system("cls");
  1224.                 cout << "Lista optiunilor la care datele se completeaza automat : " << endl << "-Muzeul de Arta" << endl << "-Muzeul Olteniei" << endl << "-Palatul de Justitie" << endl << "-Casa Vernescu" << endl << "-Casa Canciulescu" << endl << "-Casa Ferraru" << endl << "-Casa Dianu" << endl << "-Casa Zwillinger" << endl << "-Hanul Putureanu" << endl << "-Capela Sf. Maria" << endl << endl ;
  1225.                 //adauga_fisier(prim,ultim);
  1226.                 while(!f.eof()){
  1227.                     list_counter++;
  1228.                     adauga_fisier(prim,ultim);
  1229.                 }
  1230.                 system("cls");
  1231.                 break;
  1232.         case 2: system("cls");
  1233.                 g.open("out.txt", ofstream::out | ofstream::trunc);
  1234.                 afisare(prim);
  1235.                 system("cls");
  1236.                 g.close();
  1237.                 break;
  1238.         case 3: system("cls");
  1239.                 g.open("out.txt", ofstream::out | ofstream::trunc);
  1240.                 min(prim);
  1241.                 _getch();
  1242.                 system("cls");
  1243.                 g.close();
  1244.                 break;
  1245.         case 4: system("cls");
  1246.                 g.open("out.txt", ofstream::out | ofstream::trunc);
  1247.                 max(prim);
  1248.                 _getch();
  1249.                 system("cls");
  1250.                 g.close();
  1251.                 break;
  1252.         case 5: system("cls");
  1253.                 if (list_counter == 0)
  1254.                     cout << "SORTAREA NU ESTE VALABILA DEOARECE LISTA NU ARE NICI UN ELEMENT."<< endl;
  1255.                 else if (list_counter == 1)
  1256.                     cout << "SORTAREA NU ESTE VALABILA DEOARECE LISTA ARE UN SINGUR ELEMENT."<< endl;
  1257.                 else
  1258.                     meniusortare();
  1259.                 _getch();
  1260.                 system("cls");
  1261.                 break;
  1262.         case 6: system("cls");
  1263.                 if (list_counter == 0)
  1264.                     cout << "SORTAREA NU ESTE VALABILA DEOARECE LISTA NU ARE NICI UN ELEMENT."<< endl;
  1265.                 else
  1266.                     meniustergere();
  1267.                 _getch();
  1268.                 system("cls");
  1269.                 break;
  1270.         case 7: f.close();
  1271.                 g.close();
  1272.                 remove("in.txt");
  1273.                 rename("out.txt","in.txt");
  1274.                 return 0;
  1275.         default:system("cls"); cout<<"OPTIUNE INCORECTA!!"<<endl<<endl;_getch();system("cls");break;
  1276.         }
  1277.     }
  1278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement