Testo dell'esercizio
scrivere un programma che definisca ed inizializzi le variabili necessari per memorizzare:
1)un elenco di interi : codici, ciascuno dei quali rappresenta il codice di un prodotto.
2)un elenco di stringhe : descr, ogni stringa rappresenta la descrizione di un prodotto.
3)Un elenco di numeri reali : prezzi ciascuno dei quali rappresenta il prezzo di un prodotto
il programma deve poi permettere di eseguire, attraverso un menu, le seguenti operazioni:
1)data in input il codice di un prodotto, se è presente nell'elenco dei codici visualizzare la sua descrizione ed il suo prezzo, altrimenti visualizzare il messaggio “codice non presente”(funzione ricerca).
2)Dato in input il codice di un prodotto, se esso è presente nell'elenco dei codici modificare il suo prezzo aumentandolo del 10%(funzione ricerca).
3)Dato in input un prezzo visualizzare il codice e la descrizione di tutti i prodotti aventi quel prezzo.
4)Definire una funzione trasforma che ricevendo una stringa sostituisce tutti gli spazi con dei caratteri _.
5)dati input un prezzo_min e un prezzo_max salvare in due nuovi elenchi il codice ed i prezzi di tutti i prodotti che hanno il prezzo compreso tra prezzo_min e prezzo_max, ordinare i due elenchi per ordine decrescete di prezzo e visualizzarli.
mostra soluzione
023 | int acquisizione( void ); |
024 | int ricerca( int ele, int l); |
025 | void presenza( int codice, int l); |
026 | void mod( int codice, int l); |
027 | void prezzo_u( float prezzo, int l); |
028 | void trasforma( int pos); |
030 | void min_max( float min, float max, int l); |
032 | int l,scelta,codice,i; |
033 | float prezzo,prezzo_min,prezzo_max; |
037 | printf ( "0) uscita\n1) ricerca un elemento in base al codice e ne visualizza la sua descrizione e prezzo\n2) incrementa un prezzo del 10\n3) visualizza la descrizione ed il codice di tutti i prodotti aventi uno stesso prezzo fornito in input\n4) trasforma tutti gli spazi in _\n5) dato un minimo ed un massimo vsiualizzi tutti i prezzi ed i codici ordinati per ordine descrescente\nscelta : " ); |
039 | } while (scelta<0 || scelta>5); |
042 | printf ( "inserire il codice dell'elemento da cercare : " ); |
047 | printf ( "inserire il codice dell'elemento da cercare : " ); |
052 | printf ( "inserire il prezzo degli elementi da cercare : " ); |
061 | printf ( "inserire il prezzo minimo : " ); |
062 | scanf ( "%f" ,&prezzo_min); |
063 | printf ( "inserire il prezzo massimo : " ); |
064 | scanf ( "%f" ,&prezzo_max); |
065 | min_max(prezzo_min,prezzo_max,l); |
068 | } while (scelta>=1 && scelta<=5); |
071 | int acquisizione( void ){ |
074 | printf ( "inserire il numero di prodotti : " ); |
076 | } while (l<1 || l>=MAX); |
079 | printf ( "inserire il codice del prodotto numero %d : " ,i+1); |
080 | scanf ( "%d" ,&codici[i]); |
082 | printf ( "inserire la descrizione del prodotto numero %d : " ,i+1); |
084 | printf ( "inserire il prezzo del prodotto numero %d : " ,i+1); |
085 | scanf ( "%f" ,&prezzi[i]); |
089 | int ricerca( int ele, int l){ |
091 | for (i=0;codici[i]!=ele && i<l;i++); |
097 | void presenza( int codice, int l){ |
099 | pos = ricerca(codice,l); |
101 | printf ( "%s - %f\n" ,descr[pos],prezzi[pos]); |
103 | printf ( "codice non presente\n" ); |
106 | void mod( int codice, int l){ |
108 | pos = ricerca(codice,l); |
110 | prezzi[pos] = prezzi[pos]+prezzi[pos]/100*10; |
113 | void prezzo_u( float prezzo, int l){ |
116 | if (prezzi[i]==prezzo) |
117 | printf ( "%d - %s\n" ,codici[i],descr[i]); |
120 | void trasforma( int pos){ |
122 | l = strlen (descr[pos]); |
124 | if (descr[pos][i] == ' ' ) |
134 | if (prezzi2[i] < prezzi2[i+1]){ |
136 | codici2[i+1] = codici2[i]; |
139 | prezzi2[i+1] = prezzi2[i]; |
147 | void min_max( float prezzo_min, float prezzo_max, int l){ |
150 | if (prezzi[i]>=prezzo_min && prezzi[i]<=prezzo_max){ |
151 | codici2[j] = codici[i]; |
152 | prezzi2[j++] = prezzi[i]; |
156 | printf ( "%d - %f\n" ,codici2[i],prezzi2[i]); |
torna