Negozio di elettrodomestici
PROBLEMA
in un negozio di elettrodomestici, sono presenti due cataloghi. Uno dei prodotti e l'altro dei prezzi, alla richiesta del cliente di un determinanto prodotto/articolo, gli viene indicato il relativo prezzo. La richiesta termina quando non ci sono più domande del cliente.
CODICE SORGENTE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define NUMERO_ARTICOLIO 15
#define IVA_ITALIA 22
int main(int argc, char *argv[]){
//sezione dichiarativa
srand(time(NULL));
char nome_scelto[256];
char ripetere;
char nomi[NUMERO_ARTICOLIO][256]={{"Lavastoviglie"}, {"Lavatrice"}, {"Aciugatrice"}, {"Forno a microonde"}, {"Forno"}, {"Tostapane"}, {"Piastra per i waffle"}, {"Frigorifero"}, {"Freezer"}, {"Aspirapolvere"}, {"Condizionantore"}, {"Purificatore d'aria"}, {"Frullatore"}, {"Ventilatore da soffitto"}, {"Robot domestico"}};
int i, j, congruenza;
int a[NUMERO_ARTICOLIO];
float prezzo[NUMERO_ARTICOLIO]={3700,700.00,500.00,150.00,539.00,25.00,42.90,690.00,338.90,150.00,500.00,250.00,35.00,50.00,520.00};
char nome_temp[256];
float prezzo_iva=0;
//for per assegnare una posizione casuale all'interno della lista
for(i=0;i<NUMERO_ARTICOLIO;i++) {
a[i]=rand()%15;
for(j=0;j<i;j++) {
if(a[i]==a[j]) {
i--;
break;
}
}
}
do{ //se si vuole reinserire un partecipante
do{ //se il nome non è presente
//stampa a video della lista
system("cls");
printf("----------------------------------\n");
printf("----!Catalogo elettrodomestici!---\n");
printf("----------------------------------\n");
for (i=0;i<NUMERO_ARTICOLIO;i++){
printf("\t| %i. ", i+1);
puts(nomi[a[i]]);
}
printf("----------------------------------\n");
//sezione di in-put
printf("Inserire il nome dell'articolo\nper visualizzarne il pezzo.\n");
printf("----------------------------------\n>");
gets(nome_scelto);
system("cls");
//sezione controllo del nome
i=0;
congruenza=-1;
do {
strcpy(nome_temp, nomi[i]);
congruenza=strcmp(strupr(nome_temp), strupr(nome_scelto));
if (congruenza==0) {
printf("---------!Prodotto scelto!----------\n");
printf("Aricolo: ");
puts(nomi[i]);
prezzo_iva=prezzo[i]+((prezzo[i]*IVA_ITALIA)/100);
printf("Prezzo: %.2f Euro (iva escl.)\n", prezzo[i]);
printf("Prezzo: %.2f Euro (iva incl.)\n", prezzo_iva);
printf("----------------------------------\n");
printf("Premi un tasto per continuare . . .\n>");
getch();
}
i++;
}while(congruenza!=0 && i<NUMERO_ARTICOLIO);
//se non è presente una cogruenza nei nomi
if (congruenza!=0) {
for (i=3;i>=0;i--){
system("cls");
printf("----------------------------------\n");
printf("Articolo non presente [%i] secondi\n", i);
printf("----------------------------------\n>");
sleep(1);
}
}
}while(congruenza!=0);
//sezione di in-put
do{
system("cls");
printf("----------------------------------\n");
printf("Si vuole cercare un altro\nprodotto? (y/n)\n");
printf("----------------------------------\n>");
ripetere=getch();
if ((ripetere!='y') && (ripetere!='n')){
for (i=3;i>=0;i--){
system("cls");
printf("----------------------------------\n");
printf("In-put errato attendi [%i] secondi\n", i);
printf("----------------------------------\n>");
sleep(1);
}
}
}while((ripetere!='y') && (ripetere!='n'));
}while(ripetere!='n');
//sezione di out-put
system("cls");
for (i=0;i<5;i++){
printf("Grazie di aver utilizzato il programma\n\n");
sleep(1);
}
return 0;
}