// CEIS209 Course Project // Module 3 // Methods and Arrays // Topics: Methods, Arrays // Define constants const string userName = "Jonathan Waugh"; // Replace with your name const string userCourseNumber = "CEIS209"; const string userSession = "May 2025"; // Replace with the session month and year // Declare Lists for storing loan information List loanProvider = new List(); List loanPurpose = new List(); List loanAccountNumber = new List(); List loanDates = new List(); List loanAmount = new List(); List loanInterestRate = new List(); List loanMonthlyInterestRate = new List(); List loanTerm = new List(); List loanNumberOfPayments = new List(); List loanPayment = new List(); // Call Main Menu function, passing lists by reference MainMenu(ref loanProvider, ref loanPurpose, ref loanAccountNumber, ref loanDates, ref loanAmount, ref loanInterestRate, ref loanMonthlyInterestRate, ref loanTerm, ref loanNumberOfPayments, ref loanPayment); // Main Menu Function - receives lists by reference static void MainMenu(ref List loanProvider, ref List loanPurpose, ref List loanAccountNumber, ref List loanDates, ref List loanAmount, ref List loanInterestRate, ref List loanMonthlyInterestRate, ref List loanTerm, ref List loanNumberOfPayments, ref List loanPayment) { while (true) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine(userName + " . " + userCourseNumber + " . " + userSession); Console.WriteLine(DateTime.Now); Console.ResetColor(); Console.WriteLine("Loan Management System"); Console.WriteLine("1. Add Loan"); Console.WriteLine("2. Delete Loan"); Console.WriteLine("3. Display Loan Details"); Console.WriteLine("4. Report"); Console.WriteLine("5. Save to File"); Console.WriteLine("6. Load from File"); Console.WriteLine("7. Exit"); Console.Write("Select an option: "); string input = Console.ReadLine(); switch (input) { case "1": LoanAdd(ref loanProvider, ref loanPurpose, ref loanAccountNumber, ref loanDates, ref loanAmount, ref loanInterestRate, ref loanMonthlyInterestRate, ref loanTerm, ref loanNumberOfPayments, ref loanPayment); break; case "2": LoanDelete(ref loanProvider, ref loanPurpose, ref loanAccountNumber, ref loanDates, ref loanAmount, ref loanInterestRate, ref loanMonthlyInterestRate, ref loanTerm, ref loanNumberOfPayments, ref loanPayment); break; case "3": LoanDetails(ref loanProvider, ref loanPurpose, ref loanAccountNumber, ref loanDates, ref loanAmount, ref loanInterestRate, ref loanMonthlyInterestRate, ref loanTerm, ref loanNumberOfPayments, ref loanPayment); break; case "4": LoanReport(ref loanProvider, ref loanPurpose, ref loanAccountNumber, ref loanDates, ref loanAmount, ref loanInterestRate, ref loanMonthlyInterestRate, ref loanTerm, ref loanNumberOfPayments, ref loanPayment); break; case "5": LoanSave(ref loanProvider, ref loanPurpose, ref loanAccountNumber, ref loanDates, ref loanAmount, ref loanInterestRate, ref loanMonthlyInterestRate, ref loanTerm, ref loanNumberOfPayments, ref loanPayment); break; case "6": LoanLoad(ref loanProvider, ref loanPurpose, ref loanAccountNumber, ref loanDates, ref loanAmount, ref loanInterestRate, ref loanMonthlyInterestRate, ref loanTerm, ref loanNumberOfPayments, ref loanPayment); break; case "7": Console.WriteLine("Exiting program..."); return; default: Console.WriteLine("Invalid option. Try again."); Console.WriteLine("Press Enter to Continue..."); Console.ReadLine(); break; } } } // LoanAdd Function static void LoanAdd(ref List loanProvider, ref List loanPurpose, ref List loanAccountNumber, ref List loanDate, ref List loanAmount, ref List loanInterestRate, ref List loanMonthlyInterestRate, ref List loanTerm, ref List loanNumberOfPayments, ref List loanPayment) { // Declare variables for new loan string new_loanProvider; string new_loanPurpose; string new_loanAccountNumber; DateTime new_loanDate; decimal new_loanAmount; decimal new_loanInterestRate; decimal new_loanMonthlyInterestRate; decimal new_loanTerm; decimal new_loanNumberOfPayments; decimal new_loanPayment; // Get Loan Information Console.Clear(); Console.WriteLine("Loan Information ---"); Console.Write("Please enter the provider of the loan (Enter for ABC Bank):"); new_loanProvider = Console.ReadLine(); new_loanProvider = new_loanProvider == "" ? "ABC Bank" : new_loanProvider; Console.Write("Please enter the purpose of the loan (Example \"Pickup Truck 1\"):"); new_loanPurpose = Console.ReadLine(); Console.Write("Please enter the account number of the loan (Example \"123456\"):"); new_loanAccountNumber = Console.ReadLine(); string currentDate = DateTime.Now.ToString("M/d/yyyy"); Console.Write("Please enter the initiation date of the loan (Enter for " + currentDate + "):"); string loanDateInput = Console.ReadLine(); new_loanDate = loanDateInput == "" ? DateTime.Now : Convert.ToDateTime(loanDateInput); while (true) { Console.Write("Please enter the loan amount (Example \"75000\"): "); new_loanAmount = Convert.ToDecimal(Console.ReadLine()); if (new_loanAmount > 0 && new_loanAmount <= 250000) { break; } else { Console.WriteLine("Invalid input. Please enter a value greater than zero and less than or equal to 250,000."); } } while (true) { Console.Write("Please enter the interest rate (Example: 5.25 for 5.25%):"); new_loanInterestRate = Convert.ToDecimal(Console.ReadLine()); if (new_loanInterestRate > 0 && new_loanInterestRate <= 25) { break; } else { Console.WriteLine("Invalid input. Please enter a value greater than zero and less than or equal to 25."); } } while (true) { Console.Write("Please enter the loan term in years:"); new_loanTerm = Convert.ToDecimal(Console.ReadLine()); if (new_loanTerm > 0 && new_loanTerm <= 30) { break; } else { Console.WriteLine("Invalid input. Please enter a value greater than zero and less than or equal to 30."); } } // Calculate Monthly Payment new_loanMonthlyInterestRate = new_loanInterestRate / 1200; new_loanNumberOfPayments = new_loanTerm * 12; new_loanPayment = new_loanAmount * (new_loanMonthlyInterestRate * (decimal)Math.Pow((double)(1 + new_loanMonthlyInterestRate), (double)new_loanNumberOfPayments)) / ((decimal)Math.Pow((double)(1 + new_loanMonthlyInterestRate), (double)new_loanNumberOfPayments) - 1); // Add loan to lists loanProvider.Add(new_loanProvider); loanPurpose.Add(new_loanPurpose); loanAccountNumber.Add(new_loanAccountNumber); loanDate.Add(new_loanDate); loanAmount.Add(new_loanAmount); loanInterestRate.Add(new_loanInterestRate); loanMonthlyInterestRate.Add(new_loanMonthlyInterestRate); loanTerm.Add(new_loanTerm); loanNumberOfPayments.Add(new_loanNumberOfPayments); loanPayment.Add(new_loanPayment); Console.WriteLine("Loan added successfully."); Console.WriteLine("Press Enter to continue ..."); Console.ReadLine(); } // Delete Loan Function static void LoanDelete(ref List loanProvider, ref List loanPurpose, ref List loanAccountNumber, ref List loanDates, ref List loanAmount, ref List loanInterestRate, ref List loanMonthlyInterestRate, ref List loanTerm, ref List loanNumberOfOffers, ref List loanPayment) { Console.Clear(); Console.WriteLine("Function Under Construction..."); Console.WriteLine("Press Enter to continue ..."); Console.ReadLine(); } // Display Loan Details Function static void LoanDetails(ref List loanProvider, ref List loanPurpose, ref List loanAccountNumber, ref List loanDates, ref List loanAmount, ref List loanInterestRate, ref List loanMonthlyInterestRate, ref List loanTerm, ref List loanNumberOfPayments, ref List loanPayment) { //Display Loan Details for each loan using a loop Console.Clear(); Console.WriteLine("Loan Details ---"); // Print column headings Console.WriteLine("{0,10} {1,15} {2,15} {3,20} {4,15} {5,15} {6,20} {7,20} {8,20}", "Loan", "Provider", "Purpose", "Account Number", "Date", "Amount", "Interest Rate", "Term", "Monthly Payment"); // Print a separator line Console.WriteLine(new string('-', 170)); // Print loan details in columns for (int i = 0; i < loanProvider.Count; i++) { Console.WriteLine("{0,10} {1,15} {2,15} {3,20} {4,15} {5,15} {6,20} {7,20} {8,20}", "Loan " + (i + 1), loanProvider[i], loanPurpose[i], loanAccountNumber[i], loanDates[i].ToString("MM/dd/yyyy"), loanAmount[i].ToString("C"), loanInterestRate[i].ToString(), loanTerm[i] + " years", loanPayment[i].ToString("C")); } Console.WriteLine(); Console.WriteLine("Press Enter to continue ..."); Console.ReadLine(); } // Display Loan Report Function static void LoanReport(ref List loanProvider, ref List loanPurpose, ref List loanAccountNumber, ref List loanDates, ref List loanAmount, ref List loanInterestRate, ref List loanMonthlyInterestRate, ref List loanTerm, ref List loanNumberOfOffers, ref List loanPayment) { Console.Clear(); Console.WriteLine("Function Under Construction..."); Console.WriteLine("Press Enter to continue ..."); Console.ReadLine(); } // Save Loan Information to File Function static void LoanSave(ref List loanProvider, ref List loanPurpose, ref List loanAccountNumber, ref List loanDates, ref List loanAmount, ref List loanInterestRate, ref List loanMonthlyInterestRate, ref List loanTerm, ref List loanNumberOfOffers, ref List loanPayment) { Console.Clear(); Console.WriteLine("Function Under Construction..."); Console.WriteLine("Press Enter to continue ..."); Console.ReadLine(); } // Load Loan Information from File Function static void LoanLoad(ref List loanProvider, ref List loanPurpose, ref List loanAccountNumber, ref List loanDates, ref List loanAmount, ref List loanInterestRate, ref List loanMonthlyInterestRate, ref List loanTerm, ref List loanNumberOfOffers, ref List loanPayment) { Console.Clear(); Console.WriteLine("Function Under Construction..."); Console.WriteLine("Press Enter to continue ..."); Console.ReadLine(); } // End of Program