// Berechnung der Steuerschuld für alle Fahrzeuge public static void CalcSteuerschuld(Fahrzeugliste fl) { double result = 0; foreach (PKW p in fl.pkws) { count++; result += (p.Hubraum + 99) / 100 * 10 * (p.Schadstoffklasse + 1); } foreach (Motorrad m in fl.motorraeder) { count++; result += (m.Hubraum + 99) / 100 * 20; } foreach (LKW l in fl.lkws) { count++; result += l.Zuladung * 100; } Console.WriteLine( "Es wurden insgesamt {0} Fahrzeuge gefunden.\nDie Gesamtsumme beträgt: {1} Euro.\n", count, result ); }
// Berechnung der Steuerschuld (Eingabe KFZ-Kennzeichen) public static bool CalcSteuerschuld(Fahrzeugliste fl, string kennzeichen) { double result = 0; foreach (PKW p in fl.pkws) { if (p.Kennzeichen.Equals(kennzeichen)) { result = (p.Hubraum + 99) / 100 * 10 * (p.Schadstoffklasse + 1); Console.WriteLine( "Bei dem Kennzeichen {0} handelt es sich um ein {1}.\nDie Steuerschuld beträgt: {2} Euro.\n", kennzeichen, p.GetType().Name, result ); return(true); } } foreach (Motorrad m in fl.motorraeder) { if (m.Kennzeichen.Equals(kennzeichen)) { result = (m.Hubraum + 99) / 100 * 20; Console.WriteLine( "Bei dem Kennzeichen {0} handelt es sich um ein {1}.\nDie Steuerschuld beträgt: {2} Euro.\n", kennzeichen, m.GetType().Name, result ); return(true); } } foreach (LKW l in fl.lkws) { if (l.Kennzeichen.Equals(kennzeichen)) { result = l.Zuladung * 100; Console.WriteLine( "Bei dem Kennzeichen {0} handelt es sich um ein {1}.\nDie Steuerschuld beträgt: {2} Euro.\n", kennzeichen, l.GetType().Name, result ); return(true); } } Notification.ErrorMessage("Das Kennzeichen konnte nicht gefunden werden!\n"); return(false); }
public static void Start() { // Initialisierung der vorgegebenen Objekte Fahrzeugliste fl = new Fahrzeugliste(); Parkhaus parkhaus1 = new Parkhaus("Köln", "51105", "Westerwaldstr. 99"); PKW pkw1 = new PKW("VW", "Käfer", "K-GS-01", 1965, 9999, 1000, 30, 1); PKW pkw2 = new PKW("Opel", "Kadett", "K-GS-02", 1964, 12000, 1600, 60, 2); Motorrad mr1 = new Motorrad("BMW", "R1200r", "K-GS-03", 1999, 6000, 1170); LKW lkw1 = new LKW("Mercedes", "LG 315", "K-GS-04", 1960, 23000, 2, 5.5); // Die vorgegebenen Fahrzeuge werden in die Fahrzeugliste eingetragen fl.AddPKW(pkw1); fl.AddPKW(pkw2); fl.AddMotorrad(mr1); fl.AddLKW(lkw1); // Das Parkhaus 1 soll beispielhaft mit 300 Stellplätzen initialisiert werden. // Die vorgegebenen Fahrzeuge werden an ihre korrekten Stellplätze geparkt. // 0-199 für PKWs for (int i = 0; i < 200; i++) { if (i == 100) { Parkplatz p1 = new Parkplatz(100, pkw1, "PKW"); parkhaus1.AddParkplatz(p1); continue; } if (i == 101) { Parkplatz p2 = new Parkplatz(101, pkw2, "PKW"); parkhaus1.AddParkplatz(p2); continue; } Parkplatz pPkw = new Parkplatz(i, "PKW"); parkhaus1.AddParkplatz(pPkw); } // 200-249 für Motorräder for (int i = 200; i < 250; i++) { if (i == 200) { Parkplatz p3 = new Parkplatz(200, mr1, "Motorrad"); parkhaus1.AddParkplatz(p3); continue; } Parkplatz pMotorrad = new Parkplatz(i, "Motorrad"); parkhaus1.AddParkplatz(pMotorrad); } // 250 - 300 für LKWs for (int i = 250; i < 301; i++) { if (i == 300) { Parkplatz p4 = new Parkplatz(300, lkw1, "LKW"); parkhaus1.AddParkplatz(p4); continue; } Parkplatz pLkw = new Parkplatz(i, "LKW"); parkhaus1.AddParkplatz(pLkw); } /* * Das Hauptmenü wird beim Start als erstes angezeigt. * Die Menüführung wird in einzelne Segmente unterteilt und über * lokale Methoden zugänglich gemacht. */ MainMenu(); void MainMenu() { Console.Clear(); bool isActive = true; while (isActive) { Draw.Line("-"); Console.WriteLine("HAUPTMENÜ\n"); Draw.Line("-"); Console.WriteLine( "Willkommen bei der Fahrzeugverwaltung!\n" + "Bitte wählen Sie eine der unten stehenden Zahl aus.\n" ); Console.WriteLine( "1: Fahrzeugmenü\n" + "2: Parkhausmenü\n" + "3: Steuerschuld-Berechnung\n" ); Draw.Line("-"); Console.WriteLine("<-- Fahrzeugverwaltung verlassen (9)\n"); Draw.Line("-"); string userInput = Console.ReadLine(); string[] allowedInput = { "1", "2", "3", "9" }; if (allowedInput.Contains(userInput)) { switch (userInput) { case "1": FahrzeugMenu(); break; case "2": ParkhausMenu(); break; case "3": SteuerschuldMenu(); break; case "9": Console.Clear(); Notification.SuccessMessage( "Die Fahrzeugverwaltung wurde erfolgreich beendet!\n" ); Environment.Exit(0); break; } isActive = false; } else { Console.Clear(); Notification.ErrorMessage("Ihre Eingabe war falsch!\n"); } } } void FahrzeugMenu() { Console.Clear(); bool isActive = true; while (isActive) { Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ\n" ); Draw.Line("-"); Console.WriteLine( "Bitte wählen Sie eine der unten stehenden Zahl aus:\n" + "1: Ausgabe aller PKWs\n" + "2: Ausgabe aller Motorräder\n" + "3: Ausgabe aller LKWs\n" + "4: Ausgabe aller Fahrzeuge\n" + "5: Ausgabe PKW nach Kennzeichen\n" + "6: Ausgabe Motorrad nach Kennzeichen\n" + "7: Ausgabe LKW nach Kennzeichen\n" ); Draw.Line("-"); Console.WriteLine("<-- Zurück (9)\n"); Draw.Line("-"); string userInput = Console.ReadLine(); string userInputKennzeichen; string[] allowedInput = { "1", "2", "3", "4", "5", "6", "7", "9" }; if (allowedInput.Contains(userInput)) { switch (userInput) { case "1": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ >> ALLE PKWs\n" ); Draw.Line("-"); fl.GetPKW(); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); FahrzeugMenu(); break; case "2": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ >> ALLE MOTORRÄDER\n" ); Draw.Line("-"); fl.GetMotorrad(); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); FahrzeugMenu(); break; case "3": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ >> ALLE LKWs\n" ); Draw.Line("-"); fl.GetLKW(); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); FahrzeugMenu(); break; case "4": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ >> ALLE FAHRZEUGE\n" ); Draw.Line("-"); fl.GetAll(); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); FahrzeugMenu(); break; case "5": Console.WriteLine("Bitte geben Sie ein Kennzeichen ein:"); userInputKennzeichen = Console.ReadLine(); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ >> PKW\n" ); Draw.Line("-"); fl.GetPKW(userInputKennzeichen); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); FahrzeugMenu(); break; case "6": Console.WriteLine("Bitte geben Sie ein Kennzeichen ein:"); userInputKennzeichen = Console.ReadLine(); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ >> MOTORRAD\n" ); Draw.Line("-"); fl.GetMotorrad(userInputKennzeichen); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); FahrzeugMenu(); break; case "7": Console.WriteLine("Bitte geben Sie ein Kennzeichen ein:"); userInputKennzeichen = Console.ReadLine(); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> FAHRZEUG-MENÜ >> LKW\n" ); Draw.Line("-"); fl.GetLKW(userInputKennzeichen); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); FahrzeugMenu(); break; case "9": MainMenu(); break; } isActive = false; } else { Console.Clear(); Notification.ErrorMessage("Ihre Eingabe war falsch!\n"); } } } void ParkhausMenu() { Console.Clear(); bool isActive = true; while (isActive) { Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ\n" ); Draw.Line("-"); Console.WriteLine( "Bitte wählen Sie eine der unten stehenden Zahl aus:\n" + "1: Ausgabe der Parkhaus-Adresse\n" + "2: Ausgabe aller Stellplatz-Daten\n" + "3: Ausgabe der Stellplatz-Daten nach Kennzeichen\n" + "4: Anlegen und Zuweisen eines Fahrzeugs für ein Parkhaus-Stellplatz\n" ); Draw.Line("-"); Console.WriteLine("<-- Zurück (9)\n"); Draw.Line("-"); string userInput = Console.ReadLine(); string userInputKennzeichen; string[] allowedInput = { "1", "2", "3", "4", "9" }; if (allowedInput.Contains(userInput)) { switch (userInput) { case "1": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ >> PARKHAUS-INFORMATIONEN\n" ); Draw.Line("-"); parkhaus1.GetParkhausInfo(); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); ParkhausMenu(); break; case "2": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ >> PARKPLATZDATEN\n" ); Draw.Line("-"); parkhaus1.GetParkplatzInfo(); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); ParkhausMenu(); break; case "3": Console.WriteLine("Bitte geben Sie ein Kennzeichen ein:"); userInputKennzeichen = Console.ReadLine(); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ >> PARKPLATZDATEN\n" ); Draw.Line("-"); parkhaus1.GetParkplatzInfo(userInputKennzeichen); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); ParkhausMenu(); break; case "4": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ >> PARKPLATZ-ZUWEISUNG\n" ); Draw.Line("-"); string stellplatzID = ""; Console.WriteLine("Haben Sie einen Stellplatz reserviert? (j/n)"); string userConfirmation = Console.ReadLine(); if (userConfirmation == "j") { Console.WriteLine("Geben Sie Ihre Stellplatz-ID ein."); stellplatzID = Console.ReadLine(); } Console.WriteLine("Fahrzeugtyp? (PKW / Motorrad / LKW)"); string typ = Console.ReadLine(); Console.WriteLine("Hersteller?"); string hersteller = Console.ReadLine(); Console.WriteLine("Modell?"); string modell = Console.ReadLine(); Console.WriteLine("Kennzeichen?"); string kennzeichen = Console.ReadLine(); Console.WriteLine("Erstzulassung?"); int year = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Anschaffungspreis?"); double anschaffungspreis = Convert.ToDouble(Console.ReadLine()); if (typ == "PKW") { Console.WriteLine("Hubraum?"); int hubraum = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Leistung?"); int leistung = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Schadstoffklasse?"); int sk = Convert.ToInt32(Console.ReadLine()); PKW newPKW = new PKW( hersteller, modell, kennzeichen, year, anschaffungspreis, hubraum, leistung, sk ); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ >> PARKPLATZ-ZUWEISUNG\n" ); Draw.Line("-"); if (stellplatzID != "") { parkhaus1.SetParkplatz(newPKW, Convert.ToInt32(stellplatzID)); } else { parkhaus1.SetParkplatz(newPKW); } } if (typ == "Motorrad") { Console.WriteLine("Hubraum?"); int hubraum = Convert.ToInt32(Console.ReadLine()); Motorrad newMotorrad = new Motorrad( hersteller, modell, kennzeichen, year, anschaffungspreis, hubraum ); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ >> PARKPLATZ-ZUWEISUNG\n" ); Draw.Line("-"); if (stellplatzID != "") { parkhaus1.SetParkplatz(newMotorrad, Convert.ToInt32(stellplatzID)); } else { parkhaus1.SetParkplatz(newMotorrad); } } if (typ == "LKW") { Console.WriteLine("Achsen?"); int achsen = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Zuladung?"); double zuladung = Convert.ToDouble(Console.ReadLine()); LKW newLKW = new LKW( hersteller, modell, kennzeichen, year, anschaffungspreis, achsen, zuladung ); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> PARKHAUS-MENÜ >> PARKPLATZ-ZUWEISUNG\n" ); Draw.Line("-"); if (stellplatzID != "") { parkhaus1.SetParkplatz(newLKW, Convert.ToInt32(stellplatzID)); } else { parkhaus1.SetParkplatz(newLKW); } } Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); ParkhausMenu(); break; case "9": MainMenu(); break; } isActive = false; } else { Console.Clear(); Notification.ErrorMessage("Ihre Eingabe war falsch!\n"); } } } void SteuerschuldMenu() { Console.Clear(); bool isActive = true; while (isActive) { Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> STEUERSCHULD-MENÜ\n" ); Draw.Line("-"); Console.WriteLine( "Bitte wählen Sie eine der unten stehenden Zahl aus:\n" + "1: Berechnung der Steuerschuld (Eingabe KFZ-Kennzeichen)\n" + "2: Berechnung der Steuerschuld für alle Fahrzeuge\n" ); Draw.Line("-"); Console.WriteLine("<-- Zurück (9)\n"); Draw.Line("-"); string userInput = Console.ReadLine(); string userInputKennzeichen; string[] allowedInput = { "1", "2", "9" }; if (allowedInput.Contains(userInput)) { switch (userInput) { case "1": Console.WriteLine("Bitte geben Sie ein Kennzeichen ein:"); userInputKennzeichen = Console.ReadLine(); Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> STEUERSCHULD-MENÜ >> STEUERSCHULD (KFZ-KENNZEICHEN)\n" ); Draw.Line("-"); Steuerberechnung.CalcSteuerschuld(fl, userInputKennzeichen); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); SteuerschuldMenu(); break; case "2": Console.Clear(); Draw.Line("-"); Console.WriteLine( "HAUPTMENÜ >> STEUERSCHULD-MENÜ >> STEUERSCHULD (GESAMT)\n" ); Draw.Line("-"); Steuerberechnung.CalcSteuerschuld(fl); Draw.Line("-"); Console.WriteLine("<-- Zurück (Beliebige Taste)\n"); Draw.Line("-"); Console.ReadLine(); SteuerschuldMenu(); break; case "9": MainMenu(); break; } isActive = false; } else { Console.Clear(); Notification.ErrorMessage("Ihre Eingabe war falsch!\n"); } } } }