Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <unistd.h>
- #include <string.h>
- typedef struct{
- char titolo[40];
- char autore[20];
- int prezzo;
- int stato; //disponibilità, quindi se il libro è in prestito o meno
- int codice;
- }lib;
- int L=100;
- int m=0;
- int confronta(const void* a, const void* b){
- lib* sa = (lib*)a;
- lib* sb = (lib*)b;
- return (strcmp(sa->titolo,sb->titolo));
- }
- int main()
- {
- lib v[100];
- int t;
- char buffer[40];
- int i;
- int j=0;
- int codice;
- int cerca;
- int n, pos, trovato;
- while(1){
- puts("\n----- BIBLIOTECA -----\n");
- puts("Specificare un'operazione\n");
- puts("1 - Aggiungi un nuovo libro");
- puts("2 - Ricerca per codice");
- puts("3 - Stampa l'archivio");
- puts("4 - Cerca libro piu' costoso");
- puts("0 - Esci dal programma");
- scanf("%d",&t);
- fflush(stdin);
- switch(t)
- {
- case 0:
- return 0;
- case 1:
- for(i=0;i<L;i++)
- {
- puts("Inserisci il titolo");
- scanf("%40s",v[i].titolo);
- fflush(stdin);
- puts("Inserisci l'autore");
- scanf("%20s",v[i].autore);
- fflush(stdin);
- puts("Inserisci il prezzo");
- scanf("%d",&v[i].prezzo);
- fflush(stdin);
- puts("Inserisci lo stato");
- scanf("%d",&v[i].stato);
- fflush(stdin);
- ++m;
- v[i].codice=m;
- printf("Il codice del libro e': %d\n",v[i].codice);
- puts("Aggiungere un'altro numero?");
- scanf("%s",buffer);
- fflush(stdin);
- if((buffer[0]=='n')||(buffer[0]=='N'))
- {
- i++;
- break;
- }
- }
- continue;
- case 2:
- printf("\nInserisci il codice del libro da cercare: ");
- scanf("%d", &cerca);
- for(n=0;n<100;++n) //100 è il limite di libri che possono stare in archivio
- {
- if(cerca!=v[i].codice)
- {
- break;
- }
- if(cerca==v[i].codice)
- {
- printf("%s %s %d %d\n", v[i].titolo,v[i].autore,v[i].prezzo,v[i].stato);
- break;
- }
- }
- continue;
- case 3:
- qsort(v,i,sizeof(lib),confronta);
- for(j=0;j<i;j++)
- {
- printf("%s %s\n",v[j].titolo, v[j].codice);
- }
- continue;
- default:
- puts("Errore di input. Riprova");
- continue;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement