Advertisement
Chuck-

Progetto 2 incompleto

Feb 19th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. #include <stdlib.h>
  2.  
  3. #include <unistd.h>
  4.  
  5. #include <string.h>
  6.  
  7. typedef struct{
  8.  
  9.     char    titolo[40];
  10.  
  11.     char    autore[20];
  12.  
  13.     int     prezzo;
  14.  
  15.     int     stato; //disponibilità, quindi se il libro è in prestito o meno
  16.  
  17.     int     codice;
  18.  
  19. }lib;
  20.  
  21.  
  22. int L=100;
  23.  
  24. int m=0;
  25.  
  26. int confronta(const void* a, const void* b){
  27.  
  28.     lib* sa = (lib*)a;
  29.  
  30.     lib* sb = (lib*)b;
  31.  
  32.     return (strcmp(sa->titolo,sb->titolo));
  33.  
  34. }
  35.  
  36. int main()
  37.  
  38. {
  39.  
  40.     lib v[100];
  41.  
  42.     int t;
  43.  
  44.     char buffer[40];
  45.  
  46.     int i;
  47.  
  48.     int j=0;
  49.  
  50.     int codice;
  51.  
  52.     int cerca;
  53.  
  54.     int n, pos, trovato;
  55.  
  56.     while(1){
  57.  
  58.  
  59.         puts("\n----- BIBLIOTECA -----\n");
  60.  
  61.         puts("Specificare un'operazione\n");
  62.  
  63.         puts("1 - Aggiungi un nuovo libro");
  64.  
  65.         puts("2 - Ricerca per codice");
  66.  
  67.         puts("3 - Stampa l'archivio");
  68.  
  69.         puts("4 - Cerca libro piu' costoso");
  70.  
  71.         puts("0 - Esci dal programma");
  72.  
  73.         scanf("%d",&t);
  74.  
  75.         fflush(stdin);
  76.  
  77.  
  78.         switch(t)
  79.  
  80.         {
  81.  
  82.             case 0:
  83.  
  84.                 return 0;
  85.  
  86.  
  87.             case 1:
  88.  
  89.                 for(i=0;i<L;i++)
  90.  
  91.                 {
  92.  
  93.                     puts("Inserisci il titolo");
  94.  
  95.                     scanf("%40s",v[i].titolo);
  96.  
  97.                     fflush(stdin);
  98.  
  99.  
  100.                     puts("Inserisci l'autore");
  101.  
  102.                     scanf("%20s",v[i].autore);
  103.  
  104.                     fflush(stdin);
  105.  
  106.  
  107.                     puts("Inserisci il prezzo");
  108.  
  109.                     scanf("%d",&v[i].prezzo);
  110.  
  111.                     fflush(stdin);
  112.  
  113.  
  114.                     puts("Inserisci lo stato");
  115.  
  116.                     scanf("%d",&v[i].stato);
  117.  
  118.                     fflush(stdin);
  119.  
  120.  
  121.                     ++m;
  122.  
  123.                     v[i].codice=m;
  124.  
  125.                     printf("Il codice del libro e': %d\n",v[i].codice);
  126.  
  127.  
  128.                     puts("Aggiungere un'altro numero?");
  129.  
  130.                     scanf("%s",buffer);
  131.  
  132.                     fflush(stdin);
  133.  
  134.  
  135.                     if((buffer[0]=='n')||(buffer[0]=='N'))
  136.  
  137.                     {
  138.  
  139.                         i++;
  140.  
  141.                         break;
  142.  
  143.                     }
  144.  
  145.                 }
  146.  
  147.                 continue;
  148.  
  149.  
  150.             case 2:
  151.  
  152.                 printf("\nInserisci il codice del libro da cercare: ");
  153.  
  154.                 scanf("%d", &cerca);
  155.  
  156.                 for(n=0;n<100;++n) //100 è il limite di libri che possono stare in archivio
  157.  
  158.                 {
  159.  
  160.                     if(cerca!=v[i].codice)
  161.  
  162.                     {
  163.  
  164.                         break;
  165.  
  166.                     }
  167.  
  168.                     if(cerca==v[i].codice)
  169.  
  170.                     {
  171.  
  172.                         printf("%s %s %d %d\n", v[i].titolo,v[i].autore,v[i].prezzo,v[i].stato);
  173.  
  174.                         break;
  175.  
  176.                     }
  177.  
  178.  
  179.                 }
  180.  
  181.                 continue;
  182.  
  183.  
  184.             case 3:
  185.  
  186.                 qsort(v,i,sizeof(lib),confronta);
  187.  
  188.                 for(j=0;j<i;j++)
  189.  
  190.                 {
  191.  
  192.                     printf("%s %s\n",v[j].titolo, v[j].codice);
  193.  
  194.                 }
  195.  
  196.                 continue;
  197.  
  198.             default:
  199.  
  200.             puts("Errore di input. Riprova");
  201.  
  202.             continue;
  203.  
  204.         }
  205.  
  206.     }
  207.  
  208.     return 0;
  209.  
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement