Migrazione dalla repo unificata per separare le due tracce
This commit is contained in:
parent
906d398130
commit
4fcffc8002
571
Program.cs
571
Program.cs
@ -2,8 +2,575 @@
|
||||
|
||||
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 sconto1=10;
|
||||
const int sconto2=5;
|
||||
int prezzoAndata1, totale, prezzoRitorno1, exit, soloAndata1, soloAndata2, prezzoAndata2, prezzoRitorno2, secondoBiglietto;
|
||||
//---queste variabili hanno dei valori che vengono rigettati dagli switch in modo da non avere una scelta di default valida---
|
||||
exit=0;
|
||||
totale=-1;
|
||||
soloAndata1=-1;
|
||||
soloAndata2=-1;
|
||||
//----------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
//---queste variabili hanno valori che permettono di saltare il calcolo dei prezzi del secondo biglietto se l'utente ha scelto di uscire prima di selezionare il secondo biglietto---
|
||||
prezzoRitorno1=-1;
|
||||
prezzoAndata2=-1;
|
||||
prezzoRitorno2=-1;
|
||||
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
string scelta;
|
||||
|
||||
|
||||
|
||||
//Acquisto del primo biglietto
|
||||
prezzoAndata1=AcquistoBiglietti();
|
||||
if (prezzoAndata1>=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":
|
||||
prezzoRitorno1=AcquistoBiglietti();
|
||||
if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata1=0; //Il biglietto non è di sola andata
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "s":
|
||||
prezzoRitorno1=AcquistoBiglietti();
|
||||
if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata1=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "Y":
|
||||
prezzoRitorno1=AcquistoBiglietti();
|
||||
if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata1=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "y":
|
||||
prezzoRitorno1=AcquistoBiglietti();
|
||||
if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata1=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "":
|
||||
prezzoRitorno1=AcquistoBiglietti();
|
||||
if (prezzoRitorno1>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata1=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "N":
|
||||
totale=prezzoAndata1;
|
||||
soloAndata1=1; //Il biglietto è di sola andata
|
||||
exit=1;
|
||||
break;
|
||||
case "n":
|
||||
totale=prezzoAndata1;
|
||||
soloAndata1=1;
|
||||
exit=1;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Scelta non valida");
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(exit==0);
|
||||
}
|
||||
if(prezzoAndata1>=0 && prezzoRitorno1>=0){//se prezzoAndata1 o prezzoRitorno1==-1 l'utente ha selezionato di uscire
|
||||
//Acquisto del secondo biglietto
|
||||
Console.WriteLine("Acquistare un secondo biglietto? [S/n] ");
|
||||
scelta=Console.ReadLine();
|
||||
do{
|
||||
switch (scelta){
|
||||
case "S":
|
||||
//stesse operazioni che ho usato per l'acquisto del primo biglietto, ma in uno switch per venire selezionate dall'utente
|
||||
prezzoAndata2=AcquistoBiglietti();//se prezzoAndata==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
if (prezzoAndata2>=0){
|
||||
Console.Write("Acquistare anche il ritorno? [S/n] ");
|
||||
scelta=Console.ReadLine();
|
||||
|
||||
do{
|
||||
switch (scelta){
|
||||
case "S":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
if (prezzoRitorno2>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata2=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "s":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
if (prezzoRitorno2>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata2=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "Y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
if (prezzoRitorno2>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata2=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
if (prezzoRitorno2>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata2=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
if (prezzoRitorno2>=0){//se prezzoRitorno==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
soloAndata2=0;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "N":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
case "n":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Scelta non valida");
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(exit==0);
|
||||
}
|
||||
break;
|
||||
case "s":
|
||||
//stesse operazioni che ho usato per l'acquisto del primo biglietto, ma in uno switch per venire selezionate dall'utente
|
||||
prezzoAndata2=AcquistoBiglietti();//se prezzoAndata==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
if (prezzoAndata2>=0){
|
||||
Console.Write("Acquistare anche il ritorno? [S/n] ");
|
||||
scelta=Console.ReadLine();
|
||||
|
||||
do{
|
||||
switch (scelta){
|
||||
case "S":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "s":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "Y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "N":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
case "n":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Scelta non valida");
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(exit==0);
|
||||
}
|
||||
break;
|
||||
case "Y":
|
||||
//stesse operazioni che ho usato per l'acquisto del primo biglietto, ma in uno switch per venire selezionate dall'utente
|
||||
prezzoAndata2=AcquistoBiglietti();//se prezzoAndata==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
if (prezzoAndata2>=0){
|
||||
Console.Write("Acquistare anche il ritorno? [S/n] ");
|
||||
scelta=Console.ReadLine();
|
||||
|
||||
do{
|
||||
switch (scelta){
|
||||
case "S":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "s":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "Y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "N":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
case "n":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Scelta non valida");
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(exit==0);
|
||||
}
|
||||
break;
|
||||
case "y":
|
||||
//stesse operazioni che ho usato per l'acquisto del primo biglietto, ma in uno switch per venire selezionate dall'utente
|
||||
prezzoAndata2=AcquistoBiglietti();//se prezzoAndata==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
if (prezzoAndata2>=0){
|
||||
Console.Write("Acquistare anche il ritorno? [S/n] ");
|
||||
scelta=Console.ReadLine();
|
||||
|
||||
do{
|
||||
switch (scelta){
|
||||
case "S":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "s":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "Y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "N":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
case "n":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Scelta non valida");
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(exit==0);
|
||||
}
|
||||
break;
|
||||
case "":
|
||||
//stesse operazioni che ho usato per l'acquisto del primo biglietto, ma in uno switch per venire selezionate dall'utente
|
||||
prezzoAndata2=AcquistoBiglietti();//se prezzoAndata==-1 allora l'utente ha selezionato di uscire dal programma
|
||||
if (prezzoAndata2>=0){
|
||||
Console.Write("Acquistare anche il ritorno? [S/n] ");
|
||||
scelta=Console.ReadLine();
|
||||
|
||||
do{
|
||||
switch (scelta){
|
||||
case "S":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "s":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "Y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "y":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "":
|
||||
prezzoRitorno2=AcquistoBiglietti();
|
||||
soloAndata2=0;
|
||||
exit=1;
|
||||
break;
|
||||
case "N":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
case "n":
|
||||
soloAndata2=1;
|
||||
exit=1;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Scelta non valida");
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(exit==0);
|
||||
}
|
||||
break;
|
||||
case "N":
|
||||
//Condizione per seguire la prima traccia se si sta acquistando un solo biglietto
|
||||
if(soloAndata1==0){
|
||||
totale=(prezzoAndata1-(prezzoAndata1*sconto1/100))+(prezzoRitorno1-(prezzoRitorno1*sconto1/100));
|
||||
}
|
||||
else{
|
||||
totale=prezzoAndata1;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
case "n":
|
||||
//Condizione per seguire la prima traccia se si sta acquistando un solo biglietto
|
||||
if(soloAndata1==0){
|
||||
totale=(prezzoAndata1-(prezzoAndata1*sconto1/100))+(prezzoRitorno1-(prezzoRitorno1*sconto1/100));
|
||||
}
|
||||
else{
|
||||
totale=prezzoAndata1;
|
||||
}
|
||||
exit=1;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Scelta non valida");
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(exit==0);
|
||||
}
|
||||
|
||||
if(prezzoAndata2>=0 && prezzoRitorno2>=0){//se prezzoAndata2 o prezzoRitorno2==-1 l'utente ha selezionato di uscire
|
||||
//Condizione per seguire la seconda traccia se si sta acquistando anche un secondo biglietto
|
||||
if(soloAndata2!=-1){
|
||||
switch ((soloAndata1, soloAndata2)){
|
||||
case (0, 0):
|
||||
totale=prezzoAndata1+prezzoRitorno1-((prezzoAndata1+prezzoRitorno1)*sconto1/100)+prezzoAndata2+prezzoRitorno2-((prezzoAndata2+prezzoRitorno2)*sconto1/100);
|
||||
break;
|
||||
case (0, 1):
|
||||
totale=(prezzoAndata2-(prezzoAndata2*sconto1/100))+(prezzoAndata1-(prezzoAndata1*sconto1/100))+(prezzoRitorno1-(prezzoRitorno1*sconto2/100));
|
||||
break;
|
||||
case (1, 0):
|
||||
totale=(prezzoAndata1-(prezzoAndata1*sconto1/100))+(prezzoAndata2-(prezzoAndata2*sconto1/100))+(prezzoRitorno2-(prezzoRitorno2*sconto2/100));
|
||||
break;
|
||||
case (1, 1):
|
||||
totale=(prezzoAndata1-(prezzoAndata1*sconto2/100))+(prezzoAndata2-(prezzoAndata2*sconto2/100));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(totale>=0){
|
||||
Console.WriteLine("Totale: " +totale);
|
||||
}
|
||||
|
||||
}
|
||||
static int AcquistoBiglietti(){
|
||||
//dichiarazione e inizializzazione variabili
|
||||
string partenza, destinazione;
|
||||
int prezzo;
|
||||
prezzo=0;
|
||||
partenza=SceltaPartenza();
|
||||
if(partenza!="0"){
|
||||
destinazione=SceltaDestinazione();
|
||||
if(destinazione!="0"){
|
||||
prezzo=PrezzoVolo(partenza, destinazione);
|
||||
}
|
||||
}
|
||||
else{
|
||||
prezzo=-1;
|
||||
}
|
||||
return prezzo;
|
||||
}
|
||||
static string SceltaPartenza()
|
||||
{
|
||||
Console.WriteLine("Hello, World!");
|
||||
//dichiarazione e inizializzazione variabili
|
||||
string partenza;
|
||||
partenza=null;
|
||||
int scelta, exit;
|
||||
exit=9;
|
||||
|
||||
//selezione partenza
|
||||
do{
|
||||
Console.WriteLine("Da dove si parte?");
|
||||
Console.WriteLine("1. Milano");
|
||||
Console.WriteLine("2. Bangkok");
|
||||
Console.WriteLine("3. Berlino");
|
||||
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){
|
||||
return Convert.ToString(exit);
|
||||
}
|
||||
else{
|
||||
return partenza;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
static string SceltaDestinazione()
|
||||
{
|
||||
//dichiarazione e inizializzazione variabili
|
||||
string destinazione;
|
||||
destinazione=null;
|
||||
int scelta, exit;
|
||||
exit=9;
|
||||
|
||||
//selezione destinazione
|
||||
do{
|
||||
Console.WriteLine("Dove si vuole andare?");
|
||||
Console.WriteLine("1. Milano");
|
||||
Console.WriteLine("2. Bangkok");
|
||||
Console.WriteLine("3. Berlino");
|
||||
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){
|
||||
return Convert.ToString(exit);
|
||||
}
|
||||
else{
|
||||
return destinazione;
|
||||
}
|
||||
|
||||
}
|
||||
static int PrezzoVolo(string partenza, string destinazione){
|
||||
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;
|
||||
prezzo=-1;
|
||||
|
||||
switch((partenza, destinazione)){
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user