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!
I loopen
Belopp = Belopp * (1 .0+ räntsatts/100.0)
tänk på att Belopp inte skall vara heltal.
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
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}");
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! :)
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!
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