public Account CreateAccount(AccountsType accountType) { Account account = null; double percent = .1 + ((.3 - .1) * getrandom.NextDouble()); decimal interest = (decimal)(Math.Round(percent, 2) * 100); //to generate random interest rate switch (accountType) { case AccountsType.Checking: account = new CheckingAccount(); account.InterestRate = interest; break; case AccountsType.Business: account = new BusinessAccount(); account.InterestRate = interest; break; case AccountsType.Loan: decimal loan = GetLoanPrompt(); if (loan != 0) { account = new LoanAccount(loan); } account.InterestRate = interest; break; case AccountsType.Term_Deposit: int years = MaturityYears(); if (years != 0) { account = new TermDepositAccount(years); } account.InterestRate = interest; break; default: break; } return(account); }
static void Main(string[] args) { SavingAccount Savings = new SavingAccount(5, 0.2); CheckingAccount Checking = new CheckingAccount(5, 0.2); GlobalSavingsAccount GlobalSavings = new GlobalSavingsAccount(5, 0.2); bool valid = true; while (valid) { Console.WriteLine("Bank Menu \n A: Savings \n B: Checking \n C: GlobalSavings \n Q: Exit"); var ans = Console.ReadLine(); if (ans == "A") { bool validAns = true; while (validAns) { Console.WriteLine("Savings Menu \n A: Deposit \n B: Withdrawal \n" + " C: Close + Report \n R: Return to Bank Menu"); var choice = Console.ReadLine(); if (choice == "A") { Console.WriteLine("Amount of the deposit: "); var amount = Console.ReadLine(); double num; bool isNum = double.TryParse(amount, out num); if (!isNum) { throw new Exception("Must be a number."); } Savings.MakeDeposit(num); Console.WriteLine("Your current balance is: " + Savings.toNAMoneyFormat(Savings.currentBalance, true)); } else if (choice == "B") { Console.WriteLine("Amount of the withdraw: "); var amount = Console.ReadLine(); double num; bool isNum = double.TryParse(amount, out num); if (!isNum) { throw new Exception("Must be a number."); } Savings.MakeWithdraw(num); Console.WriteLine("Your current balance is: " + Savings.toNAMoneyFormat(Savings.currentBalance, true)); } else if (choice == "C") { Console.WriteLine(Savings.CloseAndReport()); } else if (choice == "R") { validAns = false; } else { throw new System.Exception("You must enter A, B, C, or R."); } } } else if (ans == "B") { bool validAns = true; while (validAns) { Console.WriteLine("Checking Menu \n A: Deposit \n B: Withdrawal \n" + " C: Close + Report \n R: Return to Bank Menu"); var choice1 = Console.ReadLine(); if (choice1 == "A") { Console.WriteLine("Amount of the deposit: "); var amount = Console.ReadLine(); double num; bool isNum = double.TryParse(amount, out num); if (!isNum) { throw new Exception("Must be a number."); } Checking.MakeDeposit(num); Console.WriteLine("Your current balance is: " + Checking.toNAMoneyFormat(Checking.currentBalance, true)); } else if (choice1 == "B") { Console.WriteLine("Amount of the withdraw: "); var amount = Console.ReadLine(); double num; bool isNum = double.TryParse(amount, out num); if (!isNum) { throw new Exception("Must be a number."); } Checking.MakeWithdraw(num); Console.WriteLine("Your current balance is: " + Checking.toNAMoneyFormat(Checking.currentBalance, true)); } else if (choice1 == "C") { Console.WriteLine(Checking.CloseAndReport()); } else if (choice1 == "R") { validAns = false; } else { throw new System.Exception("You must enter A, B, C, or R."); } } } else if (ans == "C") { bool validAns = true; while (validAns) { Console.WriteLine("Global Savings Menu \n A: Deposit \n B: Withdrawal \n" + " C: Close + Report \n D: Report Balance USD \n R: Return to Bank Menu"); var choice2 = Console.ReadLine(); if (choice2 == "A") { Console.WriteLine("Amount of the deposit: "); var amount = Console.ReadLine(); double num; bool isNum = double.TryParse(amount, out num); if (!isNum) { throw new Exception("Must be a number."); } GlobalSavings.MakeDeposit(num); Console.WriteLine("Your current balance is: " + GlobalSavings.toNAMoneyFormat(GlobalSavings.currentBalance, true)); } else if (choice2 == "B") { Console.WriteLine("Amount of the withdraw: "); var amount = Console.ReadLine(); double num; bool isNum = double.TryParse(amount, out num); if (!isNum) { throw new Exception("Must be a number."); } GlobalSavings.MakeWithdraw(num); Console.WriteLine("Your current balance is: " + GlobalSavings.toNAMoneyFormat(GlobalSavings.currentBalance, true)); } else if (choice2 == "C") { Console.WriteLine(GlobalSavings.CloseAndReport()); } else if (choice2 == "D") { Console.WriteLine("You have " + GlobalSavings.USValue(0.71) + "(USD)"); } else if (choice2 == "R") { validAns = false; } else { throw new System.Exception("You must enter A, B, C, D, or R."); } } } else if (ans == "Q") { valid = false; } else { throw new System.Exception("You must enter A, B, C, or Q."); } Console.ReadKey(); } Environment.Exit(0); }
static void Main(string[] args) { // Creation of instances classes SavingsAccount sa = new SavingsAccount(5, 0.05); CheckingAccount ca = new CheckingAccount(5, 0.05); GlobalSavingsAccount gsa = new GlobalSavingsAccount(5, 0.05); Console.WriteLine("Hello welcome to Champlain International Bank..."); Console.WriteLine("Login to continue..."); Console.Write("Username: "******"Password (enter random things, this is just for fun): "); Console.ReadLine(); Console.WriteLine("Hello " + name + "\nSelect an option within the menu you would like to interact with: "); bool exit = false; // loop break for Bank menu bool innerExit = false; //loop break for Account menus bool goodDeposit = false; //loop break for deposits bool goodWithdraw = false; //loop break for withdraws //Start of program loop while (exit == false) { innerExit = false; try { Console.WriteLine(" ___________________________"); Console.WriteLine("| Bank Menu |"); Console.WriteLine("|---------------------------|"); Console.WriteLine("| A: Savings Account |"); Console.WriteLine("| B: Checking Account |"); Console.WriteLine("| C: Global Savings Account |"); Console.WriteLine("| Q: Exit |"); Console.WriteLine("| |"); Console.WriteLine("|___________________________|"); string letterAccount = Console.ReadLine(); string letterChoice; //Start of main switch statement switch (letterAccount.Trim().ToLower()) { case "a": case "savings": case "savings account": while (innerExit == false) { try { Console.WriteLine(" ___________________________"); Console.WriteLine("| Savings Menu |"); Console.WriteLine("|---------------------------|"); Console.WriteLine("| A: Deposit |"); Console.WriteLine("| B: Withdrawal |"); Console.WriteLine("| C: Close and Report |"); Console.WriteLine("| R: Return to Bank Menu |"); Console.WriteLine("| |"); Console.WriteLine("|___________________________|"); string balance = sa.Month_current_balance.ToNAMoneyFormat(true); Console.WriteLine("Current Balance: " + balance); letterChoice = Console.ReadLine(); goodDeposit = false; // Resets the deposit loop to keep looping the next time we enter a bad value goodWithdraw = false; // Resets the deposit loop to keep looping the next time we enter a bad value //Start of switch statement for Savings menu switch (letterChoice.Trim().ToLower()) { case "a": case "deposit": //loop for deposit validation while (goodDeposit == false) { try { Console.WriteLine("____________Deposit_____________"); Console.WriteLine("Enter the amount you want to deposit: "); string depositStr = Console.ReadLine().Trim(new char[] { '$', ' ' }); double deposit = Convert.ToDouble(depositStr); if (deposit < 0) { NegativeNumberError(); } else { sa.MakeDeposit(deposit.ToNAMoneyFormatD(true)); Console.WriteLine("Successfully deposited " + deposit.ToNAMoneyFormat(true)); goodDeposit = true; // Exit of loop allowed } } catch (NegativeNumberException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again"); } catch (FormatException) { try { NotNumberError(); } catch (NotNumberException ex) { Console.WriteLine(ex.Message); Console.WriteLine("Try Again"); } } } break; case "b": case "withdraw": //loop for withdraw validation while (goodWithdraw == false) { try { Console.WriteLine("___________Withdrawal___________"); Console.WriteLine("Enter the amount you want to withdraw"); string withdrawStr = Console.ReadLine().Trim(new char[] { '$', ' ' }); double withdraw = Convert.ToDouble(withdrawStr); if (withdraw < 0) { NegativeNumberError(); //No negative numbers } else { sa.MakeWithdraw(withdraw.ToNAMoneyFormatD(true)); goodWithdraw = true; // Exit of loop allowed } } catch (NegativeNumberException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again"); } catch (FormatException) { try { NotNumberError(); } catch (NotNumberException ex) { Console.WriteLine(ex.Message); Console.WriteLine("Try Again"); } } } break; case "c": Console.WriteLine("Closing and Giving Report..."); Console.WriteLine(sa.CloseAndReport()); break; case "r": innerExit = true; break; default: WrongMenuChoice(); break; } //End of switch statement for Savings menu } catch (WrongMenuChoiceException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again (A,B,C,R)"); } } break; case "b": case "checking": case "checking account": while (innerExit == false) { try { goodDeposit = false; goodWithdraw = false; Console.WriteLine(" ___________________________"); Console.WriteLine("| Checking Menu |"); Console.WriteLine("|---------------------------|"); Console.WriteLine("| A: Deposit |"); Console.WriteLine("| B: Withdrawal |"); Console.WriteLine("| C: Close and Report |"); Console.WriteLine("| R: Return to Bank Menu |"); Console.WriteLine("| |"); Console.WriteLine("|___________________________|"); string balance = ca.Month_current_balance.ToNAMoneyFormat(true); Console.WriteLine("Current Balance: " + balance); letterChoice = Console.ReadLine(); //Start of switch statement for Checking Menu switch (letterChoice.Trim().ToLower()) { case "a": case "deposit": //loop for deposit validation while (goodDeposit == false) { try { Console.WriteLine("____________Deposit_____________"); Console.WriteLine("Enter the amount you want to deposit: "); string depositStr = Console.ReadLine().Trim(new char[] { '$', ' ' }); double deposit = Convert.ToDouble(depositStr); if (deposit < 0) { NegativeNumberError(); } else { ca.MakeDeposit(deposit.ToNAMoneyFormatD(true)); Console.WriteLine("Successfully deposited " + deposit.ToNAMoneyFormat(true)); goodDeposit = true; // Exit of loop allowed } } catch (NegativeNumberException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again"); } catch (FormatException) { try { NotNumberError(); } catch (NotNumberException ex) { Console.WriteLine(ex.Message); Console.WriteLine("Try Again"); } } } break; case "b": case "withdraw": //loop for withdraw validation while (goodWithdraw == false) { try { Console.WriteLine("___________Withdrawal___________"); Console.WriteLine("Enter the amount you want to withdraw"); string withdrawStr = Console.ReadLine().Trim(new char[] { '$', ' ' }); double withdraw = Convert.ToDouble(withdrawStr); if (withdraw < 0) { NegativeNumberError(); //No negative numbers } else { ca.MakeWithdraw(withdraw.ToNAMoneyFormatD(true)); goodWithdraw = true; // Exit of inner-loop allowed } } catch (NegativeNumberException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again"); } catch (FormatException) { try { NotNumberError(); } catch (NotNumberException ex) { Console.WriteLine(ex.Message); Console.WriteLine("Try Again"); } } } break; case "c": Console.WriteLine("Closing and Giving Report..."); Console.WriteLine(ca.CloseAndReport()); break; case "r": innerExit = true; // Exit of loop allowed break; default: WrongMenuChoice(); break; } //End of switch statement for Checking Menu } catch (WrongMenuChoiceException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again (A,B,C,R)"); } } break; case "c": case "global": case "global savings": case "global savings account": while (innerExit == false) { try { goodDeposit = false; goodWithdraw = false; Console.WriteLine(" ___________________________ "); Console.WriteLine("| Global Savings Menu |"); Console.WriteLine("|---------------------------|"); Console.WriteLine("| A: Deposit |"); Console.WriteLine("| B: Withdrawal |"); Console.WriteLine("| C: Close and Report |"); Console.WriteLine("| D: Report Balance in USD |"); Console.WriteLine("| R: Return to Bank Menu |"); Console.WriteLine("|___________________________|"); string balance = gsa.Month_current_balance.ToNAMoneyFormat(true); Console.WriteLine("Current Balance: " + balance); letterChoice = Console.ReadLine(); //Start of switch statement for Global Savings menu switch (letterChoice.Trim().ToLower()) { case "a": case "deposit": //loop for deposit validation while (goodDeposit == false) { try { Console.WriteLine("____________Deposit_____________"); Console.WriteLine("Enter the amount you want to deposit: "); string depositStr = Console.ReadLine().Trim(new char[] { '$', ' ' }); double deposit = Convert.ToDouble(depositStr); if (deposit < 0) { NegativeNumberError(); } else { gsa.MakeDeposit(deposit.ToNAMoneyFormatD(true)); Console.WriteLine("Successfully deposited " + deposit.ToNAMoneyFormat(true)); goodDeposit = true; } } catch (NegativeNumberException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again"); } catch (FormatException) { try { NotNumberError(); } catch (NotNumberException ex) { Console.WriteLine(ex.Message); Console.WriteLine("Try Again"); } } } break; case "b": case "withdraw": //loop for withdraw validation while (goodWithdraw == false) { try { Console.WriteLine("___________Withdrawal___________"); Console.WriteLine("Enter the amount you want to withdraw"); string withdrawStr = Console.ReadLine().Trim(new char[] { '$', ' ' }); double withdraw = Convert.ToDouble(withdrawStr); if (withdraw < 0) { NegativeNumberError(); //No negative numbers } else { gsa.MakeWithdraw(withdraw.ToNAMoneyFormatD(true)); goodWithdraw = true; } } catch (NegativeNumberException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again"); } catch (FormatException) { try { NotNumberError(); } catch (NotNumberException ex) { Console.WriteLine(ex.Message); Console.WriteLine("Try Again"); } } } break; case "c": Console.WriteLine("Closing and Giving Report..."); Console.WriteLine(gsa.CloseAndReport()); break; case "d": Console.WriteLine("Total balance: " + gsa.USValue(0.76).ToNAMoneyFormat(true) + " USD"); break; case "r": innerExit = true; break; default: WrongMenuChoice(); break; } //End of switch statement for Global Savings menu } catch (WrongMenuChoiceException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again (A,B,C,D,R)"); } } break; case "q": exit = true; break; default: WrongMenuChoice(); break; } //End of main switch statement } catch (WrongMenuChoiceException e) { Console.WriteLine(e.Message); Console.WriteLine("Try Again (A,B,C,Q)"); } } }