C#-banken, 17TE, del2

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');
        }
    }
}

Lämna ett svar

Din e-postadress kommer inte att publiceras.

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.