Advertisement
Guest User

Liste

a guest
Jan 17th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.57 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. typedef struct masini
  5. {
  6. char *producator,*model,*tip_incarcare,*programe,*tip_afisaj;
  7. int pret;
  8. struct masini *urm;
  9. }nod;
  10. nod *adaugare(nod *prim,char *producator,char *model,int pret,char *tip_incarcare,char *programe,char *tip_afisaj)
  11. {
  12. nod *q,*p;
  13. p=(nod*)malloc(sizeof(nod));
  14. p->producator=(char*)malloc(strlen(producator)+1);
  15. strcpy(p->producator,producator);
  16. p->model=(char*)malloc(strlen(model)+1);
  17. strcpy(p->model,model);
  18. p->pret=pret;
  19. p->tip_incarcare=(char*)malloc(strlen(tip_incarcare)+1);
  20. strcpy(p->tip_incarcare,tip_incarcare);
  21. if(strcmp(tip_incarcare,"frontala")==0)
  22. {
  23. p->programe=(char*)malloc(strlen(programe)+1);
  24. strcpy(p->programe,programe);
  25. }
  26. else
  27. if(strcmp(tip_incarcare,"verticala")==0)
  28. {
  29. p->tip_afisaj=(char*)malloc(strlen(tip_afisaj)+1);
  30. strcpy(p->tip_afisaj,tip_afisaj);
  31. }
  32. p->urm=NULL;
  33. if(p==NULL || p->producator==NULL || p->model==NULL || p->tip_incarcare==NULL)
  34. {
  35. printf("Eroare");
  36. exit(0);
  37. }
  38. if(prim==NULL)
  39. return p;
  40. else
  41. if(strcmp(prim->producator,p->producator)>0)
  42. {
  43. p->urm=prim;
  44. return p;
  45. }
  46. else
  47. {
  48. q=prim;
  49. while(q->urm!=NULL && strcmp(q->urm->producator,p->producator)<0)
  50. q=q->urm;
  51. p->urm=q->urm;
  52. q->urm=p;
  53. return prim;
  54. }
  55. }
  56. void afisare(nod *prim)
  57. {
  58. nod *q;
  59. q=prim;
  60. while(q!=NULL)
  61. {
  62. printf("\n%s \t %s \t %d \t %s ",q->producator,q->model,q->pret,q->tip_incarcare);
  63. if(strcmp(q->tip_incarcare,"frontala")==0)
  64. {
  65. printf("%s",q->programe);
  66. }
  67. else
  68. if(strcmp(q->tip_incarcare,"verticala")==0)
  69. printf("%s",q->tip_afisaj);
  70. q=q->urm;
  71. }
  72. }
  73. nod *cautare(nod *prim,char producator2[20])
  74. {
  75. nod *q;
  76. q=prim;
  77. while(q!=NULL && strcmp(q->producator,producator2)!=0)
  78. q=q->urm;
  79. return q;
  80. }
  81. nod *stergere(nod *prim, char model2[20])
  82. {
  83. nod *q,*p;
  84. if(prim!=NULL)
  85. {
  86. if(strcmp(prim->model,model2)==0)
  87. {
  88. q=prim;
  89. prim=prim->urm;
  90. free(q);
  91. return prim;
  92. }
  93. q=prim;
  94. while(q->urm!=NULL && strcmp(q->urm->model,model2)!=0)
  95. q=q->urm;
  96. if(q->urm!=NULL && strcmp(q->urm->model,model2)==0)
  97. {
  98. p=q->urm;
  99. q->urm=q->urm->urm;
  100. free(p);
  101. }
  102. return prim;
  103. }
  104. else
  105. return prim;
  106. }
  107. nod *salvare(nod *prim)
  108. {
  109. FILE *f;
  110. f=fopen("date.in","wt");
  111. nod *q;
  112. q=prim;
  113. while(q!=NULL)
  114. {
  115. fprintf(f,"\n%s \t %d \t %d \t %s ",q->producator,q->pret,q->model,q->tip_incarcare);
  116. if(strcmp(q->tip_incarcare,"frontala")==0)
  117. fprintf(f,"%s",q->programe);
  118. else
  119. if(strcmp(q->tip_incarcare,"verticala")==0)
  120. fprintf(f,"%d",q->tip_afisaj);
  121. q=q->urm;
  122. }
  123. fclose(f);
  124.  
  125. }
  126. int main()
  127. {
  128. nod *prim,*p;
  129. int optiune,pret;
  130. char producator[20],model[20],model2[20],producator2[20],tip_incarcare[20],programe[20],tip_afisaj[20];
  131. prim=NULL;
  132. do
  133. {
  134. printf("\n1. Adaugarea unui nou produs\n");
  135. printf("2. Afisarea tuturor masinilor de spalat\n");
  136. printf("3. Cautarea unei masini de spalat dupa model\n");
  137. printf("4. Stergerea unei masini de spalat dupa producator\n");
  138. printf("5. Introducere in fisier\n");
  139. printf("0. Iesire\n");
  140. printf("Introduceti o optiune: ");
  141. scanf("%d",&optiune);
  142. switch(optiune)
  143. {
  144. case 1:
  145. printf("Introduceti producatorul: ");
  146. fflush(stdin);
  147. gets(producator);
  148. printf("Introduceti model: ");
  149. fflush(stdin);
  150. gets(model);
  151. printf("Introduceti pret: ");
  152. scanf("%d",&pret);
  153. printf("Introduceti tipul de incarcare: ");
  154. fflush(stdin);
  155. gets(tip_incarcare);
  156. if(strcmp(tip_incarcare,"frontala")==0)
  157. {
  158. printf("Introduceti programul: ");
  159. fflush(stdin);
  160. gets(programe);
  161. }
  162. else
  163. if(strcmp(tip_incarcare,"verticala")==0)
  164. {
  165. printf("Introduceti tipul afiasaj");
  166. fflush(stdin);
  167. gets(tip_afisaj);
  168. }
  169. prim=adaugare(prim,producator,model,pret,tip_incarcare,programe,tip_afisaj);
  170. break;
  171. case 2:
  172. afisare(prim);
  173. break;
  174. case 3:
  175. printf("Introduceti producatorul pe care il cautati: ");
  176. fflush(stdin);
  177. gets(producator2);
  178. p=cautare(prim,producator2);
  179. if(p==NULL)
  180. printf("Eroare");
  181. else
  182. printf("\n %s \t %s \t %d \t %s",p->producator,p->model,p->pret,p->tip_incarcare);
  183. break;
  184. case 4:
  185. printf("Introduceti modelul pe care il stergeti: ");
  186. fflush(stdin);
  187. gets(model2);
  188. prim=stergere(prim,model2);
  189. afisare(prim);
  190. break;
  191. case 5:
  192. salvare(prim);
  193. break;
  194. case 0:
  195. exit(0);
  196. default:
  197. printf("Optiune gresita");
  198. break;
  199. }
  200. }while(optiune);
  201. getch();
  202. return 0;
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement