Andra tillfället då vi arbetat med banken i C#. Tiden gick lite för fort på slutet så vi hann aldrig testa det som vi skrev i metoden Validate() utan detta måste vi börja med vid nästa tillfälle.
Min tanke är att nästa gång göra klart allt som inte har med lagring i fil att göra, denna del skall jag sedan spela in en film om som ni gör på egen hand nästa torsdag när jag är på konferens.
Tidigare koder hittar du här.
using System; using System.Collections.Generic; // Klass för listor // Buggar // * Radbrytningar vid meddelande // * Svenska tecken vid inmatning // Kvar att göra // * Insättning, validera // * Uttag, funktionalitet + validera // * Allmänt, snygga till utskrifter // * Läs från och spara till fil. // Det sista vi gjorde var att skapa en metod för validering. Denna är inte testad när vi sätter in pengar. namespace Bank_TE18 { class MainClass { // globala variabler public static List<int> transaktioner = new List<int>(); public static void Main(string[] args) { // variabler char menyVal; transaktioner.Add(1000); // Ser till att vi kan skriva ut svenska tecken Console.OutputEncoding = System.Text.Encoding.UTF8; // Programloop do { String meny = "#######################" + "\nVälkommen till banken" + "\nSaldo: {0}kr" + "\n#######################" + "\n1. Insättning" + "\n2. Uttag" + "\n3. Visa transaktioner" + "\n0. Avsluta" + "\nAnge ditt val: "; // Rensa konsollen Console.Clear(); // Skriv ut menyn Console.Write(meny, Saldo()); // Läs in ett tecken menyVal = Console.ReadKey().KeyChar; switch (menyVal) { case '1': // insättning int deposit = Validate("Ange hur mycket pengar du vill sätta in: "); if(deposit > 0) { transaktioner.Add(deposit); } Wait(); break; // Här har jag tagit bort 10-talet rader bortkommenterad kod case '2': // uttag Wait(); break; case '3': // skriv ut saldo Console.WriteLine("\n\nHär listas alla transaktioner"); int i = 1; foreach(int t in transaktioner) { Console.WriteLine("{0}. {1}kr", i++, t); } Wait(); break; case '0': // avsluta Console.WriteLine("Du har valt att avsluta programmet."); break; default: // alla andra inmatningar Wait("Felaktig inmatning, försök igen."); break; } } while (menyVal != '0'); // Avslutande meddelande Console.WriteLine("Tack för ditt besök, välkommen åter!"); } /// <summary> /// Metoden validerar en inmatning /// </summary> /// <param name="s">Meddelande som skrivs ut till användaren</param> /// <returns>Ett validerat värde</returns> public static int Validate(string s="") { // Variabler int amount = 0; bool isOk = false; // Skapa en loop som körs så länge validering ej är ok. do { // Skriv ut meddelande till användaren. Console.WriteLine(s); // prova att hämta in ett heltal, mha try catch try { amount = Convert.ToInt32(Console.ReadLine()); isOk = true; } catch (Exception e) { Wait("Felaktig inmatning"); } } while (!isOk); return amount; } /// <summary> /// Summerar saldot ifrån listans transaktioner. /// </summary> /// <returns>Saldot</returns> public static int Saldo() { int saldo = 0; foreach(int t in transaktioner) { saldo += t; } return saldo; } /// <summary> /// Meddelar användaren ngt och väntar på inmaning /// </summary> /// <param name="s">Meddelande som skrivs ut</param> public static void Wait(string s="") { Console.WriteLine(s); Console.WriteLine("Tryck på valfri tangent för att komma vidare."); Console.ReadKey(); } } }