Vinnaren i pepparkakshustävlingen!
2018-01-04, 21:04
  #1
Medlem
Hej!

Enligt koden nedan så fungerar den för att ändra i "egons konto".
Men jag har lite svårigheter att förstå hur man kan använda en constructor för att skapa ett "konto objekt" och spara det i en lista för att sedan kunna använda det i switch case.
Hur anropar man listan så att man kan ändra summan osv på samma sätt som jag kan med egon`?

Kod:
class Program
	{
		public static void Main(string[] args)
		{
			bool tip = true;
			List<Account> lista = new List<Account>();
			lista.Add(new Account("Glenn", 5, 0));
			//Account acc = new Account("Egon",0,0);
			
			while(tip)
			{
				Console.WriteLine("Welcome to Wanker bank");
				Console.WriteLine("1: Display your account");
				Console.WriteLine("2: Add monies");
				Console.WriteLine("3: Remove monies");
				Console.WriteLine("4: Add interest rate");
				Console.WriteLine("5: Quit");
				string a = Console.ReadLine();
				int result;
				int.TryParse(a, out result);
				int deposit = 0;
				int withdraw = 0;
				
				switch(result)
				{
					case 1:	
						acc.DisplayAccount();
						break;
					case 2:
						Console.WriteLine("How much monies would you like to add");
						string b = Console.ReadLine();
						int.TryParse(b, out deposit);
						acc.Deposit(deposit);
						break;
					case 3:
						Console.WriteLine("How much monies would you like to take");
						string c = Console.ReadLine();
						int.TryParse(c, out withdraw);
						acc.Withdraw(withdraw, 0);
						break;
					case 4:
						acc.Addinterest();
						break;
					case 5: 
						Console.WriteLine("Thank you for your patronage");
						tip = false;
						break;
				}

			}
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
	}
}
Kod:
public class Account
	{
		private string name;
		private int accountnumber;
		private double balance;
		private double rate = 0.035;
		
		public Account(string name1, int accountnumber1, double balance1)
		{
			this.name = name1;
			this.accountnumber = accountnumber1;
			this.balance = balance1;
		}
		
		public int AccountNumber
		{
			get{
				return this.accountnumber;
			}
		}
		
		public double Balance
		{
			get{
				return this.balance;
			}
			
			set{
				this.balance = value;
			}
		}
		
		public string Name
		{
			get{
				return this.name;
			}
		}
		
		public void Accounts(string name, int accountnumber, double balance)
		{
			
		}
		
		public double Addinterest()
		{
			double i = 0;
			i = rate * balance;
			balance = i + balance;
			return balance;	
		}
		
		public double Deposit(double amount)
		{
			if(amount < 0)
			{
				Console.WriteLine("Deposit more than 0");
			}
			balance = amount + balance;
			return balance;
			
		}
		
		public void DisplayAccount()
		{
			Console.WriteLine("Name : {0}, AccountNR: {1}, Balance : {2}", name, accountnumber, balance);
		}
		
		public double Withdraw(double amount, double fee)
		{
			if(amount <= balance)
			{
				balance = balance - amount;
				return balance;
			}
			
			return balance;
		}
	
		
	}
Citera
2018-01-04, 21:21
  #2
Medlem
knasen79s avatar
Om du har kontona i en lista så måste du först låta användaren logga in.

Kod:
Console.WriteLine("Login name: ");
string name = Console.ReadLine();
Account acc = lista.Find(o => o.Name == name);

Och så lite säkerhetstänk och felhantering på det så blir det bra ...
__________________
Senast redigerad av knasen79 2018-01-04 kl. 21:32.
Citera
2018-01-04, 21:43
  #3
Medlem
Citat:
Ursprungligen postat av knasen79
Om du har kontona i en lista så måste du först låta användaren logga in.

Kod:
Console.WriteLine("Login name: ");
string name = Console.ReadLine();
Account acc = lista.Find(o => o.Name == name);

Och så lite säkerhetstänk och felhantering på det så blir det bra ...

Ja det fungerade perfekt, jag tackar så hjärtligt!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback