Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct nodo {
  6. char codice[6];
  7. struct nodo * next;
  8. }*front, *rear, *temp, *front1;
  9.  
  10. typedef struct elemento {
  11. char codice_cliente[6];
  12. char codice_articolo[11];
  13. int pezzi_venduti;
  14. int costo;
  15. }elemento;
  16.  
  17. typedef struct lista {
  18. elemento info;
  19. struct lista * next;
  20. }lista;
  21.  
  22. int menu()
  23. {
  24. int scelta;
  25. puts("1.Stampa la lista degli acquisti");
  26. puts("2.Inserimento di un nuovo cliente in coda");
  27. puts("3.Estrazione elemento dalla coda ed inserimento in lista acquisti(dati forniti da tastiera)");
  28. puts("4.Calcolo totale degli acquisti");
  29. puts("5.Calcolo dell'acquisto di importo maggiore");
  30. puts("6.Salva la lista acquisti in un file di testo");
  31. printf("Selezionare un'alternativa: ");
  32. scanf("%d", &scelta);
  33. printf("\n");
  34. return scelta;
  35. }//fine menรน
  36.  
  37. lista * lista_vuota() {
  38. return NULL;
  39. }
  40.  
  41. void stampa_lista(lista*l)
  42. {
  43. lista*temp = l;
  44. if (temp == NULL)
  45. printf("\nLista vuota\n\n");
  46. else
  47. {
  48. while (temp != NULL)
  49. {
  50. printf("%s", temp->info.codice_cliente);
  51. printf("%s", temp->info.codice_articolo);
  52. printf("%d", temp->info.costo);
  53. printf("%d", temp->info.pezzi_venduti);
  54. if (temp->next != NULL)
  55. {
  56. temp = temp->next;
  57. }//fine if
  58. }//fine while
  59. }//fine else
  60. }//fine stampa_lista
  61.  
  62. /*Inserimento di un nuovo cliente in coda*/
  63. void inserimento_coda(char a[6])
  64. {
  65. if (rear == NULL)
  66. {
  67. rear = (struct nodo*)malloc(1 * sizeof(struct nodo));
  68. rear->next = NULL;
  69. strcpy(rear->codice, a);
  70. front = rear;
  71. }//end of if
  72. else
  73. {
  74. temp = (struct nodo*)malloc(1 * sizeof(struct nodo));
  75. rear->next = temp;
  76. strcpy(temp->codice, a);
  77. temp->next = NULL;
  78.  
  79. rear = temp;
  80. }//end of if
  81. }//end of inserimento_coda
  82.  
  83. void trasferimento(lista * l)
  84. {
  85. lista * temp = l;
  86.  
  87. if (rear == NULL)
  88. printf("\nImpossibile effettuare il trasferimento, coda vuota\n\n");
  89. else
  90. if (temp == NULL)
  91. {
  92. temp = malloc(sizeof(lista));
  93. temp->next = NULL;
  94. strcpy(temp->info.codice_cliente, rear->codice);
  95. printf("Inserire codice articolo: \n");
  96. scanf("%s", temp->info.codice_articolo);
  97. printf("Quanti pezzi sono stati venduti?\n");
  98. scanf("%d", temp->info.pezzi_venduti);
  99. printf("Costo totale?\n");
  100. scanf("%d", temp->info.costo);
  101. }//fine if
  102. else
  103. {
  104. while (temp->next != NULL)
  105. {
  106. temp = temp->next;
  107. }//fine while
  108. temp = temp->next;
  109. temp = malloc(sizeof(lista));
  110. temp->next = NULL;
  111. strcpy(temp->info.codice_cliente, rear->codice);
  112. printf("Inserire codice articolo: \n");
  113. scanf("%s", temp->info.codice_articolo);
  114. printf("Quanti pezzi sono stati venduti?\n");
  115. scanf("%d", temp->info.pezzi_venduti);
  116. printf("Costo totale?");
  117. scanf("%d", temp->info.costo);
  118. }//fine else
  119. }//fine trasferimento
  120.  
  121. /*Calcolo totale acquisti*/
  122. int spesa(lista*l)
  123. {
  124. lista*temp = l;
  125. int tot = 0;
  126.  
  127. if (temp == NULL)
  128. {
  129. printf("\nNun spinnierru na lira\n\n");
  130. }//fine if
  131. else
  132. {
  133. tot = tot + temp->info.costo;
  134. while (temp->next != NULL)
  135. {
  136. temp = temp->next;
  137. tot = tot + temp->info.costo;
  138. }//fine while
  139. }//fine else
  140. return tot;
  141. }//fine spesa
  142.  
  143. /*Calcolo acquisto di importo maggiore*/
  144. int maggiore(lista * l)
  145. {
  146. int max = 0;
  147. lista * temp = l;
  148.  
  149. if (temp == NULL)
  150. printf("\nNun spinnierru na lira\n\n");
  151. else
  152. {
  153. max = temp->info.costo;
  154. while (temp->next != NULL)
  155. {
  156. temp = temp->next;
  157. if (temp->info.costo >= max)
  158. max = temp->info.costo;
  159. }//fine while
  160. }//fine else
  161. return max;
  162. }//fine maggiore
  163.  
  164. int main()
  165. {
  166. int scelta;
  167. lista * l = lista_vuota();
  168. char a[6];
  169. int totale_acquisti;
  170. int max;
  171.  
  172. while (1)
  173. {
  174. scelta = menu();
  175. switch (scelta)
  176. {
  177. case 1:
  178. stampa_lista(l);
  179. break;
  180. case 2:
  181. printf("Digitare il nome: \n");
  182. scanf("%s", &a);
  183. inserimento_coda(a);
  184. break;
  185. case 3:
  186. trasferimento(l);
  187. break;
  188. case 4:
  189. totale_acquisti = spesa(l);
  190. break;
  191. case 5:
  192. max = maggiore(l);
  193. }//fine switch
  194. }//fine while
  195. }//fine main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement