// zugriff rückgabetyp name (parameter) static void Main(string[] args) { Dictionary <string, double> uStListe = new Dictionary <string, double>(); uStListe.Add("DE", 19); uStListe.Add("GB", 15); uStListe.Add("NL", 21); uStListe.Add("RU", 30); Bestellzeile[] bestellung = new Bestellzeile[] { new Bestellzeile { bezeichnung = "Laptop", einzelpreis = 782.99, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Tablet", einzelpreis = 186.49, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Phone ", einzelpreis = 87.99, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Printer", einzelpreis = 236.39, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Desktop", einzelpreis = 986.99, bestellmenge = 0, zeilenpreis = 0.0 } }; double uStSatz = landesauswahl(uStListe); int oldCursorTop = 9; ConsoleKeyInfo cki; do { int startLeft = 4; int startTop = 8; int breiteBez = 7; int breiteEp = 7; SetCursorPosition(startLeft, startTop); Write("Bezeichnung\tE.Preis\tBestellmenge\tPreis"); ForegroundColor = Yellow; double gesamtpreis = 0; foreach (Bestellzeile zeile in bestellung) { SetCursorPosition(4, ++CursorTop);; Write("{0,-7}\t{1,7:F2}\t{2,6:D}\t{3,13:F2}", zeile.bezeichnung, zeile.einzelpreis, zeile.bestellmenge, zeile.zeilenpreis); gesamtpreis += zeile.zeilenpreis; } // hinweiseAusgeben(22, 22, Blue); CursorSize = 10; SetCursorPosition(startLeft, 18); Write("Gesamtpreis: {0,12:F2}", gesamtpreis); hinweiseAusgeben(ustBerechnen(gesamtpreis, uStSatz)); SetCursorPosition(breiteBez + 8 + breiteEp + 8, oldCursorTop); cki = Console.ReadKey(true); if (!Char.IsNumber(cki.KeyChar)) { switch (cki.Key.ToString()) { case "UpArrow": SetCursorPosition(CursorLeft, (CursorTop > startTop + 1) ? --CursorTop : CursorTop); break; case "DownArrow": SetCursorPosition(CursorLeft, (CursorTop < (startTop + 5)) ? ++CursorTop : CursorTop); break; case "RightArrow": bestellung[CursorTop - 9].bestellmenge++; bestellung[CursorTop - 9].zeilenpreis += bestellung[CursorTop - 9].einzelpreis; break; case "LeftArrow": if (bestellung[CursorTop - 9].bestellmenge > 0) { bestellung[CursorTop - 9].bestellmenge--; bestellung[CursorTop - 9].zeilenpreis -= bestellung[CursorTop - 9].einzelpreis; } break; default: break; } oldCursorTop = CursorTop; } else { int num = int.Parse(cki.KeyChar.ToString()); bestellung[CursorTop - 9].bestellmenge = num; bestellung[CursorTop - 9].zeilenpreis = num * bestellung[CursorTop - 9].einzelpreis; Write(num); } } while (cki.Key != ConsoleKey.Escape); ReadLine(); } // end of main
static void Main(string[] args) { Title = "Detlev's Computer Laden"; Dictionary <string, double> landMwst = new Dictionary <string, double>(); landMwst.Add("DE", 0.19); landMwst.Add("NL", 0.21); landMwst.Add("SW", 0.25); landMwst.Add("FR", 0.16); Bestellzeile[] bestellung = new Bestellzeile[] { new Bestellzeile { bezeichnung = "Laptop", einzelpreis = 782.99, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Tablet", einzelpreis = 186.49, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Phone ", einzelpreis = 87.99, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Printer", einzelpreis = 236.39, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Desktop", einzelpreis = 986.99, bestellmenge = 0, zeilenpreis = 0.0 } }; BackgroundColor = White; Clear(); string dateString = $"Heute: {DateTime.Now.ToLongDateString()}"; string timeString = $" {DateTime.Now.ToString("hh:mm:ss")}"; int lengthDateTimeNow = dateString.Length; int lengthTimeNow = timeString.Length; int maxWidth = LargestWindowWidth; int maxHeight = LargestWindowHeight; int topLine = 0; SetWindowSize(maxWidth / 2, maxHeight / 2); SetCursorPosition(maxWidth / 2 - lengthDateTimeNow, topLine); ForegroundColor = Red; WriteLine(dateString); ForegroundColor = DarkGreen; SetCursorPosition(maxWidth / 2 - lengthDateTimeNow - 2, topLine + 1); WriteLine("Uhrzeit:"); SetCursorPosition(maxWidth / 2 - lengthTimeNow, topLine + 1); WriteLine(timeString); int oldCursorTop = 9; ConsoleKeyInfo cki; bool mwstGesetzt = false; //double steuerSatz = mehrwertsteuersatz(landMwst); double steuerSatz = 0.0; //WriteLine("\n{0}", landMwst["D"]); do { int startLeft = 4; int startTop = 8; int breiteBez = 7; int breiteEp = 7; SetCursorPosition(startLeft, startTop); ForegroundColor = Black; Write("Bezeichnung\tE.Preis\tBestellmenge\tPreis"); ForegroundColor = Blue; double gesamtpreis = 0; foreach (Bestellzeile zeile in bestellung) { SetCursorPosition(4, ++CursorTop);; Write("{0,-7}\t{1,7:F2}\t{2,6:D}\t{3,13:F2}", zeile.bezeichnung, zeile.einzelpreis, zeile.bestellmenge, zeile.zeilenpreis); gesamtpreis += zeile.zeilenpreis; } hinweiseAusgeben(startLeft, startTop - 5, Red); CursorSize = 10; /* while (!mwstGesetzt) * { * SetCursorPosition(startLeft, 18); * WriteLine("Bitte geben Sie ihr Mehrwertsteuersatz an: "); * SetCursorPosition(startLeft, 19); * foreach (KeyValuePair<string, double> kvp in landMwst) * { * Write("{0} : {1:P}\t", kvp.Key, kvp.Value); * } * auswahl = ReadLine(); * double satz = 0.0; * if(landMwst.TryGetValue(auswahl, out satz)){ * mwstGesetzt = true; * } * else * { * Write("\nLand nicht gefunden, bitte versuchen Sie es nochmahl!"); * } * * }*/ SetCursorPosition(startLeft, 20); Write("Gesamtpreis: {0,8:F2}", gesamtpreis); // Write("\n Mehrwertsteuer: {0,8:F2}", mwstBerechnen(0.07,gesamtpreis)); // Write("\n Summe: {0,8:F2}", gesamtpreis + mwstBerechnen(0.07,gesamtpreis)); if (steuerSatz == 0.0) { steuerSatz = mehrwertsteuersatz(landMwst); } summeBerechnen(gesamtpreis, ConsoleColor.DarkGreen, /*landMwst[auswahl]*/ steuerSatz); SetCursorPosition(breiteBez + 8 + breiteEp + 8, oldCursorTop); cki = Console.ReadKey(true); if (!Char.IsNumber(cki.KeyChar)) { switch (cki.Key.ToString()) { case "UpArrow": SetCursorPosition(CursorLeft, (CursorTop > startTop + 1) ? --CursorTop : CursorTop); break; case "DownArrow": SetCursorPosition(CursorLeft, (CursorTop < (startTop + 5)) ? ++CursorTop : CursorTop); break; case "RightArrow": bestellung[CursorTop - 9].bestellmenge++; bestellung[CursorTop - 9].zeilenpreis += bestellung[CursorTop - 9].einzelpreis; break; case "LeftArrow": if (bestellung[CursorTop - 9].bestellmenge > 0) { bestellung[CursorTop - 9].bestellmenge--; bestellung[CursorTop - 9].zeilenpreis -= bestellung[CursorTop - 9].einzelpreis; } break; default: break; } oldCursorTop = CursorTop; } else { int num = int.Parse(cki.KeyChar.ToString()); bestellung[CursorTop - 9].bestellmenge = num; bestellung[CursorTop - 9].zeilenpreis = num * bestellung[CursorTop - 9].einzelpreis; Write(num); } } while (cki.Key != ConsoleKey.Escape); ReadLine(); } // end of main
static double mwst; // hier wird die mwst angegeben // zugriff Rückgabetyp name (parameter) static void Main(string[] args) { Dictionary <string, double> saetze = new Dictionary <string, double>(); saetze.Add("D7", 0.07); saetze.Add("D19", 0.19); saetze.Add("GB", 0.15); saetze.Add("SW", 0.25); Bestellzeile[] bestellung = new Bestellzeile[] { new Bestellzeile { bezeichnung = "Kaffee ", einzelpreis = 13.00, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Tee ", einzelpreis = 3.20, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Phone ", einzelpreis = 87.99, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Printer", einzelpreis = 236.39, bestellmenge = 0, zeilenpreis = 0.0 }, new Bestellzeile { bezeichnung = "Desktop", einzelpreis = 986.99, bestellmenge = 0, zeilenpreis = 0.0 } }; int oldCursorTop = 9; ConsoleKeyInfo meinKey; do { int startLeft = 4; int startTop = 8; int breiteBez = 7; int breiteEp = 7; SetCursorPosition(startLeft, startTop); Write("Bezeichnung\tE.Preis\tBestellmenge\tPreis"); ForegroundColor = DarkCyan; double gesamtpreis = 0; foreach (Bestellzeile zeile in bestellung) // nimmt zeilenweise Daten { SetCursorPosition(4, ++CursorTop);; Write("{0,-7}\t{1,7:F2}\t{2,6:D}\t{3,13:F2}", zeile.bezeichnung, zeile.einzelpreis, zeile.bestellmenge, zeile.zeilenpreis); // -7 von links, 7 breit gesamtpreis += zeile.zeilenpreis; } hinweiseAusgeben(22, 22, Red); // Aufruf der Funktion CursorSize = 10; SetCursorPosition(startLeft, 18); Write("Gesamtpreis:\t{0:F2}", gesamtpreis); steuerBerechnen(gesamtpreis, 0.19); // steuerBerechnen hier ausgeben: SetCursorPosition(startLeft, CursorTop + 1); Write("Ust beträgt:\t{0:F2}", mwst); SetCursorPosition(startLeft, CursorTop + 3); steuern(saetze); SetCursorPosition(breiteBez + 8 + breiteEp + 8, oldCursorTop); meinKey = Console.ReadKey(true); if (!Char.IsNumber(meinKey.KeyChar)) { switch (meinKey.Key.ToString()) { case "UpArrow": SetCursorPosition(CursorLeft, (CursorTop > startTop + 1) ? --CursorTop : CursorTop); break; case "DownArrow": SetCursorPosition(CursorLeft, (CursorTop < (startTop + 5)) ? ++CursorTop : CursorTop); break; case "RightArrow": bestellung[CursorTop - 9].bestellmenge++; bestellung[CursorTop - 9].zeilenpreis += bestellung[CursorTop - 9].einzelpreis; break; case "LeftArrow": if (bestellung[CursorTop - 9].bestellmenge > 0) { bestellung[CursorTop - 9].bestellmenge--; bestellung[CursorTop - 9].zeilenpreis -= bestellung[CursorTop - 9].einzelpreis; } break; default: break; } oldCursorTop = CursorTop; } else { int num = int.Parse(meinKey.KeyChar.ToString()); bestellung[CursorTop - 9].bestellmenge = num; bestellung[CursorTop - 9].zeilenpreis = num * bestellung[CursorTop - 9].einzelpreis; Write(num); } } while (meinKey.Key != ConsoleKey.Escape); ReadLine(); } // end of main