codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
/* Creazione di un array di struct libro contenente 5 campi*/
struct libro{
char titolo[30];
char nome_autori[5][20];
int codice_identificativo;
int prezzo_di_prestito;
int status; /* Status indica se il libro è presente(1) oppure è in prestito(0)*/
};
typedef struct libro Libro;
int main ()
{
int var; /*Questa variabile sarà utilizzata nella switch per decidere che cosa fare...*/
int i,max; /* Variabili utilizzate per inserire un nuovo libro nell'archivio */
int flag=2;
char titolo_richiesto [30]; /* Le variabili flag e titolo_richiesto sono utilizzate per richiedere un libro tramite il codice */
int cod_id; /* Variabile utilizzata per richiedere un libro tramite il codice*/
int id; /* Variabile utilizzata per restituire un libro tramite codice*/
int maxi; /* Variabile utilizzata per cercare il libro più costoso */
/* Inizializzazione della libreria */
Libro libreria [] =
{
{"Il signore degli anelli","James Redfield","Silvestrone",5,1,1},
{"Harry Potter","Paulo Coelho",7,1,2},
{"La bibbia","Marco Bianchi",8,0,3},
{"Piccole donne","Piero Mozzi",60,0,4},
{"Guarnizione","Napoleton Hill",1,0,5},
{"Il nome della rosa","Louise",10,1,6},
{"Via col vento","Jerry Ford",3,1,7},
{"Odissea","Rhonda Bryne","Galano","Loius Scott","Trent",40,1,8},
{"Cuore","Fabio Marchesi",12,1,9},
{"Malavoglia","Valeria Soglia",4,0,10},
{"Siddharta","Still",2,1,11},
{"Lolita","Moccia","Crail Wilcox",12,0,12},
{"Amabili resti","Wagner","Pone Raffy",35,1,13},
{"Sulla strada","Boldi",1,1,14},
{"Possession","Esposito Faby",25,1,15},
{"Germinale","Fabio Beatrice",10,0,16},
{"Il piccolo principe","Siani",24,1,17},
{"Un uomo","Finucci Genny",14,1,18},
{"Amleto","Ohls","Ylenia Star",23,0,19}
};
/* Inizializzazione biblioteca */
do
{
printf("* * * * * * * * * * * * * * * * * * * * * * *\nBenvenuto nel programma di gestione biblioteca\n* * * * * * * * * * * * * * * * * * * * * * *\n");
printf("Premere:\n 1. Per inserire un nuovo libro;\n 2. Per richiedere libro tramite titolo;\n 3. Per richiedere un libro tramite codice;\n 4. Per restituire un libro;\n 5. Per cercare libro piu costoso;\n 0. Per uscire.\n");
scanf("%d",&var); /*Viene inserito nella variabile var il numero inserito dall'utente e di conseguenza inserito nel ciclo Switch*/
switch (var) /* Creo uno switch con 5 case, uno per ogni possibile scelta */
{
case 1 : /* Se l'utente preme tasto 1 si attiva questo case per inserire un nuovo libro nell'archivio */
i=0;
max=0;
for(i=0;i<30;i++)
{
if(libreria[i].codice_identificativo>max){
max=libreria[i].codice_identificativo;}
}
printf("Inserire titolo del libro:\n ");
scanf("%s",&libreria[max+1].titolo);
printf("Inserire nome dell'autore:\n");
scanf("%d",&libreria[max+1].nome_autori);
printf("Inserire 1 se il libro e' disponibile oppure 0 se è in prestito:\n");
scanf("%d",&libreria[max+1].status);
libreria[max+1].codice_identificativo=max+1;
printf("Grazie!! Il libro e' stato inserito nell'archivio correttamente\n");
break;
case 2 : /* Se l'utente preme il tasto 2 vuole richjedere un libro tramite il titolo*/
i=0;
printf("Inserire il titolo del libro da richiedere:\n");
scanf("%s",&titolo_richiesto);
while(flag!=0 && i<30){
if(strcmp(titolo_richiesto , libreria[i].titolo)==0){
flag=0;
if(libreria[i].status==1){
printf("\nIl libro e' presente nell'archivio ed e' disponibile.\n");
libreria[i].status=0;
printf("\nSuddetto libro le e' appena stato ceduto in prestito.\nArrivederci e Grazie!");}
else{
printf("\nIl libro e' presente nell'archivio ma attualmente e' in prestito\n");}
}
else{
i=i+1;}}
if(flag!=0){
printf("\nIl libro non e' presente nell'archivio!!\n");} break;
case 3 : /* Premendo il tasto 3 l'utente vuole richiedere un libro tramite il titolo*/
i=0;
printf("Inserire il codice identificativo del libro da richiedere: \n");
scanf("%d",&cod_id);
while(flag!=0 && i<30){
if(cod_id==libreria[i].codice_identificativo){
flag=0;
if(libreria[i].status==1){
printf("\nIl libro e' presente nell'archivio ed e' disponibile.\n");
libreria[i].status==0;
printf("\nSuddetto libro le e' appena stato ceduto in prestito: %s.\nArrivederci e Grazie!\n", libreria[i].titolo);}
else{
printf("\nIl libro e' presente nell'archivio ma attualmente e' in prestito\n");}
}
else{
i=i+1;}}
if(flag!=0){
printf("\nL'archivio non dispone di alcun libro avente questo codice identificativo\nArrivederci e Grazie!\n");}
break;
case 4 : /* Case costruito per restituire un libro tramite codice*/
i=0;
printf("Inserire il codice identificativo del libro da restituire: \n");
scanf("%d",&id);
while(flag!=0 && i<30){
if(id==libreria[i].codice_identificativo){
flag=0;
if(libreria[i].status==1){
printf("\nErrore: Il libro e' gia' disponibile.\nArrivederci e Grazie.\n");}
else{
libreria[i].status=1;
printf("\nSuddetto libro e' appena stato restituito: %s\nLa ringraziamo per la serieta'. Arrivederci!\n",libreria[i].titolo);}
}
else{
i=i+1;}}
if(flag!=0){
printf("\nL'archivio non dispone di alcun libro avente questo codice identificativo\nArrivederci e Grazie!");}
break;
case 5: /* Si vuole cercare il libro più costoso nell'archivio */
maxi = 0;
for(i=1;i<20;i++)
{
if(libreria[i].prezzo_di_prestito > libreria[maxi].prezzo_di_prestito)
{
maxi = i;
}
}
printf("\n\nIl libro col prezzo massimo e': %s", libreria[maxi].titolo);
return 0; break;
case 0 :
printf("Hai deciso di uscire dalla libreria!! Ciao!!\n"); break;
default:printf("Inserimento Errato\nRiprovare: \n:");break; /*Se l'utente sbaglia ad inserire il numero*/
} /* Fine switch */
} /* Fine do */
while (var>5);
system("Pause");
}
Il programma mi dà diversi errori... al punto 1 non mi fa inserire il libro nell'archivio e mi dà errore...