Questo è un file di esempio di database creato con struct, che il professore consiglia di seguire per poter sviluppare il progetto, in quanto sostiene "che è praticamente uguale, cambiano solo le variabili".
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*---------- STRUCT LIBRI ------------*/
struct Libri{
int id;
char nome_libro[100];
char autore[100];
char genere[100];
};
/*---------VARIABILI GLOBALI---------*/
int n = 0;
/*--------FUNZIONI PER GESTIRE LA LIBRERIA ------------*/
void add_book(struct Libri *l);
void read_book(struct Libri *l);
void update_book(struct Libri *l);
void delete_book(struct Libri *l);
/*--------FUNZIONI ------------*/
int menu();
/*----------MAIN---------*/
int main() {
int choise;
int check;
struct Libri *book;
book = (struct Libri*) malloc(sizeof(struct Libri));
do{
choise = menu();
switch(choise){
case 1:
do{
add_book(&book[n]);
realloc(book, sizeof(struct Libri));
printf("\nPremi 1 per continuare, 0 per uscire!");
scanf("%d", &check);
}while(check !=0);
break;
case 2:
read_book(book);
break;
case 3:
update_book(book);
break;
case 4:
delete_book(book);
break;
default:
break;
}
}while(choise==1||choise==2||choise==3||choise==4);
return 0;
}
/*----FUNZIONI PER LA GESTIONE DELLA LIBRERIA-------*/
void add_book(struct Libri *l){
l->id = n;
printf("Inserisci nome libro:\n");
scanf("%s", l->nome_libro);
printf("Inserisci autore:\n");
scanf("%s", l->autore);
printf("Inserisci genere:\n");
scanf("%s", l->genere);
n++;
}
void read_book(struct Libri *l){
int i;
for(i=0;i<n;i++) {
printf("\nLibro %d:\nID: %d\nNOME LIBRO: %s\nAUTORE: %s\nGENERE: %s\n",i,l[i].id, l[i].nome_libro, l[i].autore, l[i].genere);
}
}
void update_book(struct Libri *l){
int i;
int id;
int check = 0;
printf("\nInserisci l'id del libro da modificare:\n");
scanf("%d", &id);
for(i=0; i<n;i++){
if(l[i].id == id){
printf("Inserisci nome libro:\n");
scanf("%s", l[i].nome_libro);
printf("Inserisci autore:\n");
scanf("%s", l[i].autore);
printf("Inserisci genere:\n");
scanf("%s", l[i].genere);
check = 1;
}
}
if(check==0)
printf("L'id inserito non e' presente!\n");
}
void delete_book(struct Libri *l){
int i, j;
int id;
int check = 0;
printf("\nInserisci l'id del libro da eliminare:\n");
scanf("%d", &id);
for(i=0; i<n;i++){
if(l[i].id == id){
n--;
for(j=l[i].id; j<n;j++){
l[j] = l[j+1];
l[j].id--;
}
check = 1;
}
}
if(check==0)
printf("L'id inserito non e' presente!\n");
realloc(l, sizeof(struct Libri));
}
/*------ALTRE FUNZIONI-------*/
int menu(){
int choise;
printf("\nMENU:\n1. Aggiungi Libri\n2. Visualizza Libri\n3. Modifica Libro\n4. Elimina Libro\n0. Esci\n");
scanf("%d", &choise);
return choise;
}