// Noutaa auton ruudusta jos ruutu löytyy // Laskee parkkeerauksen hinnan ja pyytää maksua // Jos maksu hyväksytään, auto poistetaan parkkihallista public Moottoriajoneuvo nouda(int ruutu) { if (this.parkkipaikat.ElementAtOrDefault(ruutu) == null) { Console.WriteLine("Ruutua {0} ei ole", ruutu); return(null); } if (this.parkkipaikat[ruutu].onVarattu() == false) { Console.WriteLine("Ruudussa {0} ei ole ajoneuvoa", ruutu); return(null); } Parkkipaikka parkkipaikka = this.parkkipaikat[ruutu]; Moottoriajoneuvo ajoneuvo = parkkipaikka.ajoneuvo; bool maksettu = false; string komento = "-1"; while (!maksettu) { Console.WriteLine(); Console.WriteLine("Kulunut aika {0} tuntia", parkkipaikka.kulunutAika()); Console.WriteLine("Parkkeerauksen hinta on {0} €", parkkipaikka.laskeHinta()); Console.Write("Kaiva kuvetta[y/n]: "); // *** Start changes // impeding that a real string is entered // read a char with ReadLine() // and use ToString() to convert a char in string // old code komento = Console.ReadLine(); komento = Console.ReadKey().ToString(); // added to komento = komento.ToUpperInvariant(); // *** End changes if (komento == "n") { Console.WriteLine("Parkkihalli pitää ajoneuvon!\n"); maksettu = true; return(null); } else if (komento == "y") { maksettu = true; } } this.parkkipaikat[ruutu].ajoneuvo = null; return(ajoneuvo); }
// Lisää auton vapaaseen ruutuun public int parkkeeraa(Moottoriajoneuvo auto) { int vapaaRuutu = this.etsiVapaaRuutu(); if (vapaaRuutu >= 0) { this.parkkipaikat[vapaaRuutu].parkkeeraa(auto); } else { Console.WriteLine("Parkkihalli on täynnä"); } return(vapaaRuutu); }
public void kysyTyyppi() { string[] vaihtoehdot = { "a", "m" }; string tyyppi = "-1"; while (!vaihtoehdot.Contains(tyyppi)) { Console.WriteLine("[a] auto\n" + "[m] moottoripyörä\n"); //old code: Console.Write("Anna ajoneuvon tyyppi: "); // Continuosly inserting "bmw" as input Console.Write("Anna ajoneuvon tyyppi [a / m]: "); tyyppi = Console.ReadLine(); // Making lowerChar imput valid too // Old code: nothing tyyppi = tyyppi.ToUpperInvariant(); } switch (tyyppi) { case "a": ajoneuvo = new Auto(); break; case "m": ajoneuvo = new Moottoripyora(); break; } this.vaihe = 2; }
static public void Run() { Console.OutputEncoding = Encoding.UTF8; //Ladataan tiedosto, jossa parkissa olevat autot ja tyhjät ruudut. parkkihalli.lataaParkkipaikat(); //Ladataan fillarit parkkihalli.pyorateline.lataaFillarit(); List <string> vaihtoehdot = Ohjeet.TulostaOhjeet(); Polkupyora fillari = null; int paikka = -1; bool jatka = true; while (jatka) { Console.WriteLine(""); string komento = "-1"; while (vaihtoehdot.IndexOf(komento) < 0) { Console.Write("Anna komento (o näyttää ohjeen): "); komento = Console.ReadLine(); } Parkkeeraaja parkkeeraaja = new Parkkeeraaja(); //Kuunnellaan käyttäjän inputtia switch (komento) { case "o": Ohjeet.TulostaOhjeet(); break; case "p": Console.Clear(); // Etsitään alkuun vapaa ruutu. Jos löytyy, kysytään käyttäjältä ajoneuvon tiedot ja merkataan se vapaaseen ruutuun // Lopuksi tallennetaan parkkipaikat tiedostoon Console.Clear(); if (parkkihalli.etsiVapaaRuutu() < 0) { Console.WriteLine("Parkkihalli on täynnä!"); break; } Console.WriteLine(""); var ajoneuvo = parkkeeraaja.parkkeeraa(); if (ajoneuvo is Auto || ajoneuvo is Moottoripyora) { Moottoriajoneuvo auto = ajoneuvo as Moottoriajoneuvo; paikka = parkkihalli.parkkeeraa(auto); Console.WriteLine("Parkkeerattu paikalle {0}. Tarvitset tätä poistuessasi!", paikka); } parkkihalli.tallennaParkkipaikat(); break; case "f": Console.Clear(); Console.WriteLine("Jätä polkupyörä. HUOM: Ei takeita, että saat omasi takaisin!"); fillari = parkkeeraaja.varastoiFillari(); var tallessa = parkkihalli.pyorateline.parkkeeraa(fillari); parkkihalli.pyorateline.tallennaFillarit(); if (tallessa) { Console.WriteLine("Homma hyvä"); } break; case "n": // Kysytään käyttäjältä ruutu ja poistetaan auto parkkihallista. Lopuksi tallennetaan parkkipaikat tiedostoon Console.Clear(); Moottoriajoneuvo noudettuAjoneuvo = null; int ruutu = parkkeeraaja.kysyRuutu(); noudettuAjoneuvo = parkkihalli.nouda(ruutu); if (noudettuAjoneuvo != null) { Console.WriteLine("Autonne: {0}. Pesty ja puunattu.", noudettuAjoneuvo.kutsumanimi()); parkkihalli.tallennaParkkipaikat(); } //Ohjeet.TulostaOhjeet(); break; case "nf": // Kysytään käyttäjältä ruutu ja poistetaan auto parkkihallista. Lopuksi tallennetaan parkkipaikat tiedostoon Console.Clear(); parkkihalli.pyorateline.Listaa(); paikka = parkkeeraaja.kysyFillariPaikka(); fillari = parkkihalli.pyorateline.nouda(paikka); if (fillari != null) { Console.Write("Fillari: {0}. Pesty ja puunattu. Onko oma [K/E]: ", fillari.kutsumanimi()); string vastaus = ""; while (vastaus != "K" && vastaus != "E") { vastaus = Console.ReadLine(); // I crashed the program adding a " to the input - // the bug can be removed using vastaus = vastaus.Trim(); // Making it comparable also iuf imput on "k" and "e" vastaus = vastaus.ToUpperInvariant(); } if (vastaus == "K") { Console.WriteLine("Sepäs sattui"); } else { Console.WriteLine("Harmi. Kiitos hei!"); } Console.WriteLine(); parkkihalli.pyorateline.tallennaFillarit(); } break; case "l": case "t": // Listaa parkkihallista löytyvät ajoneuvot Console.Clear(); Parkkipaikka parkkipaikka; for (int i = 0; i < parkkihalli.parkkipaikat.Count; i++) { if (parkkihalli.parkkipaikat[i].onVarattu()) { parkkipaikka = parkkihalli.parkkipaikat[i]; var ajoneuvo1 = parkkipaikka.getOccupant(); Console.WriteLine("Ruutu {0}: {1}.", i, ajoneuvo1.kutsumanimi()); if (komento == "t") { Console.WriteLine(" - Parkissa {0} lähtien.", parkkipaikka.parkkeerattuAika.ToString("dd.MM.yyyy klo HH:mm:ss")); Console.WriteLine(" - Hinta tähän asti: {0} €, tunteja {1}", parkkipaikka.laskeHinta(), parkkipaikka.kulunutAika()); } Console.WriteLine(); } else { Console.WriteLine("Ruutu {0}: VAPAA", i); } } Console.WriteLine(); //Ohjeet.TulostaOhjeet(); break; case "lf": // Listaa parkkihallista löytyvät fillarit Console.Clear(); parkkihalli.pyorateline.Listaa(); break; case "c": // Lopettaa ohjelman Console.WriteLine(); Console.WriteLine("Hei hei!"); System.Threading.Thread.Sleep(2000); Environment.Exit(0); break; } } }
public void parkkeeraa(Moottoriajoneuvo ajoneuvo) { this.ajoneuvo = ajoneuvo; this.parkkeerattuAika = DateTime.Now; }
public Parkkipaikka(Moottoriajoneuvo ajoneuvo = null) { this.parkkeeraa(ajoneuvo); }