Questions 1-3 in the attached file
BIS 335 Assignment 5 - Spring 2021 Submission Requirements: All files must be named as directed here and saved in your student project on the WebDevBIS335 server in the Assign4 package. All files must have a time/date stamp prior to the due date as noted on Course Site or the penalties for late submission as noted on the syllabus will apply. Please make sure you do the following before submission: ● Read/Understand the Grading Rubric at the top of CourseSite ○ 85% - Functionality (meets requirements as stated) ○ 10% - Programming Conventions ○ 5% - Logical and Efficient ● Read/Understand the Submission Excuses at the top of CourseSite ● Do NOT open or run the project after submission – it will change the time/date stamp Note: All user input MUST be validated for type and reasonableness for this assignment. It is acceptable to use the TextIO methods to validate for type. 1. Password.java (20%) Your program will ask the user for a password he/she would like to create by using friendly prompts, then validate if the password is fulfilling the following two requirements: ● The password should contain no less than 8 characters (including special characters) ● The password should contain at least one of the following special characters: ! “ # $ % & ‘ ( ) * : ; < ==""> ? The password should meet both requirements to be regarded as a valid password. Display a user-friendly corresponding error message to the user when the password does not meet the requirement. Note that you must show both (two) error messages if the input does not match both requirements. Ask the user to create a new password if the previous one is invalid. Continue until the password is valid, and then display a message to the user indicating that the password was successfully created. You MUST include the following methods with the exact method headers shown here: public static boolean pswLength(String GetPassword) This method counts the length of the password, including the special characters. It returns a boolean false if the length of the password is less than 8, and true otherwise. public static boolean pswCharacter(String GetPassword) This method is to validate if the password contains one of the special characters (! “ # $ % & ‘ ( ) * : ; < ==""> ?). It returns a boolean false if the password does not contain a special character in the list, and true otherwise. 2. GrowthRate.java (20%) The sustainable growth rate (SGR) is the maximum rate of growth that a company or social enterprise can sustain without having to finance growth with additional equity or debt. The SGR involves maximizing sales and revenue growth without increasing financial leverage. The formula of SGR is SGR = Return on Equity * (1 - Dividend Payout Ratio). The Dividend Payout Ratio is the ratio of the total amount of dividends paid out to shareholders relative to the net income of the company. Your program will calculate the sustainable growth return of a company. Ask the user the net income per share and return on equity of the company. Assume that the net income per share should be greater than 0 and in U.S. dollars, and the return on equity of a company is greater than 0 but smaller than 200%. Ask the user to input ten possible dividends per share they estimate, and store those ten inputs in an array. Use a user friendly prompt to tell the user to hit enter after each input. Assume the dividend per share is no less than 0 and no greater than the net income per share. Calculate the payout ratio and sustainable growth rate for each dividend per share. Please validate every input, and ask the user to re-enter the input until valid. You MUST include the following methods with the exact method headers shown here: public static double CalculatePayoutRatio(double getDiv, double getNetIncome) This method uses the user inputs of dividend per share and net income per share to calculate the payout ratio. The formula to calculate a payout ratio is Payout Ratio = Dividend/Net Income. This method will return the calculated payout ratio. public static double CalculateGrowthRate(double getRatio, double getROE) This method uses the return on equity from the user and the payout ratio to calculate the sustainable growth rate of a company. The formula for this growth rate is mentioned above. This method will return the sustainable growth rate. Output should follow the following format with everything aligned vertically. Keep two decimal places for all the numbers. Assume the dividend per share is no more than $9,999.00, and the payout ratio and sustainable growth rate is smaller than 1.00. Sample output (Net income per share = 150, ROE = 0.15): Dividend Payout Ratio Sustainable growth rate $ 12.00 0.08 0.14 $ 15.20 0.10 0.13 $ 19.30 0.13 0.13 $ 29.22 0.19 0.12 $ 31.98 0.21 0.12 $ 35.00 0.23 0.11 $ 40.10 0.27 0.11 $ 43.09 0.29 0.11 $ 59.20 0.39 0.09 $ 67.20 0.45 0.08 3. BankChurners.java (60%) The data for this program is for a business manager of a consumer credit card portfolio, who is facing the problem of customer attrition. They want to analyze the data to find out the reason behind this and leverage the same to predict who are likely to drop off More information can be found at: https://www.kaggle.com/sakshigoyal7/credit-card-customers?select=BankChurners.csv Your program reads in data from a file and prints out summary statistics to the console window. There is no user input for this program. The input file is comma delimited with a header row (row 1), which should be skipped and not processed as data. The rest of the rows are data in the format shown in the Appendix of the assignment. Provide a user friendly error message if the file is not found, and then end the program. You should look at the data to become familiar with it. Multiple data input files are provided on CourseSite for your testing, but your program should work for ANY file with the format provided in the Appendix, not just the files provided. We will test your program with another input file, not one of the ones below. You must have all these input files in your Assign5 package. Although these are text files, they are able to be opened with Excel if you want to view the data easier. 1. smallBankChurners.csv: contains no errors and has less rows so you can more easily test your code 2. mediumBankChurners.csv: contains no errors and is a larger data set 3. largeBankChurners.csv: contains no errors and is a much larger data set 4. smallError.csv: contains errors and has less rows so you can more easily test your code 5. mediumError.csv: contains errors and is a larger dataset It is suggested that you first write the program without error checking to read the data and produce the summary statistics below, and then add the error checking. It is possible that the data may contain errors. Your program must detect the errors listed below and, when these errors are detected, skip these input rows and count that row as an error. Even if a row has multiple errors, it is only counted as one error. You are only responsible for validating the following errors (you are not responsible for checking for any other errors besides those listed below): ● Your program should validate that each line in the input file has 11 items delimited by commas; otherwise, the line is an error and should not be processed (in other words, if it has more or less than 11 items. Rows that contain 11 items but have one or more blank items (read in as a blank String) are considered valid except for the cases below. ● Your program should validate that the data for age is a numeric integer between 0 and 120. Otherwise, the line is an error and should not be processed. Blank age data is considered an error. ● Your program should validate that the data for gender is either “M” or “F”, standing for Male and Female. Otherwise, the line is an error and should not be processed. Blank gender data is considered an error. ● Your program should validate that the data for the card category should be “Blue”, “Silver”, “Gold”, or “Platinum”. Otherwise, the line is an error and should not be processed. Blank card category data is considered an error. ● Your program should validate the data for Dependent_count, Months_on_book, and Credit_Limit. The data cannot be negative. Otherwise, the line is an error and should not be processed. Those three data should be integers. Numbers with decimals are not valid. Blank