Description
Problem 1 Problem 1 consists of multiple parts. You should finish one part and ensure that it works before moving to the next part. You will need to refactor (rewrite parts of) your code as you move between parts. Only your final program will be graded. Part 1 The use of computers in education is referred to as computer-assisted instruction (CAI). Write a program that will help an elementary school student learn multiplication. Use a SecureRandom object to produce two positive one-digit integers (you will need to look up how to do this). The program should then prompt the user with a question, such as How much is 6 times 7? The student then inputs the answer. Next, the program checks the student’s answer. If it’s correct, display the message “Very good!” and ask another multiplication question. If the answer is wrong, display the message “No. Please try again.>again.” and let the student try the same question repeatedly until the student finally gets it right. A separate method should be used to generate each new question. This method should be called once when the application begins execution and each time the user answers the question correctly. Part 2 Modify the program from Part 1 so that various comments are displayed for each answer as follows: Possible responses to a correct answer: Very good! Excellent! Nice work! Keep up the good work! Possible responses to an incorrect answer:
No. Please try again. Wrong. Try once more. Don’t give up! No. Keep trying. Use random-number generation to choose a number from 1 to 4 that will be used to select one of the four appropriate responses to each correct or incorrect answer. Use a switch statement to issue the responses. Part 3 Modify the program from Part 2 to use your question generation method to ask the student 10 different questions. Give students only one chance at answering each question. Count the number of correct and incorrect responses typed by the student. After the program has asked 10 questions, and the student types 10 answers, your program should calculate the percentage that are correct. If the percentage is lower than 75%, display “Please ask your teacher for extra help.”, then reset the program so another student can try it. If the percentage is 75% or higher, display “Congratulations, you are ready to go to the next level!”, then reset the program so another student can try it. Part 4 Modify the program from Part 3 to allow the user to enter a difficulty level. At a difficulty level of 1, the program should use only single-digit numbers in the problems; at a difficulty level of 2, numbers as large as two digits, and so on. Allow for four levels of difficulty. Part 5 Modify the program from Part 4 to allow the user to pick a type of arithmetic problem to study. An option of 1 means addition problems only, 2 means multiplication problems only, 3 means subtraction problems only, 4 means division problems only and 5 means a random mixture of all these types. Problem 2 Create class SavingsAccount. Use a static variable annualInterestRate to store the annual interest rate for all account holders. Each object of the class contains a private instance variable savingsBalance indicating the amount the saver currently has on deposit. Provide method calculateMonthlyInterest to calculate the monthly interest by multiplying the savingsBalance by Assignment 3 Rubric (1) annualInterestRate divided by 12—this interest should be added to savingsBalance. Provide a static method modifyInterestRate that sets the annualInterestRate to a new value. Write a program to test class SavingsAccount. Instantiate two SavingsAccount objects, saver1 and saver2, with balances of $2000.00 and $3000.00, respectively. Set annualInterestRate to 4%, then calculate the monthly interest for each of 12 months and print the new balances for both savers. Next, set the annualInterestRate to 5%, calculate the next month’s interest and print the new balances for both savers.
Criteria Ratings Pts 1 pts 1 pts 1 pts 1 pts 1 pts 1 pts 1 pts 1 pts 1 pts Problem 1: A SecureRandom object is used to generate random number 1 pts Full Marks 0 pts No Marks Problem 1: Program displays randomly generated questions and prompts student for answer 1 pts Full Marks 0 pts No Marks Problem 1: Program stores student response in a double precision floating-point variable 1 pts Full Marks 0 pts No Marks Problem 1: Program uses floating-point comparison to determine if the students answer is correct 1 pts Full Marks 0 pts No Marks Problem 1: Program displays the proper response message based on the correctness of the student’s answer 1 pts Full Marks 0 pts No Marks Problem 1: Program is able to display multiple positive and negative responses, based on student correctness 1 pts Full Marks 0 pts No Marks Problem 1: The specific response displayed to students is determined randomly from within the proper set of responses 1 pts Full Marks 0 pts No Marks Problem 1: Program shall run the user through 10 questions per session 1 pts Full Marks 0 pts No Marks Problem 1: Program shall display the number of correct and incorrect responses at the end of a session 1 pts Full Marks 0 pts No Marks
Criteria Ratings Pts 1 pts 1 pts 1 pts 1 pts 1 pts 1 pts 1 pts 1 pts 2 pts Problem 1: Program shall display a message indicating whether or not the student is ready to advance at the end of a session 1 pts Full Marks 0 pts No Marks Problem 1: Program shall ask the user if they wish to begin a new session once the current session has terminated 1 pts Full Marks 0 pts No Marks Problem 1: Program shall reset its state when a new session is started 1 pts Full Marks 0 pts No Marks Problem 1: Program shall terminate when the user no longer wishes to start a new session 1 pts Full Marks 0 pts No Marks Problem 1: The first thing a student is prompted for when starting a session is a difficulty level of 1, 2, 3, or 4 1 pts Full Marks 0 pts No Marks Problem 1: The number of digits in each number of problem correspond to the difficulty level (1 = 1 digit, 2 = 2 digit, 3 = 3 digit, 4 = 4 digit) 1 pts Full Marks 0 pts No Marks Problem 1: The second thing a student is prompted for when starting a session is the type of problem to be studied: 1, 2, 3, 4, or 5 1 pts Full Marks 0 pts No Marks Problem 1: Problems presented to students during a session reflect the selected problem type (1 is addition only, 2 is multiplication only, 3 is subtraction only, 4 is division only, and 5 is a mix of addition, subtraction, multiplication, and division.) 1 pts Full Marks 0 pts No Marks Problem 1: A method is used to generate the questions 2 pts Full Marks 0 pts No Marks
Criteria Ratings Pts 2 pts 2 pts 2 pts 5 pts 1 pts 1 pts 1 pts 1 pts 2 pts Problem 1: A method is used to generate the response 2 pts Full Marks 0 pts No Marks Problem 1: A method is used to determine the difficulty level 2 pts Full Marks 0 pts No Marks Problem 1: A method is used to determine the problem type 2 pts Full Marks 0 pts No Marks Problem 1: IntelliJ project is stored on GitHub 5 pts Full Marks 0 pts No Marks Problem 2: Class named SavingsAccount exists 1 pts Full Marks 0 pts No Marks Problem 2: annualInterestRate is a private class variable 1 pts Full Marks 0 pts No Marks Problem 2: savingsBalance is a private instance variable 1 pts Full Marks 0 pts No Marks Problem 2: calculateMonthlyInterest is a public instance method 1 pts Full Marks 0 pts No Marks Problem 2: calculateMonthlyInterest is correctly implemented 2 pts Full Marks 0 pts No Marks
Criteria Ratings Pts 1 pts 2 pts 1 pts 1 pts 1 pts 1 pts 1 pts 5 pts 1 pts Problem 2: modifyInterestRate is a public class method 1 pts Full Marks 0 pts No Marks Problem 2: modifyInterestRate is correctly implemented 2 pts Full Marks 0 pts No Marks Problem 2: Test program instantiates two SavingsAccount objects 1 pts Full Marks 0 pts No Marks Problem 2: Test program sets the annualInterestRate to 4% 1 pts Full Marks 0 pts No Marks Problem 2: Test program calculates the monthly interest for each of the 12 months and prints the balances for both SavingsAccount instances. 1 pts Full Marks 0 pts No Marks Problem 2: Test program sets the annualInterestRate to 5% 1 pts Full Marks 0 pts No Marks Problem 2: Test program calculates the monthly interest for the next month’s interest and prints the balances for both SavingsAccount instances. 1 pts Full Marks 0 pts No Marks Problem 2: IntelliJ project is stored on GitHub 5 pts Full Marks 0 pts No Marks Problem 2: Test program is in a class called Application 1 pts Full Marks 0 pts No Marks

