using System; using System.Collections.Generic; // Funktionalitet för att jobba med listor /* * Buggar: * Inmatning stör menyn * Svenska tecken i inmatning fungerar ej * Krasch om insättning är annat än tal - LÖST * Kan ta ut mer pengar än vad som finns på kontot */ /* * Att göra: * Fixa insättning / uttag - KLAR * Skriva ut saldo - KLAR * Metod för vänta - KLAR * Metod för inmatningar - KLAR */ /* * Nästa gång: * Fixa olösta buggar * Bygga om val 3 till att visa transaktioner * Skriva ut saldot i menyn */ namespace banken17TE { class MainClass { /// <summary> /// Skriva ut ett väntmeddelande och väntar på tangenttryck /// </summary> public static void Vänta(string s = "") { Console.WriteLine("{0}\nTryck på valfri tangent för att fortsätta." , s); Console.ReadKey(); } /// <summary> /// Kontrollerar att inmatat tal är av typen int /// </summary> /// <param name="s">Meddelande om typ av inmatning</param> public static int Validera(string s) { bool inOk = false; int inmatning = 0; do { Console.Write(s); try { inmatning = Convert.ToInt32(Console.ReadLine()); inOk = true; } catch (Exception) { Vänta("Du måste ange ett heltal."); } } while (!inOk); return inmatning; } public static void Main(string[] args) { Console.OutputEncoding = System.Text.Encoding.UTF8; Console.Clear(); List<int> transaktioner = new List<int>(); transaktioner.Add(1000); char val; string meny = "######################" + "\nVälkommen till banken" + "\n######################" + "\n1. Insättning" + "\n2. Uttag" + "\n3. Saldo" + "\n0. Avsluta" + "\nAnge ditt val: "; do { Console.Write(meny); val = Console.ReadKey().KeyChar; Console.Clear(); switch(val) { case '1': int insättning; insättning = Validera("Hur mycket vill du sätta in? "); if (insättning > 0) { transaktioner.Add(insättning); } else { Vänta("Insättningen får ej vara negativ."); } break; case '2': int uttag = Validera("Hur mycket vill du ta ut? "); if (uttag > 0) { transaktioner.Add(-uttag); } else { Vänta("Uttaget får inte vara negativt."); } break; case '3': int saldo = 0; foreach (int transaktion in transaktioner) { saldo += transaktion; } Console.WriteLine("Ditt saldo är {0}kr", saldo); Vänta(); break; case '0': Vänta("Du har valt att avsluta programmet"); break; default: Vänta("Felaktig inmatning, försök igen."); break; } } while (val != '0'); } } }
sep 19