Accedi

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;
}