Buona sera a tutti,
Per l'università sto facendo un programma che gestisca i voli e gli aeroporti di una qualsiasi compagnia aerea. Ciò prevede inserimento, ricerca, modifica, cancellazione(logica/fisica) e ripristino di tali strutture. Siccome ho appena imparato ad usare c++, ho provato ogni singolo pezzo di programma in una scheda a parte e ,una volta che tutti funzionavano, ho riassemblato il tutto. Con il compile il DEV C++ non da problemi, e con i menù arrivo fino all'operazione voluta.
Solo che ogni volta che richiedo un parametro all'inizio di ogni procedura, la salta. Non so il perché. La logica è giusta (visto che ho fatto 3 anni fa un programma simile in Pascal e funzionava benissimo), quindi presumo sia un problema derivato da una mia lacuna in c++.
Ora posto una parte di codice (il programma finito è di circa 1500 righe);

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 gotoxyint xint y ){
COORD coord;
coord.x;
coord.y;
SetConsoleCursorPosition(GetStdHandleSTD_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,1sizeof(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,1sizeof(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)==&&(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 
:
            
scelta2=MENU_VOLO_AEROPORTO();
            switch(
scelta2)
            {
                case 
:
                    
INSERIMENTO_VOLO();
                    break;
                case 
:
                    
INSERIMENTO_AEROPORTO();
                    break;
            }
            break;
        
    }            
    return;
}

void SMISTAMENTO1(int scelta)
{
    switch(
scelta)
    {
        case 
:
            
LOGIN();
            break;
        case 
:
 break;
    }
    return;
}

//Main Principale

int main()
int scelta;
    
INTESTAZIONE();
    
scelta=MENU1();
    while (
scelta!=3)
    {
        
SMISTAMENTO1(scelta);
        
scelta=MENU1();
    }
    
SALUTI();
    
system ("PAUSE");
    return 
EXIT_SUCCESS;    


Provate a farlo runnare voi...xk io non c capisco più niente!