libreria.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #pragma once
  2. #define MACCHINE 3
  3. #define MODELLOLEN 15
  4. #define RANDMIN 1000
  5. #define RANDMAX 5500
  6. #define MULT 3.14
  7. #define TERM 1
  8. typedef struct
  9. {
  10. char modello[MODELLOLEN + TERM];
  11. int cilindrata;
  12. int prezzo;
  13. bool venduta;
  14. }VEICOLO;
  15. void menu();
  16. void inserisci(VEICOLO *macchina, int *index);
  17. void visualizza(VEICOLO macchina);
  18. void ordina(VEICOLO concessionaria[], int index);
  19. void visualizza_tutto(VEICOLO concessionaria[], int index);
  20. void sommaprezzo(VEICOLO concessionaria[], int index);
  21. void vendi(VEICOLO concessionaria[], int index);
  22. void cilindrata_sopra(VEICOLO concessionaria[], int index);
  23. void cilindrata_sotto(VEICOLO concessionaria[], int index);
  24. void inserisci_tutto(VEICOLO concessionaria[], int *index);
  25. void menu()
  26. {
  27. int index = 0;
  28. VEICOLO concessionaria[MACCHINE];
  29. int scelta;
  30. do
  31. {
  32. system("cls");
  33. printf("0) Esci\n");
  34. printf("1) Inserimento nuovo veicolo\n");
  35. printf("2) Visualizzazione veicoli\n");
  36. printf("3) Ordinare per modello i veicoli presenti\n");
  37. printf("4) Valore attuale del mio concessionario(somma dei prezzi)\n");
  38. printf("5) Eliminare(vendere) un veicolo se presente\n");
  39. printf("6) Visualizzare tutti i veicoli sotto / sopra una determinata cilindrata\n");
  40. scanf_s("%d", &scelta, sizeof(int));
  41. switch (scelta)
  42. {
  43. case 1:
  44. inserisci_tutto(concessionaria, &index);
  45. break;
  46. case 2:
  47. visualizza_tutto(concessionaria, index);
  48. break;
  49. case 3:
  50. ordina(concessionaria, index);
  51. break;
  52. case 4:
  53. sommaprezzo(concessionaria, index);
  54. break;
  55. case 5:
  56. vendi(concessionaria, index);
  57. break;
  58. case 6:
  59. cilindrata_sopra(concessionaria, index);
  60. break;
  61. }
  62. } while (scelta != 0);
  63. }
  64. void inserisci(VEICOLO *macchina, int *index)
  65. {
  66. if (*index<MACCHINE)
  67. {
  68. printf("Inserisci modello elemento %d\n", *index + 1);
  69. scanf_s("%s", macchina->modello, MODELLOLEN + TERM);
  70. macchina->cilindrata = RANDMIN + rand() % RANDMAX;
  71. macchina->prezzo = (int) ((macchina->cilindrata)*MULT);
  72. macchina->venduta = false;
  73. *index += 1;
  74. }
  75. }
  76. void visualizza(VEICOLO macchina)
  77. {
  78. if(macchina.venduta!=true)
  79. {
  80. printf("Modello: %s\n", macchina.modello);
  81. printf("Cilindrata: %d\n", macchina.cilindrata);
  82. printf("Prezzo: %d\n", macchina.prezzo);
  83. printf("\n");
  84. }
  85. }
  86. void ordina(VEICOLO concessionaria[], int index)
  87. {
  88. VEICOLO temp;
  89. for (int j = 0; j<index; j++)
  90. {
  91. for (int i = 0; i<index; i++)
  92. {
  93. if (strcmp(concessionaria[j].modello, concessionaria[i].modello)<0)
  94. {
  95. temp = concessionaria[j];
  96. concessionaria[j] = concessionaria[i];
  97. concessionaria[i] = temp;
  98. }
  99. }
  100. }
  101. }
  102. void visualizza_tutto(VEICOLO concessionaria[], int index)
  103. {
  104. for (int i = 0; i<index; i++)
  105. {
  106. visualizza(concessionaria[i]);
  107. }
  108. system("pause");
  109. }
  110. void sommaprezzo(VEICOLO concessionaria[], int index)
  111. {
  112. int somma = 0;
  113. for (int j = 0; j < index; j++)
  114. {
  115. somma = somma + concessionaria[j].prezzo;
  116. }
  117. printf("Il valore della mia concessionaria è %d Euro\n", somma);
  118. system("pause");
  119. }
  120. void vendi(VEICOLO concessionaria[], int index)
  121. {
  122. int pos;
  123. do
  124. {
  125. printf("Inserisci la posizione dell'automobile da vendere\n");
  126. scanf_s("%d", &pos, sizeof(int));
  127. } while (pos > index);
  128. concessionaria[pos].prezzo = 0;
  129. concessionaria[pos].venduta = true;
  130. }
  131. void cilindrata_sopra(VEICOLO concessionaria[], int index)
  132. {
  133. int ncl;
  134. printf("Inserisci cilindrata:\n");
  135. scanf_s("%d", &ncl, sizeof(int));
  136. for (int j = 0; j < index; j++)
  137. {
  138. if (concessionaria[j].cilindrata > ncl)
  139. {
  140. visualizza(concessionaria[j]);
  141. }
  142. }
  143. system("pause");
  144. }
  145. void cilindrata_sotto(VEICOLO concessionaria[], int index)
  146. {
  147. int ncl;
  148. printf("Inserisci cilindrata:\n");
  149. scanf_s("%d", &ncl, sizeof(int));
  150. if (ncl >= 0)
  151. {
  152. for (int j = 0; j < index; j++)
  153. {
  154. if (concessionaria[j].cilindrata < ncl)
  155. {
  156. visualizza(concessionaria[j]);
  157. }
  158. }
  159. }
  160. system("pause");
  161. }
  162. void inserisci_tutto(VEICOLO concessionaria[], int *index)
  163. {
  164. for (int j = 0; j<MACCHINE; j++)
  165. {
  166. inserisci(&concessionaria[j], index);
  167. }
  168. }