Codice PHP:
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <fstream>
using namespace std;
//STRUTTURE DI DATI
struct ora1
{ int ora;
int minuti;
};
struct volo1
{ char id_volo[6];
ora1 ora_partenza;
ora1 ora_arrivo;
char cod_partenza[6];
char cod_arrivo[6] ;
int canc;
};
struct aero1
{char id_aeroporto[5];
char nome[21];
char citta[21];
char nazione[21];
int fusorario;
int canc;
};
aero1 aeroporto;
volo1 volo;
void gotoxy( int x, int y ){
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle( STD_OUTPUT_HANDLE ), coord);
}
//DICHIARAZIONE DI TUTTE LE FUNZIONI E DELLE PROCEDURE
void SMISTAMENTO2(int scelta);
void VIS_AEROPORTO();
void VIS_VOLO();
void MASCHERA_VOLO();
void INSERIMENTO_VOLO();
void INSERIMENTO_AEROPORTO();
void RIC_CITTA (char citta[21],int &a);
void RICERCA_AEROPORTO(int x);
void RICERCA_VOLO(int x);
void MODIFICA_AEROPORTO();
void MODIFICA_VOLO();
void CANCELLAZIONE_LOGICA_AEROPORTO();
void CANCELLAZIONE_LOGICA_VOLO();
void CANCELLAZIONE_FISICA_AEROPORTO();
void CANCELLAZIONE_FISICA_VOLO();
void RIPRISTINO_AEROPORTO();
void RIPRISTINO_VOLO();
void LOGIN();
void MENU_RICERCA_AEROPORTO();
void MENU_RICERCA_VOLO();
int MENU_CANCELLAZIONE ();
int MENU_VOLO_AEROPORTO();
int MENU_ADMIN();
int MENU1();
void CANCELLAZIONE_AEROPORTO ();
void CANCELLAZIONE_VOLO ();
void SMISTAMENTO2(int scelta);
void SMISTAMENTO1(int scelta);
void INTESTAZIONE();
void SALUTI();
//PROGRAMMA
//PARTE AMMINISTRAZIONE
//Maschere per il programma
void VIS_AEROPORTO()
{system("cls");
gotoxy(32,2);
cout<<"INSERIMENTO AEROPORTO";
gotoxy(5,5);
cout<<"Codice:_____";
gotoxy(34,5);
cout<<"Nome:____________________";
gotoxy(5,7);
cout<<"Citta':____________________";
gotoxy(34,7);
cout<<"Nazione:____________________";
gotoxy(5,9);
cout<<"Fusorario:___";
}
void VIS_VOLO() //maschera per l'inserimento del volo
{system("cls");
gotoxy(32,2);
cout<<"INSERIMENTO VOLO";
gotoxy(5,5);
cout<<"Codice:_____";
gotoxy(20,5);
cout<<"Ora Partenza:__:__";
gotoxy(41,5);
cout<<"Ora Arrivo:__:__";
gotoxy(5,7);
cout<<"Citta' Partenza:____________________";
gotoxy(43,7);
cout<<"Citta' Arrivo:____________________";
gotoxy(5,20);
cout<<"Codice Aeroporto Partenza:_____";
gotoxy(43,20);
cout<<"Codice Aeroporto Arrivo:_____";
}
void MASCHERA_VOLO() //maschera per la ricerca, la modifica, la cancellazione e il ripristino del Volo
{system("cls");
gotoxy(5,5);
cout<<"Codice:_____";
gotoxy(20,5);
cout<<"Ora Partenza:__:__";
gotoxy(41,5);
cout<<"Ora Arrivo:__:__";
gotoxy(5,7);
cout<<"Codice Aeroporto Partenza:_____";
gotoxy(43,7);
cout<<"Codice Aeroporto Arrivo:_____";
}
//INSERIMENTO
//Inserimento Aeroporto
void INSERIMENTO_AEROPORTO()
{ char risp[2];
FILE *aero;
if((aero=fopen("aeroporto.txt","r"))==NULL)aero=fopen("aeroporto.txt","w+");
else { fclose(aero);
aero=fopen("aeroporto.txt","r+");
}
while (!feof(aero))
{fread(&aeroporto,sizeof(struct aero1),1,aero);
if( feof(aero) )
break;}
VIS_AEROPORTO();
gotoxy(14,24);
cout<<"Premi * per terminare";
gotoxy(12,5);
gets(aeroporto.id_aeroporto);
while (strcmp(aeroporto.id_aeroporto,"*")!=0)
{
gotoxy(39,5);
gets(aeroporto.nome);
gotoxy(12,7);
gets(aeroporto.citta);
gotoxy(42,7);
gets(aeroporto.nazione);
gotoxy(15,9);
cin>>(aeroporto.fusorario);
cin.ignore();
aeroporto.canc=0;
gotoxy(32,11);
cout<<"Confermi?(s/n) ";
do
{
gotoxy(47,11);
cin>>risp;
cin.ignore();
}while(!((strcmp(risp,"n")==0)||(strcmp(risp,"N")==0)||(strcmp(risp,"S")==0)||(strcmp(risp,"s")==0)));
if ((strcmp(risp,"s")==0)||(strcmp(risp,"S")==0)) {
fwrite(&aeroporto,1, sizeof(struct aero1),aero);
}
VIS_AEROPORTO();
gotoxy(14,24);
cout<<"Premi * per terminare";
gotoxy(12,5);
gets(aeroporto.id_aeroporto);
}
fclose(aero);
return;
}
//Inserimento Volo
void INSERIMENTO_VOLO()
{ int p;
char citta[21];
char citta2[21];
char risp[2];
FILE *fvolo;
if((fvolo=fopen("volo.txt","r"))==NULL)
fvolo=fopen("volo.txt","w+");
else
{
fclose(fvolo);
fvolo=fopen("volo.txt","r+");
}
while (!feof(fvolo))
{
fread(&volo,sizeof(struct volo1),1,fvolo);
if( feof(fvolo) )
break;
}
VIS_VOLO();
gotoxy(14,24);
cout<<"Premi * per terminare";
gotoxy(12,5);
gets(volo.id_volo);
while (strcmp(volo.id_volo,"*")!=0)
{
do{
gotoxy(33,5);
cin>>volo.ora_partenza.ora;
cin.ignore();
}while(volo.ora_partenza.ora<0|| volo.ora_partenza.ora>24);
do{
gotoxy(36,5);
cin>>volo.ora_partenza.minuti;
cin.ignore();
}while(volo.ora_partenza.minuti<0|| volo.ora_partenza.minuti>59);
do{
gotoxy(52,5);
cin>>volo.ora_arrivo.ora;
cin.ignore();
}while(volo.ora_arrivo.ora<0|| volo.ora_arrivo.ora>24);
do{
gotoxy(55,5);
cin>>volo.ora_arrivo.minuti;
cin.ignore();
}while(volo.ora_arrivo.minuti<0|| volo.ora_arrivo.minuti>59);
gotoxy(21,7);
gets(citta);
p=1;
RIC_CITTA(citta,p);
gotoxy(31,20);
gets(volo.cod_partenza);
gotoxy(57,7);
gets(citta2);
p=2;
RIC_CITTA(citta2,p);
gotoxy(67,20);
gets(volo.cod_arrivo);
gotoxy(32,22);
cout<<"Confermi?(s/n) ";
do
{
gotoxy(47,22);
cin>>risp;
cin.ignore();
}while(!((strcmp(risp,"n")==0)||(strcmp(risp,"N")==0)||(strcmp(risp,"S")==0)||(strcmp(risp,"s")==0)));
if ((strcmp(risp,"s")==0)||(strcmp(risp,"S")==0))
fwrite(&volo,1, sizeof(struct volo1),fvolo);
VIS_VOLO();
gotoxy(14,24);
cout<<"Premi * per terminare";
gotoxy(12,5);
gets(volo.id_volo);
}
fclose(fvolo);
return;
}
//Ricerca parziale dell'aeroporto
void RIC_CITTA (char citta[21],int &a)
{
int y;
int x1;
int x2;
y=11;
if (a==1){
x1=5;
x2=12;}
else
{x1=43;
x2=50;
}
char citta2[6];
gotoxy(x1,9);
cout<<"Codice Nome Aeroporto";
FILE *aero;
aero=fopen("aeroporto.txt","r+");
int trovato=0;
while (!feof(aero))
{fread(&aeroporto,sizeof(struct aero1),1,aero);
if( feof(aero) )
break;
if (strcmp(aeroporto.citta,citta)==0 &&(aeroporto.canc==0))
{ gotoxy(x1,y);
cout<<aeroporto.id_aeroporto;
gotoxy(x2,y);
cout<<aeroporto.nome;
y+=1;
}
}
if (y==11){
gotoxy(x1,y);
cout<<"Nessun aeroporto con quel nome";
gotoxy(21,7);
cin>>(citta2);
cin.ignore();
RIC_CITTA(citta2,a);
}
return;
}
// MENU''
// parte in cui sono disegnati tutti i menu' del programma
int MENU_VOLO_AEROPORTO()
{
int scelta2;
do
{
system("cls");
cout<<"1 - Volo"<<endl;
cout<<"2 - Aeroporto"<<endl;
cout<<"Operazione scelta: ";
cin>>scelta2;
}while(scelta2<1||scelta2>2);
return scelta2;
}
int MENU_ADMIN()
{
int scelta;
do
{
system("cls");
cout<<"Menu'' Amministratore: "<<endl;
cout<<"1 - Inserimento"<<endl;
cout<<"2 - Modifica"<<endl;
cout<<"3 - Ricerca"<<endl;
cout<<"4 - Cancellazione"<<endl;
cout<<"5 - Ripristino"<<endl;
cout<<"6 - Uscita"<<endl;
cout<<"Operazione scelta: ";
cin>>scelta;
}while(scelta<1||scelta>7);
return scelta;
}
int MENU1()
{
int scelta;
do
{ scelta=0;
system("cls");
cout<<"Menu' Principale:"<<endl;
cout<<"1 - Amministratore"<<endl;
cout<<"2 - Utente"<<endl;
cout<<"3 - Uscita"<<endl;
cout<<"Operazione scelta: ";
cin>>scelta;
}while( scelta<1||scelta>4);
return scelta;
}
//Login nella parte amministratore
void LOGIN()
{ int scelta;
int psw;
cout<<"Inserire la password: ";
cin>>psw;
if (psw==0000)
{
scelta=MENU_ADMIN();
while(scelta!=6)
{
SMISTAMENTO2(scelta);
scelta=MENU_ADMIN();
return;
}
}
else
{
cout<<"Password errata!"<<endl;
system ("PAUSE");
return;
}
}
// SMISTAMENTI
// Parte in cui ci sono tutti gli smistamenti del programma, cioè quelli che indirizzano le scelte dell'utente nei vari menù
// Parametri passati: scelta, scelta2, scelta3
void SMISTAMENTO2(int scelta)
{ int scelta2;
switch(scelta)
{
case 1 :
scelta2=MENU_VOLO_AEROPORTO();
switch(scelta2)
{
case 1 :
INSERIMENTO_VOLO();
break;
case 2 :
INSERIMENTO_AEROPORTO();
break;
}
break;
}
return;
}
void SMISTAMENTO1(int scelta)
{
switch(scelta)
{
case 1 :
LOGIN();
break;
case 2 :
break;
}
return;
}
//Main Principale
int main()
{ int scelta;
INTESTAZIONE();
scelta=MENU1();
while (scelta!=3)
{
SMISTAMENTO1(scelta);
scelta=MENU1();
}
SALUTI();
system ("PAUSE");
return EXIT_SUCCESS;
}