Advertisement
Guest User

Untitled

a guest
May 24th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio.h>
  5.  
  6. typedef struct A
  7. {
  8. char nume[20], UM[3], magazie[2]; //Magaziile A sau B
  9. int cod, categorie; //categorie poate fi 1,2 sau 3
  10. float cant, pret_UM;
  11. struct A *urm1;
  12. }A;
  13.  
  14. A* prim1=NULL;
  15.  
  16. typedef struct B
  17. {
  18. char nume2[20], UM2[2], magazie2[2]; //O singura magazie, magazia M
  19. int cod2, categorie2;
  20. float cant2, pret_UM2;
  21. struct B *urm2;
  22. }B;
  23.  
  24. B *prim2=NULL;
  25.  
  26. typedef struct M
  27. {
  28. char nume3[20], UM3[2], magazie3[2]; //O singura magazie, magazia M
  29. int cod3, categorie3;
  30. float cant3, pret_UM3;
  31. struct M *urm3;
  32. }M;
  33.  
  34. M *prim3=NULL;
  35.  
  36. typedef struct C
  37. {
  38. char nume[20], UM[3], magazie[2]; //Magaziile A sau B
  39. int cod, categorie; //categorie poate fi 1,2 sau 3
  40. float cant, pret_UM;
  41. struct C *urm4;
  42. }C;
  43.  
  44. C *prim4=NULL;
  45.  
  46.  
  47.  
  48. A *adauga1 (A *lista1, char nume[20], int cod, int categorie, char UM[3], float cant, float pret_UM, char magazie[2])
  49. {
  50. A *i1, *i2, *aux;
  51. aux=(A*)malloc(sizeof(A));
  52.  
  53. strcpy(aux->nume,nume);
  54. aux->cod=cod;
  55. aux->categorie=categorie;
  56. strcpy(aux->UM,UM);
  57. aux->cant=cant;
  58. aux->pret_UM=pret_UM;
  59. strcpy(aux->magazie,magazie);
  60.  
  61. for (i1=i2=lista1;i1!=NULL && strcmp(i1->nume,nume)<0; i2=i1, i1=i1->urm1);
  62. if (i1==i2)
  63. {
  64. aux->urm1=lista1;
  65. lista1=aux;
  66. }
  67. else
  68. {
  69. i2->urm1=aux;
  70. aux->urm1=i1;
  71. }
  72. return lista1;
  73. }
  74.  
  75. B *adauga2 (B *lista2, char nume[20], int cod, int categorie, char UM[3], float cant, float pret_UM, char magazie[2])
  76. {
  77. B *q1, *q2, *aux2;
  78. aux2=(B*)malloc(sizeof(B));
  79.  
  80. strcpy(aux2->nume2,nume);
  81. aux2->cod2=cod;
  82. aux2->categorie2=categorie;
  83. strcpy(aux2->UM2,UM);
  84. aux2->cant2=cant;
  85. aux2->pret_UM2=pret_UM;
  86. strcpy(aux2->magazie2,magazie);
  87.  
  88. for (q1=q2=lista2; q1!=NULL && strcmp(q1->nume2,nume)<0; q2=q1, q1=q1->urm2);
  89. if (q1==q2)
  90. {
  91. aux2->urm2=lista2;
  92. lista2=aux2;
  93. }
  94. else
  95. {
  96. q2->urm2=aux2;
  97. aux2->urm2=q1;
  98. }
  99.  
  100. return lista2;
  101. }
  102.  
  103. M *adauga3 (M *lista3, char nume[20], int cod, int categorie, char UM[3], float cant, float pret_UM, char magazie[2])
  104. {
  105. M *p1, *p2, *aux3;
  106. aux3=(M*)malloc(sizeof(M));
  107.  
  108. strcpy(aux3->nume3,nume);
  109. aux3->cod3=cod;
  110. aux3->categorie3=categorie;
  111. strcpy(aux3->UM3,UM);
  112. aux3->cant3=cant;
  113. aux3->pret_UM3=pret_UM;
  114. strcpy(aux3->magazie3,magazie);
  115.  
  116. for (p1=p2=lista3; p1!=NULL && strcmp(p1->nume3,nume)<0; p2=p1, p1=p1->urm3);
  117. if (p1==p2)
  118. {
  119. aux3->urm3=lista3;
  120. lista3=aux3;
  121. }
  122. else
  123. {
  124. p2->urm3=aux3;
  125. aux3->urm3=p1;
  126. }
  127.  
  128. return lista3;
  129. }
  130.  
  131.  
  132. void afisare_A (A *lista1)
  133. {
  134. A* i;
  135. printf ("\nMagazia A\n");
  136. for (i=lista1; i!=NULL; i=i->urm1)
  137. {
  138. printf ("%s ", i->nume);
  139. printf ("%d ", i->cod);
  140. printf ("%d ", i->categorie);
  141. printf ("%.2s ", i->UM);
  142. printf ("%.2f ", i->cant);
  143. printf ("%.2f ", i->pret_UM);
  144. printf ("%s ", i->magazie);
  145. printf ("\n");
  146. }
  147. }
  148.  
  149. void afisare_B (B *lista2)
  150. {
  151. B *i;
  152. printf ("\nMagazia B\n");
  153. for (i=lista2; i!=NULL; i=i->urm2)
  154. {
  155. printf ("%s ", i->nume2);
  156. printf ("%d ", i->cod2);
  157. printf ("%d ", i->categorie2);
  158. printf ("%.2s ", i->UM2);
  159. printf ("%.2f ", i->cant2);
  160. printf ("%.2f ", i->pret_UM2);
  161. printf ("%s ", i->magazie2);
  162. printf ("\n");
  163. }
  164. }
  165.  
  166.  
  167.  
  168. void afisare_M (M *lista3)
  169. {
  170. M *i;
  171. printf ("\nMagazia M\n");
  172. for (i=lista3; i!=NULL; i=i->urm3)
  173. {
  174. printf ("%s ", i->nume3);
  175. printf ("%d ", i->cod3);
  176. printf ("%d ", i->categorie3);
  177. printf ("%.2s ", i->UM3);
  178. printf ("%.2f ", i->cant3);
  179. printf ("%.2f ", i->pret_UM3);
  180. printf ("%s ", i->magazie3);
  181. printf ("\n");
  182. }
  183. }
  184.  
  185. C *adauga4 (C *lista4, char nume[20], int cod, int categorie, char UM[3], float cant, float pret_UM, char magazie[2])
  186. {
  187. C *c1, *c2, *aux4;
  188. aux4=(C*)malloc(sizeof(C));
  189.  
  190. strcpy(aux4->nume,nume);
  191. aux4->cod=cod;
  192. aux4->categorie=categorie;
  193. strcpy(aux4->UM,UM);
  194. aux4->cant=cant;
  195. aux4->pret_UM=pret_UM;
  196. strcpy(aux4->magazie,magazie);
  197.  
  198. for (c1=c2=lista4; c1!=NULL && strcmp(c1->nume,nume)<0; c2=c1, c1=c1->urm4);
  199. if (c1==c2)
  200. {
  201. aux4->urm4=lista4;
  202. lista4=aux4;
  203. }
  204. else
  205. {
  206. c2->urm4=aux4;
  207. aux4->urm4=c1;
  208. }
  209.  
  210. return lista4;
  211. }
  212.  
  213. void citire_fisier_F1_F2 ()
  214. {
  215. FILE *f, *f1;
  216. char nume[20], UM[3], magazie[2];
  217. int cod, categorie;
  218. float cant, pret_UM;
  219. f=fopen("F1.txt", "rt");
  220. f1=fopen("F2.txt", "rt");
  221. if (f==NULL)
  222. {
  223. printf ("\nFisierul F1.txt nu a fost gasit!\n");
  224. exit (1);
  225. }
  226. else
  227. {
  228. while (!feof(f))
  229. {
  230. fscanf(f, "%19s", nume);
  231. fscanf(f, "%d", &cod);
  232. fscanf(f, "%d", &categorie);
  233. fscanf(f, "%2s", UM);
  234. fscanf(f, "%f", &cant);
  235. fscanf(f, "%f", &pret_UM);
  236. fscanf(f, "%1s", magazie);
  237. prim4=adauga4(prim4,nume,cod,categorie,UM,cant,pret_UM,magazie);
  238. }
  239. }
  240. if (f1==NULL)
  241. {
  242. printf ("\nFisierul F2.txt nu a fost gasit!\n");
  243. exit (1);
  244. }
  245. else
  246. {
  247. while (!feof(f1))
  248. {
  249. fscanf(f1, "%19s", nume);
  250. fscanf(f1, "%d", &cod);
  251. fscanf(f1, "%d", &categorie);
  252. fscanf(f1, "%2s", UM);
  253. fscanf(f1, "%f", &cant);
  254. fscanf(f1, "%f", &pret_UM);
  255. fscanf(f1, "%1s", magazie);
  256. prim4=adauga4(prim4,nume,cod,categorie,UM,cant,pret_UM,magazie);
  257. }
  258. }
  259. }
  260.  
  261. void afisare_C (C *lista4)
  262. {
  263. C *i;
  264. printf ("\nMagazia M\n");
  265. for (i=lista4; i!=NULL; i=i->urm4)
  266. {
  267. printf ("%s ", i->nume);
  268. printf ("%d ", i->cod);
  269. printf ("%d ", i->categorie);
  270. printf ("%.2s ", i->UM);
  271. printf ("%.2f ", i->cant);
  272. printf ("%.2f ", i->pret_UM);
  273. printf ("%s ", i->magazie);
  274. printf ("\n");
  275. }
  276. }
  277.  
  278. void magazii(C *lista4)
  279. {
  280. C *i1;
  281. for (i1=lista4;i1!=NULL; i1=i1->urm4)
  282. {
  283. if (i1->categorie==1)
  284. {
  285. strcpy(i1->magazie, "A");
  286. prim1=adauga1(prim1,i1->nume,i1->cod,i1->categorie,i1->UM,i1->cant,i1->pret_UM,i1->magazie);
  287. }
  288. if (i1->categorie==2)
  289. {
  290. strcpy(i1->magazie, "B");
  291. prim2=adauga2(prim2,i1->nume,i1->cod,i1->categorie,i1->UM,i1->cant,i1->pret_UM,i1->magazie);
  292. }
  293. if (i1->categorie==3)
  294. {
  295. strcpy(i1->magazie, "M");
  296. prim3=adauga3(prim3,i1->nume,i1->cod,i1->categorie,i1->UM,i1->cant,i1->pret_UM,i1->magazie);
  297. }
  298. }
  299. }
  300.  
  301. void cautare_magazie (A *lista1, B *lista2, M *lista3)
  302. {
  303. A *i1;
  304. B *q1;
  305. M *p1;
  306. char magazie[2];
  307. printf ("\nIntroduceti magazia cautata (A, B sau M): \n");
  308. fflush(stdin);
  309. gets(magazie);
  310. printf ("\n");
  311.  
  312. for(i1=lista1;i1!=NULL;i1=i1->urm1)
  313. {
  314. if(strcmp(i1->magazie,magazie)==0)
  315. {
  316. printf ("%s ", i1->nume);
  317. printf ("%d ", i1->cod);
  318. printf ("%d ", i1->categorie);
  319. printf ("%.2s ", i1->UM);
  320. printf ("%.2f ", i1->cant);
  321. printf ("%.2f ", i1->pret_UM);
  322. printf ("%s ", i1->magazie);
  323. printf ("\n");
  324. }
  325. }
  326.  
  327. for(q1=lista2;q1!=NULL;q1=q1->urm2)
  328. {
  329. if(strcmp(q1->magazie2,magazie)==0)
  330. {
  331. printf ("%s ", q1->nume2);
  332. printf ("%d ", q1->cod2);
  333. printf ("%d ", q1->categorie2);
  334. printf ("%.2s ", q1->UM2);
  335. printf ("%.2f ", q1->cant2);
  336. printf ("%.2f ", q1->pret_UM2);
  337. printf ("%s ", q1->magazie2);
  338. printf ("\n");
  339. }
  340. }
  341.  
  342. for(p1=lista3;p1!=NULL;p1=p1->urm3)
  343. {
  344. if(strcmp(p1->magazie3,magazie)==0)
  345. {
  346. printf ("%s ", p1->nume3);
  347. printf ("%d ", p1->cod3);
  348. printf ("%d ", p1->categorie3);
  349. printf ("%.2s ", p1->UM3);
  350. printf ("%.2f ", p1->cant3);
  351. printf ("%.2f ", p1->pret_UM3);
  352. printf ("%s ", p1->magazie3);
  353. printf ("\n");
  354. }
  355. }
  356. }
  357.  
  358. void cauta_nume (A *lista1, B *lista2, M *lista3)
  359. {
  360. A *i1;
  361. B *q1;
  362. M *p1;
  363. char nume[20];
  364. printf ("\nIntroduceti numele materialului cautat: \n");
  365. fflush(stdin);
  366. gets(nume);
  367.  
  368. for(i1=lista1;i1!=NULL;i1=i1->urm1)
  369. {
  370. if(strcmp(i1->nume,nume)==0)
  371. {
  372. printf("\nMaterialul cautat se afla in magazia A\n");
  373. printf ("%s ", i1->nume);
  374. printf ("%d ", i1->cod);
  375. printf ("%d ", i1->categorie);
  376. printf ("%.2s ", i1->UM);
  377. printf ("%.2f ", i1->cant);
  378. printf ("%.2f ", i1->pret_UM);
  379. printf ("%s ", i1->magazie);
  380. printf ("\n");
  381. }
  382. }
  383.  
  384. for(q1=lista2;q1!=NULL;q1=q1->urm2)
  385. {
  386. if(strcmp(q1->nume2,nume)==0)
  387. {
  388. printf("\nMaterialul cautat se afla in magazia B\n");
  389. printf ("%s ", q1->nume2);
  390. printf ("%d ", q1->cod2);
  391. printf ("%d ", q1->categorie2);
  392. printf ("%.2s ", q1->UM2);
  393. printf ("%.2f ", q1->cant2);
  394. printf ("%.2f ", q1->pret_UM2);
  395. printf ("%s ", q1->magazie2);
  396. printf ("\n");
  397. }
  398. }
  399.  
  400. for(p1=lista3;p1!=NULL;p1=p1->urm3)
  401. {
  402. if(strcmp(p1->nume3,nume)==0)
  403. {
  404. printf("\nMaterialul cautat se afla in magazia M\n");
  405. printf ("%s ", p1->nume3);
  406. printf ("%d ", p1->cod3);
  407. printf ("%d ", p1->categorie3);
  408. printf ("%.2s ", p1->UM3);
  409. printf ("%.2f ", p1->cant3);
  410. printf ("%.2f ", p1->pret_UM3);
  411. printf ("%s ", p1->magazie3);
  412. printf ("\n");
  413. }
  414. }
  415. }
  416.  
  417. void valoarea_totala (A *lista1, B *lista2, M *lista3)
  418. {
  419. A *i1;
  420. B *q1;
  421. M *p1;
  422. float sum1=0, sum2=0, sum3=0, sum_tot;
  423.  
  424. for(i1=lista1;i1!=NULL;i1=i1->urm1)
  425. {
  426. sum1=sum1+(i1->pret_UM*i1->cant);
  427. }
  428.  
  429. for(q1=lista2;q1!=NULL;q1=q1->urm2)
  430. {
  431. sum2=sum2+(q1->pret_UM2*q1->cant2);
  432. }
  433.  
  434. for(p1=lista3;p1!=NULL;p1=p1->urm3)
  435. {
  436. sum3=sum3+(p1->pret_UM3*p1->cant3);
  437. }
  438.  
  439. printf ("\nValoarea totala a materialelor aflate in magaziile intreprinderii:\n");
  440. printf ("Magazia A: %.2f\n",sum1);
  441. printf ("Magazia B: %.2f\n",sum2);
  442. printf ("Magazia M: %.2f\n",sum3);
  443. sum_tot=sum1+sum2+sum3;
  444. printf ("\n Total: %.2f\n",sum_tot);
  445. }
  446.  
  447. A *sterge_nume_A (A *lista1, char nume_cautat[20])
  448. {
  449. A *i1, *i2;
  450.  
  451. for(i1=i2=lista1;i1!=NULL && strcmp(i1->nume,nume_cautat)<0; i2=i1, i1=i1->urm1);
  452. if(i1!=NULL && strcmp(i1->nume,nume_cautat)==0)
  453. {
  454. if (i1==i2)
  455. {
  456. lista1=lista1->urm1;
  457. }
  458. else
  459. {
  460. i2->urm1=i1->urm1;
  461. }
  462. free(i1);
  463. }
  464. return lista1;
  465. }
  466.  
  467. B *sterge_nume_B (B *lista2, char nume_cautat[20])
  468. {
  469. B *q1, *q2;
  470.  
  471. for(q1=q2=lista2;q1!=NULL && strcmp(q1->nume2,nume_cautat)<0; q2=q1, q1=q1->urm2);
  472. if(q1!=NULL && strcmp(q1->nume2,nume_cautat)==0)
  473. {
  474. if (q1==q2)
  475. {
  476. lista2=lista2->urm2;
  477. }
  478. else
  479. {
  480. q2->urm2=q1->urm2;
  481. }
  482. free(q1);
  483. }
  484. return lista2;
  485. }
  486.  
  487. M *sterge_nume_M (M *lista3, char nume_cautat[20])
  488. {
  489. M *p1, *p2;
  490.  
  491. for(p1=p2=lista3;p1!=NULL && strcmp(p1->nume3,nume_cautat)<0; p2=p1, p1=p1->urm3);
  492. if(p1!=NULL && strcmp(p1->nume3,nume_cautat)==0)
  493. {
  494. if (p1==p2)
  495. {
  496. lista3=lista3->urm3;
  497. }
  498. else
  499. {
  500. p2->urm3=p1->urm3;
  501. }
  502. free(p1);
  503. }
  504. return lista3;
  505. }
  506.  
  507. int muta_material (A *lista1, B *lista2, M *lista3, char nume_mat_mut[20])
  508. {
  509. A *i1;
  510. B *q1;
  511. M *p1;
  512. int sw;
  513. char magazie[2];
  514. printf ("\nUnde doriti sa il mutati(Magazia A, B sau M): \n");
  515. fflush(stdin);
  516. gets(magazie);
  517.  
  518. for(i1=lista1;i1!=NULL;i1=i1->urm1)
  519. {
  520. if(strcmp(i1->nume,nume_mat_mut)==0)
  521. {
  522. if(strcmp(magazie,"B")==0)
  523. {
  524. prim2=adauga2(prim2,i1->nume,i1->cod,i1->categorie,i1->UM,i1->cant,i1->pret_UM,i1->magazie);
  525. return sw=1;
  526. }
  527. if (strcmp(magazie,"M")==0)
  528. {
  529. prim3=adauga3(prim3,i1->nume,i1->cod,i1->categorie,i1->UM,i1->cant,i1->pret_UM,i1->magazie);
  530. return sw=1;
  531. }
  532. }
  533. }
  534.  
  535. for(q1=lista2;q1!=NULL;q1=q1->urm2)
  536. {
  537. if(strcmp(q1->nume2,nume_mat_mut)==0)
  538. {
  539. if(strcmp(magazie,"A")==0)
  540. {
  541. prim1=adauga1(prim1,q1->nume2,q1->cod2,q1->categorie2,q1->UM2,q1->cant2,q1->pret_UM2,q1->magazie2);
  542. return sw=2;
  543. }
  544. if (strcmp(magazie,"M")==0)
  545. {
  546. prim3=adauga3(prim3,q1->nume2,q1->cod2,q1->categorie2,q1->UM2,q1->cant2,q1->pret_UM2,q1->magazie2);
  547. return sw=2;
  548. }
  549. }
  550. }
  551.  
  552. for(p1=lista3;p1!=NULL;p1=p1->urm3)
  553. {
  554. if(strcmp(p1->nume3,nume_mat_mut)==0)
  555. {
  556. if(strcmp(magazie,"A")==0)
  557. {
  558. prim1=adauga1(prim1,p1->nume3,p1->cod3,p1->categorie3,p1->UM3,p1->cant3,p1->pret_UM3,p1->magazie3);
  559. return sw=3;
  560. }
  561. if (strcmp(magazie,"B")==0)
  562. {
  563. prim2=adauga2(prim2,p1->nume3,p1->cod3,p1->categorie3,p1->UM3,p1->cant3,p1->pret_UM3,p1->magazie3);
  564. return sw=3;
  565. }
  566. }
  567. }
  568. }
  569.  
  570. void introduce ()
  571. {
  572. char nume[20], UM[3], magazie[2];
  573. int cod, categorie;
  574. float cant, pret_UM;
  575. printf ("\nIntroduceti un material: \n");
  576. printf ("Nume: \n");
  577. scanf("%19s", nume);
  578. printf ("Cod (4 cifre): \n");
  579. scanf("%d", &cod);
  580. printf ("Categorie (1, 2 sau 3): \n");
  581. scanf("%d", &categorie);
  582. printf ("UM (2 caractere): \n");
  583. scanf("%2s", UM);
  584. printf ("Cantitate: \n");
  585. scanf("%f", &cant);
  586. printf ("Pret: \n");
  587. scanf("%f", &pret_UM);
  588. printf ("In care magazie doriti sa introduceti materiaulul (A, B sau M): \n");
  589. scanf("%1s", magazie);
  590. if (strcmp(magazie,"A")==0)
  591. {
  592. prim1=adauga1(prim1,nume,cod,categorie,UM,cant,pret_UM,magazie);
  593. }
  594. if (strcmp(magazie, "B")==0)
  595. {
  596. prim2=adauga2(prim2,nume,cod,categorie,UM,cant,pret_UM,magazie);
  597. }
  598. if (strcmp(magazie, "M")==0)
  599. {
  600. prim3=adauga3(prim3,nume,cod,categorie,UM,cant,pret_UM,magazie);
  601. }
  602. }
  603.  
  604. A *sterge_cant_A (A *lista1, float cantitate)
  605. {
  606. A *i1, *i2;
  607.  
  608. for(i1=i2=lista1;i1!=NULL && (i1->cant > cantitate); i2=i1, i1=i1->urm1);
  609. if(i1!=NULL && (i1->cant<cantitate))
  610. {
  611. if (i1==i2)
  612. {
  613. lista1=lista1->urm1;
  614. }
  615. else
  616. {
  617. i2->urm1=i1->urm1;
  618. }
  619. free(i1);
  620. }
  621. return lista1;
  622. }
  623.  
  624. void salvare_magazi_fisiere (A *lista1, B *lista2, M *lista3)
  625. {
  626. FILE *i, *q, *p;
  627. i=fopen("magazia_A.txt", "w");
  628. q=fopen("magazia_B.txt", "w");
  629. p=fopen("magazia_M.txt", "w");
  630. if (i==NULL)
  631. {
  632. printf ("\nEroare magazia_A.txt.\n");
  633. exit(1);
  634. }
  635. else
  636. {
  637. A *i1;
  638. for(i1=lista1;i1!=NULL;i1=i1->urm1)
  639. {
  640. fprintf (i, "%s ", i1->nume);
  641. fprintf (i, "%d ", i1->cod);
  642. fprintf (i, "%d ", i1->categorie);
  643. fprintf (i, "%.2s ", i1->UM);
  644. fprintf (i, "%.2f ", i1->cant);
  645. fprintf (i, "%.2f ", i1->pret_UM);
  646. fprintf (i, "%s ", i1->magazie);
  647. fprintf (i, "\n");
  648. }
  649. fclose(i);
  650. }
  651.  
  652. if (q==NULL)
  653. {
  654. printf ("\nEroare magazia_A.txt.\n");
  655. exit(1);
  656. }
  657. else
  658. {
  659. B *q1;
  660. for(q1=lista2;q1!=NULL;q1=q1->urm2)
  661. {
  662. fprintf (q, "%s ", q1->nume2);
  663. fprintf (q, "%d ", q1->cod2);
  664. fprintf (q, "%d ", q1->categorie2);
  665. fprintf (q, "%.2s ", q1->UM2);
  666. fprintf (q, "%.2f ", q1->cant2);
  667. fprintf (q, "%.2f ", q1->pret_UM2);
  668. fprintf (q, "%s ", q1->magazie2);
  669. fprintf (q, "\n");
  670. }
  671. fclose(q);
  672. }
  673.  
  674. if (p==NULL)
  675. {
  676. printf ("\nEroare magazia_A.txt.\n");
  677. exit(1);
  678. }
  679. else
  680. {
  681. M *p1;
  682. for(p1=lista3;p1!=NULL;p1=p1->urm3)
  683. {
  684. fprintf (p, "%s ", p1->nume3);
  685. fprintf (p, "%d ", p1->cod3);
  686. fprintf (p, "%d ", p1->categorie3);
  687. fprintf (p, "%.2s ", p1->UM3);
  688. fprintf (p, "%.2f ", p1->cant3);
  689. fprintf (p, "%.2f ", p1->pret_UM3);
  690. fprintf (p, "%s ", p1->magazie3);
  691. fprintf (p, "\n");
  692. }
  693. fclose(i);
  694. }
  695.  
  696. }
  697.  
  698.  
  699. int main ()
  700. {
  701. int opt, s=0, mut;
  702. float cantitate;
  703. char nume_cautat[20], nume_mat_mut[20];
  704. do
  705. {
  706. printf ("\n1. Citeste datele din cele doua fisiere, creaza si initializeaza o structura\n de date de tip de lista simplu inlantuita pentru fiecare magazie\n");
  707. printf ("2. Afiseaza toate materialele dintr-o magazie selectata de la tastatura,\n ordonate dupa nume\n");
  708. printf ("3. Afiseaza toate materialele cu un anumit nume, citit de la tastatura,\n specificind si magazia in care se afla\n");
  709. printf ("4. Afiseaza valoarea totala a materialelor aflate in magaziile intreprinderii\n");
  710. printf ("5. Sterge un material din evident\n");
  711. printf ("6. Muta un material dintr-o magazie in alta\n");
  712. printf ("7. Introduce un material de la tastatura\n");
  713. printf ("8. Sterge toate materialele din magazia A, care se gasesc intr-o cantitate\n mai mica decat o limita citita de la tastatura\n");
  714. printf ("9. Salvare in fisiere diferite, materialele care se gasesc acum in fiecare magazie\n");
  715. printf ("10. Parasire program\n\n");
  716. printf ("Introduceti optiunea dorita:\n");
  717. scanf ("%d", &opt);
  718. printf ("\n\n");
  719. switch (opt)
  720. {
  721. case 1:
  722. citire_fisier_F1_F2();
  723. //afisare_C(prim4);
  724. //printf("\n\n\n");
  725. magazii(prim4);
  726. afisare_A(prim1);
  727. afisare_B(prim2);
  728. afisare_M(prim3);
  729. break;
  730. case 2:
  731. cautare_magazie(prim1,prim2,prim3);
  732. break;
  733. case 3:
  734. cauta_nume(prim1,prim2,prim3);
  735. break;
  736. case 4:
  737. valoarea_totala(prim1,prim2,prim3);
  738. break;
  739. case 5:
  740. printf ("\nIntroduceti numele materialului care doriti sa il stergeti: \n");
  741. fflush(stdin);
  742. gets(nume_cautat);
  743. prim1=sterge_nume_A(prim1,nume_cautat);
  744. prim2=sterge_nume_B(prim2,nume_cautat);
  745. prim3=sterge_nume_M(prim3,nume_cautat);
  746. afisare_A(prim1);
  747. afisare_B(prim2);
  748. afisare_M(prim3);
  749. break;
  750. case 6:
  751. printf ("\nIntroduceti numele materialului care doriti sa il mutati: \n");
  752. fflush(stdin);
  753. gets(nume_mat_mut);
  754. mut=muta_material(prim1,prim2,prim3,nume_mat_mut);
  755. if (mut==1)
  756. {
  757. prim1=sterge_nume_A(prim1,nume_mat_mut);
  758. }
  759. if (mut==2)
  760. {
  761. prim2=sterge_nume_B(prim2,nume_mat_mut);
  762. }
  763. if (mut==3)
  764. {
  765. prim3=sterge_nume_M(prim3,nume_mat_mut);
  766. }
  767. afisare_A(prim1);
  768. afisare_B(prim2);
  769. afisare_M(prim3);
  770. break;
  771. case 7:
  772. introduce();
  773. afisare_A(prim1);
  774. afisare_B(prim2);
  775. afisare_M(prim3);
  776. break;
  777. case 8:
  778. printf ("\nIntroduceti cantitate: \n");
  779. scanf("%f", &cantitate);
  780. prim1=sterge_cant_A(prim1,cantitate);
  781. afisare_A(prim1);
  782. break;
  783. case 9:
  784. salvare_magazi_fisiere(prim1,prim2,prim3);
  785. break;
  786. case 10:
  787. exit (0);
  788. break;
  789. default: printf ("\nAti introdus optiunea gresita! Mai incercati o data..\n");
  790. break;
  791. }
  792. }
  793. while (opt!=10);
  794. getch ();
  795. return 0;
  796. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement