Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <iomanip>
  5. #include <string.h>
  6. using namespace std;
  7. struct nastere{
  8. char zi1[20];
  9. char zi2[20];
  10. char luna1[20];
  11. char luna2[20];
  12. int an1,an2;
  13. };
  14. struct ingineri{
  15. char nume[40];
  16. int ani;
  17. char inventii[340];
  18. nastere datas;
  19. };
  20. struct nod{
  21. ingineri data;
  22. nod *next;
  23. };
  24.  
  25. int ok=0,Counter=0;
  26. nod * prim,* ultim;
  27. nod * pprim;
  28. /*void adaugSentinel(nod* &prim){
  29. nod* pprim=new nod;
  30. pprim->next=prim;
  31. }*/
  32. void adauga(nod *&prim, nod *&ultim){
  33.  
  34. cout<<"lista ingineri : "<<endl<<endl;
  35. cout<<"-Ion Agarbiceanu"<<endl;
  36. cout<<"-Ana Aslan"<<endl;
  37. cout<<"-Victor Babes"<<endl;
  38. cout<<"-Ion St. Basgan"<<endl;
  39. cout<<"-Petrache Poenaru"<<endl;
  40. cout<<"-Ion Cantacuzino"<<endl;
  41. cout<<"-Traian Vuia"<<endl;
  42. cout<<"-Henri Coanda"<<endl;
  43. cout<<"-Grigore Antipa"<<endl;
  44. cout<<"-Stefan Odobleja"<<endl;
  45. cout<<"-Nicolae Vasilescu-Karpen"<<endl;
  46. cout<<"-Teodor Dragu"<<endl<<endl;
  47. cout<<"**P.S: abreviations of the prelisted names such as Ana Aslan->ana aslan work as long as the names start with the same lowercase/uppercase letter!**"<<endl;
  48. cout<<endl<<endl;
  49. ingineri v;
  50. cout<<"Nume inginer roman: ";cin.getline(v.nume,sizeof(v.nume));
  51. if((strcmp(v.nume,"Ion Agarbiceanu")==0)||(strcmp(v.nume,"ion agarbiceanu")==0)){
  52. strcpy(v.inventii,"tehnica laserului si luminia polarizata ");
  53. //strcpy(v.data_nasterii_si_decedarii,"n-12.09.1882 d-28.05.1963");
  54. v.ani=80;
  55. v.datas.an1=1882;
  56. v.datas.an2=1963;
  57. strcpy(v.datas.luna1,"09");
  58. strcpy(v.datas.luna2,"05");
  59. strcpy(v.datas.zi1,"12");
  60. strcpy(v.datas.zi2,"28");
  61. }
  62. else if((strcmp(v.nume,"Ana Aslan")==0)||(strcmp(v.nume,"ana aslan")==0)){
  63. strcpy(v.inventii,"vitamina H3 si produsul geriatric Aslavital");
  64. //strcpy(v.data_nasterii_si_decedarii,"n-01.01.1897 d-20.05.1988");
  65. v.ani=91;
  66. v.datas.an1=1897;
  67. v.datas.an2=1988;
  68. strcpy(v.datas.luna1,"01");
  69. strcpy(v.datas.luna2,"05");
  70. strcpy(v.datas.zi1,"01");
  71. strcpy(v.datas.zi2,"20");
  72. }
  73. else if((strcmp(v.nume,"Victor Babes")==0)||(strcmp(v.nume,"victor babes")==0)){
  74. strcpy(v.inventii,"tratamentul pelagrei si a rabiei");
  75. //strcpy(v.data_nasterii_si_decedarii,"n-04.07.1854 d-19.10.1926");
  76. v.ani=72;
  77. v.datas.an1=1854;
  78. v.datas.an2=1926;
  79. strcpy(v.datas.luna1,"07");
  80. strcpy(v.datas.luna2,"10");
  81. strcpy(v.datas.zi1,"04");
  82. strcpy(v.datas.zi2,"19");
  83. }
  84. else if((strcmp(v.nume,"Ion St. Basgan")==0)||(strcmp(v.nume,"ion st. basgan")==0)||(strcmp(v.nume,"ion basgan")==0)||(strcmp(v.nume,"ion st basgan")==0)){
  85. strcpy(v.inventii,"metoda pentru imbunatatirea randamentului si perfectionarea forajului rotativ");
  86. //strcpy(v.data_nasterii_si_decedarii,"n-24.06.1902 d-15.12.1982");
  87. v.ani=79;
  88. v.datas.an1=1902;
  89. v.datas.an2=1982;
  90. strcpy(v.datas.luna1,"06");
  91. strcpy(v.datas.luna2,"12");
  92. strcpy(v.datas.zi1,"24");
  93. strcpy(v.datas.zi2,"15");
  94. }
  95. else if((strcmp(v.nume,"Petrache Poenaru")==0)||(strcmp(v.nume,"petrache poenaru")==0)){
  96. strcpy(v.inventii,"stiloul");
  97. //strcpy(v.data_nasterii_si_decedarii,"n-10.01.1799 d-02.10.1875");
  98. v.ani=76;
  99. v.datas.an1=1799;
  100. v.datas.an2=1875;
  101. strcpy(v.datas.luna1,"01");
  102. strcpy(v.datas.luna2,"10");
  103. strcpy(v.datas.zi1,"10");
  104. strcpy(v.datas.zi2,"02");
  105. }
  106. else if((strcmp(v.nume,"Ion Cantacuzino")==0)||(strcmp(v.nume,"ion cantacuzino")==0)){
  107. strcpy(v.inventii,"vaccinul antiholeric ");
  108. //strcpy(v.data_nasterii_si_decedarii,"n-25.11.1863 d-14.01.1934");
  109. v.ani=71;
  110. v.datas.an1=1863;
  111. v.datas.an2=1934;
  112. strcpy(v.datas.luna1,"11");
  113. strcpy(v.datas.luna2,"01");
  114. strcpy(v.datas.zi1,"25");
  115. strcpy(v.datas.zi2,"14");
  116. }
  117. else if((strcmp(v.nume,"Traian Vuia")==0)||(strcmp(v.nume,"traian vuia")==0)){
  118. strcpy(v.inventii,"inventator al aviatiei mondiale care a zburat primul avion autopropulsat");
  119. //strcpy(v.data_nasterii_si_decedarii,"n-17.08.1872 d-03.09.1950");
  120. v.ani=78;
  121. v.datas.an1=1872;
  122. v.datas.an2=1950;
  123. strcpy(v.datas.luna1,"08");
  124. strcpy(v.datas.luna2,"09");
  125. strcpy(v.datas.zi1,"17");
  126. strcpy(v.datas.zi2,"03");
  127. }
  128. else if((strcmp(v.nume,"Henri Coanda")==0)||(strcmp(v.nume,"henri coanda")==0)){
  129. strcpy(v.inventii,"inventator al avionului cu reactie ");
  130. //strcpy(v.data_nasterii_si_decedarii,"n-07.06.1886 d-25.11.1972");
  131. v.ani=86;
  132. v.datas.an1=1886;
  133. v.datas.an2=1972;
  134. strcpy(v.datas.luna1,"06");
  135. strcpy(v.datas.luna2,"11");
  136. strcpy(v.datas.zi1,"07");
  137. strcpy(v.datas.zi2,"25");
  138. }
  139. else if((strcmp(v.nume,"Grigore Antipa")==0)||(strcmp(v.nume,"grigore antipa")==0)){
  140. strcpy(v.inventii,"inventatorul dioramei ");
  141. //strcpy(v.data_nasterii_si_decedarii,"n-27.11.1867 d-09.03.1944");
  142. v.ani=77;
  143. v.datas.an1=1867;
  144. v.datas.an2=1944;
  145. strcpy(v.datas.luna1,"11");
  146. strcpy(v.datas.luna2,"03");
  147. strcpy(v.datas.zi1,"27");
  148. strcpy(v.datas.zi2,"09");
  149. }
  150. else if((strcmp(v.nume,"Stefan Odobleja")==0)||(strcmp(v.nume,"stefan odobleja")==0)){
  151. strcpy(v.inventii,"inventator al ciberneticii ");
  152. //strcpy(v.data_nasterii_si_decedarii,"n-13.10.1902 d-4.09.1978");
  153. v.ani=75;
  154. v.datas.an1=1902;
  155. v.datas.an2=1978;
  156. strcpy(v.datas.luna1,"10");
  157. strcpy(v.datas.luna2,"09");
  158. strcpy(v.datas.zi1,"13");
  159. strcpy(v.datas.zi2,"04");
  160. }
  161. else if((strcmp(v.nume,"Nicolae Vasilescu-Karpen")==0)||(strcmp(v.nume,"nicolae vasilescu-karpen")==0)||(strcmp(v.nume,"nicolae vasilescu karpen")==0)){
  162. strcpy(v.inventii,"inventator al pilelor karpen ");
  163. //strcpy(v.data_nasterii_si_decedarii,"n-10.12.1870 d-02.03.1964");
  164. v.ani=93;
  165. v.datas.an1=1870;
  166. v.datas.an2=1964;
  167. strcpy(v.datas.luna1,"12");
  168. strcpy(v.datas.luna2,"03");
  169. strcpy(v.datas.zi1,"10");
  170. strcpy(v.datas.zi2,"02");
  171. }
  172. else if((strcmp(v.nume,"Teodor Dragu")==0)||(strcmp(v.nume,"teodor dragu")==0)){
  173. //strcpy(v.data_nasterii_si_decedarii,"n-1848 d-1925 ");
  174. strcpy(v.inventii,"ingineriei mecanice in romania");
  175. v.ani=77;
  176. v.datas.an1=1848;
  177. v.datas.an2=1925;
  178. strcpy(v.datas.luna1,"00");
  179. strcpy(v.datas.luna2,"00");
  180. strcpy(v.datas.zi1,"00");
  181. strcpy(v.datas.zi2,"00");
  182.  
  183. }else{
  184. cout<<"fiindca nu ai introdus un inginer din lista predefinita te rog citeste: "<<endl;
  185. cout<<"DATELE NASTERII/DECESULUI: ";
  186. cout<<"Anul Nasterii: ";cin>>v.datas.an1;cin.get();
  187. cout<<"Luna Nasterii: ";cin.get(v.datas.luna1,sizeof(v.datas.luna1));cin.get();
  188. cout<<"Ziua Nasterii: ";cin.get(v.datas.zi1,sizeof(v.datas.zi1));cin.get();
  189. cout<<"Anul Decesului: ";cin>>v.datas.an2;cin.get();
  190. cout<<"Luna Decesului: ";cin.get(v.datas.luna2,sizeof(v.datas.luna2));cin.get();
  191. cout<<"Ziua Decesului: ";cin.get(v.datas.zi2,sizeof(v.datas.zi2));cin.get();
  192. cout<<"Numele inventiei Inginerului : ";cin.get(v.inventii,sizeof(v.inventii));cin.get();
  193. cout<<"Varsta Inginerului: ";cin>>v.ani;cin.get();cout<<endl;
  194. }
  195. nod* p;
  196. if((prim==ultim)&&(prim==0)){
  197. prim=ultim=new nod;
  198. prim->data=v;
  199. prim->next=0;
  200. }
  201. else {
  202. p=new nod;
  203. p->data=v;
  204. ultim->next=p;
  205. ultim=p;
  206. ultim->next=0;
  207. ok=1;
  208. }
  209. }
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216. void afisare(nod *&prim){
  217. nod* p;
  218. int i=1;
  219. p=prim;
  220. cout<<" "<<left<<setw(20)<<"Numele Inginerului"<<' '<<left<<setw(30)<<" Nasterea Decesul"<<left<<setw(10)<<"Varsta"<<left<<setw(10)<<"Inventii"<<endl<<endl;
  221. while(p){
  222. cout<<i<<"."<<' ';
  223. cout<<fixed;
  224. cout<<left<<" "<<setw(20)<<p->data.nume<<right<<setw(2)<<showpoint<<setprecision(3)<<p->data.datas.zi1<<"."<<p->data.datas.luna1<<"."<<p->data.datas.an1<<" "<<p->data.datas.zi2<<"."<<p->data.datas.luna2<<"."<<p->data.datas.an2<<" "<<left<<setw(8)<<showpoint<<setprecision(3)<<p->data.ani<<left<<setw(30)<<p->data.inventii<<endl;
  225. p=p->next;
  226. i++;
  227. }
  228. }
  229.  
  230. void sterginginer(char a[]){
  231. nod* p,*q;
  232. p=prim;
  233. q=prim->next;
  234. while(q){
  235. if(strcmp(q->data.nume,a)==0){
  236. p->next=q->next;
  237. delete(q);
  238. q=p->next;
  239. }
  240. else{
  241. q=q->next;
  242. p=p->next;
  243. }
  244. }
  245. ultim=q;
  246. if(strcmp(prim->data.nume,a)==0){
  247. q=prim;
  248. prim=prim->next;
  249. delete(q);
  250. }
  251. }
  252. void stergani(int b){
  253. nod* p,*q;
  254. p=prim;
  255. q=prim->next;
  256. while(q){
  257. if(q->data.ani==b){
  258. p->next=q->next;
  259. delete(q);
  260. q=p->next;
  261. }
  262. else{
  263. q=q->next;
  264. p=p->next;
  265. }
  266. }
  267. ultim=q;
  268. if(prim->data.ani==b){
  269. q=prim;
  270. prim=prim->next;
  271. delete(q);
  272. }
  273.  
  274. }
  275. int caut(nod* &prim){
  276. int ok1=0;
  277. nod* c=prim;
  278. while(c){
  279. ok1++;
  280. c=c->next;
  281. }
  282. return ok1;
  283.  
  284. }
  285.  
  286.  
  287. void meniustergere(){
  288. int x,op, nr_nume_1, nr_nume_2, nr_an_1, nr_an_2;
  289. char a[100];
  290. int b;
  291. do{
  292. cout<<"Alege optiunea:"<<endl<<endl;
  293. cout<<"1. Stergere inginerului cu numele:"<<endl;
  294. cout<<"2. Stergere inginerului dupa varsta: "<<endl;
  295. cout<<"3. Afisare"<<endl;
  296. cout<<"4. Iesire"<<endl;
  297. cout<<endl<<"Alege optiunea:";
  298. cin>>op;
  299. cin.get();
  300. switch(op){
  301. case 1:system("cls");
  302. if(ok==0){
  303. cout<<"Nu exista nici un element in lista";
  304. }else if(ok!=0){
  305. cout<<"Numele inginerului : ";
  306. cin.get(a,100);
  307. cin.get();
  308. nr_nume_1=caut(prim);
  309. sterginginer(a);
  310. nr_nume_2=caut(prim);
  311. if(nr_nume_1>nr_nume_2){
  312. cout<<"STERGEREA S-A EFECTUAT";
  313. }else
  314. cout<<"NU EXISTA ACEL ELEMENT IN LISTA ";
  315. }
  316. getch();
  317. system("cls");
  318. break;
  319.  
  320. case 2:system("cls");
  321. if(ok==0){
  322. cout<<"Nu exista nici un element in lista";
  323. }else if(ok!=0){
  324. cout<<"Varsta: ";
  325. cin>>b;
  326. cin.get();
  327. nr_an_1=caut(prim);
  328. stergani(b);
  329. nr_an_2=caut(prim);
  330. if(nr_an_1>nr_an_2){
  331. cout<<"STERGEREA S-A EFECTUAT";
  332. }else{
  333. cout<<"NU EXISTA ACEL ELEMENT IN LISTA ";
  334. }}
  335. getch();
  336. system("cls");
  337. break;
  338. case 3:system("cls");
  339. if(ok==0){
  340. cout<<"Nu exista nici un element in lista";
  341. }else if(ok!=0){
  342. afisare(prim);
  343. }
  344. getch();
  345. system("cls");
  346. break;
  347. case 4:return;
  348. }
  349. }while(op!=5);
  350. }
  351.  
  352.  
  353. void sortcnume(){
  354. ingineri x;
  355. int k;
  356. nod *p;
  357. do{
  358. p=prim;
  359. k=0;
  360. while(p->next){
  361. if(strcmp(p->data.nume,p->next->data.nume)==1){
  362. x=p->data;
  363. p->data=p->next->data;
  364. p->next->data=x;
  365. k=1;
  366. }
  367. p=p->next;}
  368. }
  369. while(k);
  370. }
  371. void sortdnume(){
  372. ingineri x;
  373. int k;
  374. nod *p;
  375. do{
  376. p=prim;
  377. k=0;
  378. while(p->next){
  379. if(strcmp(p->data.nume,p->next->data.nume)==-1){
  380. x=p->data;
  381. p->data=p->next->data;
  382. p->next->data=x;
  383. k=1;
  384. }
  385. p=p->next;}
  386. }
  387. while(k);
  388. }
  389. void sortcinventii(){
  390. ingineri x;
  391. int k;
  392. nod *p;
  393. do{
  394. p=prim;
  395. k=0;
  396. while(p->next){
  397. if(strcmp(p->data.inventii,p->next->data.inventii)==1){
  398. x=p->data;
  399. p->data=p->next->data;
  400. p->next->data=x;
  401. k=1;
  402. }
  403. p=p->next;}
  404. }
  405. while(k);
  406. }
  407. void sortdinventii(){
  408. ingineri x;
  409. int k;
  410. nod *p;
  411. do{
  412. p=prim;
  413. k=0;
  414. while(p->next){
  415. if(strcmp(p->data.inventii,p->next->data.inventii)==-1){
  416. x=p->data;
  417. p->data=p->next->data;
  418. p->next->data=x;
  419. k=1;
  420. }
  421. p=p->next;}
  422. }
  423. while(k);
  424. }
  425. void sortcani(){
  426. nod *p;
  427. int k;
  428. ingineri x;
  429. do{
  430. p=prim;
  431. k=0;
  432. while(p->next){
  433. if(p->data.ani>p->next->data.ani){
  434. x=p->data;
  435. p->data=p->next->data;
  436. p->next->data=x;
  437. k=1;
  438. }
  439. p=p->next;}
  440. }
  441. while(k);
  442. }
  443. void sortdani(){
  444. nod *p;
  445. int k;
  446. ingineri x;
  447. do{
  448. p=prim;
  449. k=0;
  450. while(p->next){
  451. if(p->data.ani<p->next->data.ani){
  452. x=p->data;
  453. p->data=p->next->data;
  454. p->next->data=x;
  455. k=1;
  456. }
  457. p=p->next;}
  458. }
  459. while(k);
  460. }
  461. void sortcannastere(){
  462. nod *p;
  463. int k;
  464. ingineri x;
  465. do{
  466. p=prim;
  467. k=0;
  468. while(p->next){
  469. if(p->data.datas.an1>p->next->data.datas.an1){
  470. x=p->data;
  471. p->data=p->next->data;
  472. p->next->data=x;
  473. k=1;
  474. }
  475. p=p->next;}
  476. }
  477. while(k);
  478. }
  479. void sortdannastere(){
  480. nod *p;
  481. int k;
  482. ingineri x;
  483. do{
  484. p=prim;
  485. k=0;
  486. while(p->next){
  487. if(p->data.datas.an1<p->next->data.datas.an1){
  488. x=p->data;
  489. p->data=p->next->data;
  490. p->next->data=x;
  491. k=1;
  492. }
  493. p=p->next;}
  494. }
  495. while(k);
  496. }
  497. void sortcandeces(){
  498. nod *p;
  499. int k;
  500. ingineri x;
  501. do{
  502. p=prim;
  503. k=0;
  504. while(p->next){
  505. if(p->data.datas.an2>p->next->data.datas.an2){
  506. x=p->data;
  507. p->data=p->next->data;
  508. p->next->data=x;
  509. k=1;
  510. }
  511. p=p->next;}
  512. }
  513. while(k);
  514. }
  515. void sortdandeces(){
  516. nod *p;
  517. int k;
  518. ingineri x;
  519. do{
  520. p=prim;
  521. k=0;
  522. while(p->next){
  523. if(p->data.datas.an2<p->next->data.datas.an2){
  524. x=p->data;
  525. p->data=p->next->data;
  526. p->next->data=x;
  527. k=1;
  528. }
  529. p=p->next;}
  530. }
  531. while(k);
  532. }
  533. void meniusortare(){
  534. int k;
  535. do{
  536. cout<<"Alege sortarea:"<<endl<<endl;
  537. cout<<"1. Sortare crescatoare ani"<<endl;
  538. cout<<"2. Sortare descrescatoare ani"<<endl;
  539. cout<<"3. Sortare alfabetica nume inginer"<<endl;
  540. cout<<"4. Sortare invers alfabetica nume inginer"<<endl;
  541. cout<<"5. Sortare alfabetica inventii"<<endl;
  542. cout<<"6. Sortare invers alfabetica inventii"<<endl;
  543. cout<<"7. Sortare crescatoare dupa anul nasterii"<<endl;
  544. cout<<"8. Sortare descrescatoare dupa anul nasterii"<<endl;
  545. cout<<"9. Sortare crescatoare dupa anul nasterii"<<endl;
  546. cout<<"10. Sortare descrescatoare dupa anul nasterii"<<endl;
  547. cout<<"11. Afisare"<<endl;
  548. cout<<"12. Iesire"<<endl;
  549. cout<<endl<<"Alege optiunea:";
  550. cin>>k;
  551. switch(k){
  552. case 1:system("cls");
  553. if(ok==0){
  554. cout<<"Nu exista nici un element in lista";
  555. }else if(ok!=0){
  556.  
  557. sortcani();
  558. cout<<"SORTAREA S-A EFECTUAT";
  559. }
  560. getch();
  561. system("cls");
  562. break;
  563. case 2:system("cls");
  564. if(ok==0){
  565. cout<<"Nu exista nici un element in lista";
  566. }else if(ok!=0){
  567. sortdani();
  568. cout<<"SORTAREA S-A EFECTUAT";
  569. }
  570. getch();
  571. system("cls");
  572. break;
  573. case 3:system("cls");
  574. if(ok==0){
  575. cout<<"Nu exista nici un element in lista";
  576. }else if(ok!=0){
  577. sortcnume();
  578. cout<<"SORTAREA S-A EFECTUAT";}
  579. getch();
  580. system("cls");
  581. break;
  582. case 4:system("cls");
  583. if(ok==0){
  584. cout<<"Nu exista nici un element in lista";
  585. }else if(ok!=0){
  586. sortdnume();
  587. cout<<"SORTAREA S-A EFECTUAT";}
  588. getch();
  589. system("cls");
  590. break;
  591. case 5:system("cls");
  592. if(ok==0){
  593. cout<<"Nu exista nici un element in lista";
  594. }else if(ok!=0){
  595. sortcinventii();
  596. cout<<"SORTAREA S-A EFECTUAT";}
  597. getch();
  598. system("cls");
  599. break;
  600. case 6:system("cls");
  601. if(ok==0){
  602. cout<<"Nu exista nici un element in lista";
  603. }else if(ok!=0){
  604. sortdinventii();
  605. cout<<"SORTAREA S-A EFECTUAT";}
  606. getch();
  607. system("cls");
  608. break;
  609. case 7:system("cls");
  610. if(ok==0){
  611. cout<<"Nu exista nici un element in lista";
  612. }else if(ok!=0){
  613. sortcannastere();
  614. cout<<"SORTAREA S-A EFECTUAT";}
  615. getch();
  616. system("cls");
  617. break;
  618. case 8:system("cls");
  619. if(ok==0){
  620. cout<<"Nu exista nici un element in lista";
  621. }else if(ok!=0){
  622. sortdannastere();
  623. cout<<"SORTAREA S-A EFECTUAT";}
  624. getch();
  625. system("cls");
  626. break;
  627. case 9:system("cls");
  628. if(ok==0){
  629. cout<<"Nu exista nici un element in lista";
  630. }else if(ok!=0){
  631. sortcandeces();
  632. cout<<"SORTAREA S-A EFECTUAT";}
  633. getch();
  634. system("cls");
  635. break;
  636. case 10:system("cls");
  637. if(ok==0){
  638. cout<<"Nu exista nici un element in lista";
  639. }else if(ok!=0){
  640. sortdandeces();
  641. cout<<"SORTAREA S-A EFECTUAT";}
  642. getch();
  643. system("cls");
  644. break;
  645. case 11:system("cls");
  646. if(ok==0){
  647. cout<<"Nu exista nici un element in lista";
  648. }else if(ok!=0){ afisare(prim);}
  649. getch();
  650. system("cls"); break;
  651. case 12:return;
  652. }
  653. }while(k!=12);
  654. }
  655.  
  656. void max(nod *prim){
  657. nod *p;
  658. double max=-1;
  659. p=prim;
  660. while(p){
  661. if(p->data.ani>max)max=p->data.ani;
  662. p=p->next;
  663. }
  664. cout<<" "<<left<<setw(20)<<"Numele Inginerului"<<" "<<left<<setw(20)<<"Varsta"<<left<<setw(30)<<"Inventii"<<endl<<endl;
  665. p=prim;
  666. while(p){
  667. int i;
  668. i=1;
  669. cout<<fixed;
  670. if(p->data.ani==max)cout<<i<<"."<<left<<" "<<setw(20)<<p->data.nume<<right<<setw(10)<<showpoint<<setprecision(3)<<p->data.ani<<" "<<left<<setw(30)<<p->data.inventii<<endl;
  671. p=p->next;
  672. i++;
  673. }
  674. }
  675. void min(nod *prim){
  676. nod *p;
  677. double min=9000000;
  678. p=prim;
  679. while(p){
  680. if(p->data.ani<min)min=p->data.ani;
  681. p=p->next;
  682. }
  683. cout<<" "<<left<<setw(20)<<"Numele Inginerului"<<" "<<left<<setw(20)<<"Varsta"<<left<<setw(30)<<"Inventii"<<endl<<endl;
  684. p=prim;
  685. while(p){
  686. int i;
  687. i=1;
  688. cout<<fixed;
  689. if(p->data.ani==min) cout<<i<<"."<<left<<" "<<setw(20)<<p->data.nume<<right<<setw(10)<<showpoint<<setprecision(3)<<p->data.ani<<" "<<left<<setw(30)<<p->data.inventii<<endl;
  690. p=p->next;
  691. i++;
  692. }
  693. }
  694. int main(){
  695. prim=ultim=pprim=0;
  696. int op;
  697. do{
  698. cout<<" 1.Creare/Adaugare"<<endl;
  699. cout<<" 2.Afisare lista ingineri"<<endl;
  700. cout<<" 3.Minim"<<endl;
  701. cout<<" 4.Maxim"<<endl;
  702. cout<<" 5.Meniu stergere"<<endl;
  703. cout<<" 6.Meniu sortare"<<endl;
  704. cout<<" 7.Iesire"<<endl;
  705. cout<<endl<<endl<<"Optiunea:";
  706. cin>>op;
  707. cin.get();
  708. switch(op){
  709. case 1: system("cls");
  710.  
  711. adauga(prim,ultim);
  712. //adaugSentinel(prim);
  713. Counter++;
  714. system("cls");
  715. break;
  716. case 2: system("cls");
  717. afisare(prim);
  718. getch();
  719. system("cls");
  720. break;
  721. case 3: system("cls");
  722. min(prim);
  723. getch();
  724. system("cls");
  725. break;
  726. case 4: system("cls");
  727. max(prim);
  728. getch();
  729. system("cls");
  730. break;
  731. case 5: system("cls");
  732. if(Counter==0){
  733. cout<<"MENIUL DE SORTARE NU ESTE ACCESIBIL DEOARECE LISTA NU ARE NICI UN ELEMENT";
  734. }else
  735. meniustergere();
  736. getch();
  737. system("cls");
  738. break;
  739. case 6: system("cls");
  740. if(Counter==1||Counter==0){
  741. cout<<"MENIUL DE SORTARE NU ESTE ACCESIBIL DEOARECE LISTA ARE UN SINGUR ELEMENT SAU NICI UN ELEMENT";
  742. }else
  743. meniusortare();
  744. getch();
  745. system("cls");
  746. break;
  747. case 7: return 0;
  748. default:system("cls"); cout<<"OPTIUNE INCORECTA!!"<<endl<<endl;getch();system("cls");break;
  749. }
  750. }while (op!=7);
  751. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement