6 svar
183 visningar
Lazcano 8
Postad: 6 dec 2023 15:52 Redigerad: 6 dec 2023 15:53

Bank simulator, spara med avksatning. c#


            //Välkomns text 

            Console.WriteLine("                                                        -------------");
            Console.WriteLine("-------------------------------------------------------|AMO´S BANKING|-------------------------------------------------");
            Console.WriteLine("                                                        -------------");
            Console.WriteLine("Välkommen var vänlig och välj en av alternativen:");
            Console.WriteLine("----------------------------------------");

            int insättning = 0;
            int uttag = 0;
            int saldo = 0;
            int årsinsättning = 0;
            int räntinsatts = 0;
            int antalår = 0;

            bool running = true;
            while (running) 
         
            {
                //Meny över bank valen

                Console.WriteLine("[I]nsättning:");
                Console.WriteLine("[U]ttag:");
                Console.WriteLine("[S]aldo");
                Console.WriteLine("[R]äntebesparing:");
                Console.WriteLine("[A]vsluta");
                
                //Input som användaren skriver in

                string alternativ = Console.ReadLine();
                
                switch (alternativ)
               
                
                {
                 
                
                //Insättning kodstycket

                  case "I":
                  case "i":

                      Console.WriteLine("Hur mycket vill du sätta in?");
                      Console.WriteLine("----------------------------");
                      insättning = int.Parse(Console.ReadLine());
                      saldo = insättning + saldo;

                     break;

                 
                //Uttags kodstycket

                  case "U":
                  case "u":

                      Console.WriteLine("Hur mycket vill du ta ut?");
                      Console.WriteLine("----------------------------");
                      uttag = int.Parse(Console.ReadLine());
                      saldo = saldo - uttag; 
                      Console.WriteLine("Tillgängligt:" + (saldo) + "kr");

                     break;


                //Saldo kodstycket 

                  case "S":
                  case "s":

                      Console.WriteLine("Tillgängligt:" + saldo + "kr");
                      Console.WriteLine("----------------------------");

                     break;


                  //Räntespar kodstycket

                  case "R":
                  case "r":

                        Console.WriteLine("Årligt insättningsbelopp:");
                        int årsinsätning = int.Parse(Console.ReadLine());
                        Console.WriteLine("Räntesats:");
                        int räntsatts = int.Parse(Console.ReadLine());
                        Console.WriteLine("Antal år:");
                        int årantal = int.Parse(Console.ReadLine());

                        break;

                        int totalsparat = 0;
                        årantal = 1;

                        for
                         { 

                
                        
                         }



                    //Avslut kodstycket

                  case "A":
                  case "a":
                       Console.WriteLine("Tack för du väljer Amo´s Banking");
                       Console.WriteLine("Ha en fortsatt trevlig dag, hej då!");

                       running = false;
                     break;





                    default:


                        Console.WriteLine("Skriv in rätt kommando:");

                  break;

            }

            
            

            }






            Console.ReadLine();

 


Hej alla!

Jag har en uppgift där jag måste göra en bank simulator. sätta in, ta ut, kolla saldo och kunna spara med avkastning. Har kunnat lösa allt utom sparandet med avkastning, jag vet inte hur jag ska kunna ta mig vidare. Enligt min lärare ska användaren knappa in hur mycket man vill spara årligen (belopp), hur mycket ränta man vill ha (avkastning) och för hur många år man vill spara. Sedan ska mitt program räkna ut o visa hur mycket användaren kan tjäna totalt. Vet att man ska använda sig av loop men vet liksom inte vart jag ska börja. :(

Uppskatar all hjälp jag får!

anders_k Online 234
Postad: 6 dec 2023 16:18 Redigerad: 6 dec 2023 16:24

I loopen

Belopp = Belopp * (1 .0+ räntsatts/100.0)

tänk på att Belopp inte skall vara heltal.

Lazcano 8
Postad: 6 dec 2023 21:34 Redigerad: 6 dec 2023 21:57

 

     for (int i = 0; i < årantal; i++)
     {
    
       totalsparat = totalsparat + årsinsätning;
       double increase = totalsparat * räntsatts;
       totalsparat += increase;

       totalsparat = totalsparat * (1.0 + räntsatts / 100.0);
      Console.WriteLine("År:" + i + "Total:" + totalsparat + "Ökning:" + increase);
   
  }

break;

När jag testar programmet fungerar allt men när det kommer till relutatet av årliga avskatsningen får jag 

"År:0Total:1210Ökning:1000"

just dem siffrorna får jag för att jag hade skrivit in 100kr i insättningsbelopp, 10% i ränta i 50 år men huvudsaken är att det strular fortfarande :((.

 

någon som kan peka mig åt rätt håll skulle uppskattas

 

anders_k Online 234
Postad: 6 dec 2023 23:40

Du kan göra så här istället:

      double årsinsättning = 100;
      double totalsparat = årsinsättning; // du börjar med 100
      double räntsatts = 0.05; // så slipper du göra om det fr procent hela tiden
      int årantal = 50;

      for (int i = 0; i < årantal; i++)
      {
        double increase = totalsparat * räntsatts;
        totalsparat = totalsparat*(1.0 + räntsatts);
        Console.WriteLine($"År: {i:D2} Total:{totalsparat:F2} Ökning:{increase:F2}");
      }
    }

 

Förresten när du skriver ut saker i C# är det enklare att använda interpolerade strängar som ovan. 

Console.WriteLine($"År:{i} Total:{totalsparat} Ökning:{increase}");
Lazcano 8
Postad: 7 dec 2023 11:25

Antecknar ner alla tips jag får tack ska du ha! :) 

Okej nu verkar det funka men när jag knappar in t.ex 250kr i 5 år med 15% så visar den avkastning på 5 % i 50 år istället och inte det jag knappat in. Ska jag ändra i kodstycket varje gång till den summa jag vill att den ska visa eller hur kan jag skriva om koden det så att oavsett vilken summa, hur länge eller hur mycket % användaren vill spara så ska programmet visa rätt? 

Är det yttligare en till loop eller är det bara fortsätta på samma fast att det är en annan mattematisk lösning?

Det är bara andra vecka som programmerare nånsin så uppskatar verkligen din tid! :)  

anders_k Online 234
Postad: 7 dec 2023 18:30 Redigerad: 7 dec 2023 18:33

Du måste låta användaren mata in värdena, istället för att ha dem konstanta, precis som du gjorde innan.

typ 

      Console.WriteLine("Skriv en räntesatts 1-100%:");
      double räntesatts = double.Parse(Console.ReadLine());
      räntesats = räntesats / 100.0;

Titta också på metoden TryParse istället för att slippa exceptions när du inte skriver in ett nummer utan gör en faceroll på tangentbordet. Jag tror du har alla byggbitar nu att göra detta. Lycka till!

Lazcano 8
Postad: 7 dec 2023 22:32
anders_k skrev:

Du måste låta användaren mata in värdena, istället för att ha dem konstanta, precis som du gjorde innan.

typ 

      Console.WriteLine("Skriv en räntesatts 1-100%:");
      double räntesatts = double.Parse(Console.ReadLine());
      räntesats = räntesats / 100.0;

Titta också på metoden TryParse istället för att slippa exceptions när du inte skriver in ett nummer utan gör en faceroll på tangentbordet. Jag tror du har alla byggbitar nu att göra detta. Lycka till!

Jätteschysst, tack så mycket. Ska klura detta. Tack för byggbitarna! :D 

Svara Avbryt
Close