diff --git a/Program.cs b/Program.cs index 15f3e8d..18c395b 100644 --- a/Program.cs +++ b/Program.cs @@ -2,8 +2,251 @@ class Program { - static void Main(string[] args) + //costanti delle partenze e destinazioni + const string partenza1="Milano"; + const string partenza2="Bangkok"; + const string partenza3="Berlino"; + const string destinazione1="Milano"; + const string destinazione2="Bangkok"; + const string destinazione3="Berlino"; + + + static void Main(string[] args){ + //dichiarazione e inizializzazione variabili + const int sconto=10; + int prezzoAndata, totale, prezzoRitorno, exit; + //---queste variabili hanno dei valori che vengono rigettati dagli switch in modo da non avere una scelta di default valida--- + exit=0; + totale=-1; + //---------------------------------------------------------------------------------------------------------------------------------------- + string scelta; + + //Acquisto del biglietto + prezzoAndata=AcquistoBiglietti(); + if (prezzoAndata>=0){//se prezzoAndata==-1 allora l'utente ha selezionato di uscire dal programma + Console.Write("Acquistare anche il ritorno? [S/n] "); + scelta=Console.ReadLine(); + + do{ + switch (scelta){ + case "S": + prezzoRitorno=AcquistoBiglietti(); + if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma + totale=(prezzoAndata-(prezzoAndata*sconto/100))+(prezzoRitorno-(prezzoRitorno*sconto/100)); + } + exit=1; + break; + case "s": + prezzoRitorno=AcquistoBiglietti(); + if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma + totale=(prezzoAndata-(prezzoAndata*sconto/100))+(prezzoRitorno-(prezzoRitorno*sconto/100)); + } + exit=1; + break; + case "Y": + prezzoRitorno=AcquistoBiglietti(); + if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma + totale=(prezzoAndata-(prezzoAndata*sconto/100))+(prezzoRitorno-(prezzoRitorno*sconto/100)); + } + exit=1; + break; + case "y": + prezzoRitorno=AcquistoBiglietti(); + if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma + totale=(prezzoAndata-(prezzoAndata*sconto/100))+(prezzoRitorno-(prezzoRitorno*sconto/100)); + } + exit=1; + break; + case "": + prezzoRitorno=AcquistoBiglietti(); + if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma + totale=(prezzoAndata-(prezzoAndata*sconto/100))+(prezzoRitorno-(prezzoRitorno*sconto/100)); + } + exit=1; + break; + case "N": + totale=prezzoAndata; + exit=1; + break; + case "n": + totale=prezzoAndata; + exit=1; + break; + default: + Console.WriteLine("Scelta non valida"); + break; + } + } + while(exit==0); + } + + if (totale>=0){ + Console.WriteLine("Totale: " +totale); + } + } + static int AcquistoBiglietti(){ + //dichiarazione e inizializzazione variabili + string partenza, destinazione; + int prezzo; + prezzo=-1; + + partenza=SceltaPartenza(); + if(partenza!="0"){ + destinazione=SceltaDestinazione(); + if(destinazione!="0"){ + prezzo=PrezzoVolo(partenza, destinazione); + } + } + return prezzo; + } + static string SceltaPartenza() { - Console.WriteLine("Hello, World!"); + //dichiarazione e inizializzazione variabili + string partenza; + partenza=null; + int scelta, exit; + + //---questa variabile ha un valore che viene rigettato dallo switch in modo da non avere una scelta di default valida--- + exit=-1; + + //selezione partenza + do{ + Console.WriteLine("Da dove si parte?"); + Console.WriteLine("1. " +partenza1); + Console.WriteLine("2. " +partenza2); + Console.WriteLine("3. " +partenza3); + Console.WriteLine("0. Esci"); + Console.Write("Scelta: "); + scelta=Convert.ToInt32(Console.ReadLine()); + + + switch(scelta){ + case 0: + exit=0; + break; + case 1: + partenza=partenza1; + exit=1; + break; + case 2: + partenza=partenza2; + exit=1; + break ; + case 3: + partenza=partenza3; + exit=1; + break; + default: + Console.WriteLine("Scelta non valida"); + break; + } + } + while(exit!=1 && exit!=0); + if (exit==0){//se viene scelto di uscire restituisco un valore che non corrisponde a una partenza + return Convert.ToString(exit); + } + else{ + return partenza; + } + + + } + static string SceltaDestinazione() + { + //dichiarazione e inizializzazione variabili + string destinazione; + destinazione=null; + int scelta, exit; + + //---questa variabile ha un valore che viene rigettato dallo switch in modo da non avere una scelta di default valida--- + exit=-1; + + //selezione destinazione + do{ + Console.WriteLine("Dove si vuole andare?"); + Console.WriteLine("1. " +destinazione1); + Console.WriteLine("2. " +destinazione2); + Console.WriteLine("3. " +destinazione3); + Console.WriteLine("0. Esci"); + Console.Write("Scelta: "); + scelta=Convert.ToInt32(Console.ReadLine()); + + + switch(scelta){ + case 0: + exit=0; + break; + case 1: + destinazione=destinazione1; + exit=1; + break; + case 2: + destinazione=destinazione2; + exit=1; + break ; + case 3: + destinazione=destinazione3; + exit=1; + break; + default: + Console.WriteLine("Scelta non valida"); + break; + } + } + while(exit!=1 && exit!=0); + if (exit==0){//se viene scelto di uscire restituisco un valore che non corrisponde a una destinazione + return Convert.ToString(exit); + } + else{ + return destinazione; + } + + } + static int PrezzoVolo(string partenza, string destinazione){ + //dichiarazione e inizializzazione variabili per tabella della verità + int prezzo; + const int tariffa1=0; + const int tariffa2=100; + const int tariffa3=150; + const int tariffa4=120; + const int tariffa5=0; + const int tariffa6=110; + const int tariffa7=130; + const int tariffa8=180; + const int tariffa9=0; + + //---questa variabile ha un valore che viene rigettato dallo switch in modo da non avere una scelta di default valida--- + prezzo=-1; + + switch((partenza, destinazione)){//switch a due variabili per verificare tutte le combinazioni (tabella della verità) + case (partenza1, destinazione1): + prezzo=tariffa1; + break; + case (partenza1, destinazione2): + prezzo=tariffa2; + break; + case (partenza1, destinazione3): + prezzo=tariffa3; + break; + case (partenza2, destinazione1): + prezzo=tariffa4; + break; + case (partenza2, destinazione2): + prezzo=tariffa5; + break; + case (partenza2, destinazione3): + prezzo=tariffa6; + break; + case (partenza3, destinazione1): + prezzo=tariffa7; + break; + case (partenza3, destinazione2): + prezzo=tariffa8; + break; + case (partenza3, destinazione3): + prezzo=tariffa9; + break; + } + return prezzo; } }