Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I dont know where to start PLEASE HELP ???? Create a program that interacts with

ID: 3635566 • Letter: I

Question

I dont know where to start PLEASE HELP ????

Create a program that interacts with the user. The code must have 1-7 features:


1. Use at least 4 objects (instances of different classes)
2. Use at least one example of inheritance
3. Use at least 2 loops
4. Use at least 2 selection statements
5. Use a random number
6. Include at least one array
7. Include data validation with proper prompting for valid input when data entered is wrong.

I was thinking about starting by creating a basic design using UML and high level logic design but I don't know where to start if possible can you be visual (flowcharting) or text (pseudocode).

I thought of a program like a Math Tutor program that would do the following:


1. Prompts for the current user’s name
2. Gives instructions
3. Provides a menu of math choices (e.g., +. -, *, /), plus exit
4. Asks users how many questions they want to answer
5. Asks user for highest number to use
6. Displays appropriate math questions with random numbers
7. Keeps track of right and wrong answers
8. Provide any of a number of randomly chosen correct and incorrect answers for feedback
9. Gives feedback on how many questions answered and percent right for that group
10. Returns to menu for possible additional problems
11. When exit chosen shows grand total statistics – correct, attempted, and percent right


• Can you tell me how you met the 7 requirements

Please Help ??????

Explanation / Answer

//Prog 1 // Question .java public class Question { private String question; private String[] choice; private int rightChoice; private int userChoice; private boolean isAnswered; private int questionID; public int getUserChoice() { return userChoice; } public void setUserChoice(int userChoice) { this.userChoice = userChoice; } public Question(String question, String[] choice, int rightChoice,int questionID) { super(); this.question = question; this.choice = choice; this.rightChoice = rightChoice; this.userChoice = 0; this.isAnswered = false; this.questionID = questionID; } public Question() { super(); this.choice = new String[4]; this.rightChoice =0; this.isAnswered = false; } public String[] getChoice() { return choice; } public void setChoice(String[] choice) { this.choice = choice; } public String getQuestion() { return question; } public void setQuestion(String question) { this.question = question; } public int getRightChoice() { return rightChoice; } public void setRightChoice(int rightChoice) { this.rightChoice = rightChoice; } public String toString(){ StringBuffer sb = new StringBuffer(); sb.append("Question:").append(this.question).append(" "); sb.append("Choices:").append(" "); for(int i=0;i=this.noOfTests); } } //Prog 3 //Tester.jabva import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Scanner; public interface Tester { public final int POINTS_PER_Q=10; public void insertQuestion(Question Question ); public int removeQuestion(int index); public void incrementAttmpt(); public void incrementAnswered(); public void incrementCurrectAnswerd(); public void printNextQuestion(Scanner scan); public int validateQuestion(int Choice,Question q); public void printResult(); } //Prog 4 //Test.java import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Scanner; public class Test implements Tester{ private List Questions; private int atemptedQs; private int answeredQs; private int currectAns; private int testID; private int noOfQs; private String subject; public Test(List Questions ,int testID,String subject) { super(); this.Questions = Questions; this.atemptedQs = 0; this.answeredQs = 0; this.currectAns = 0; this.testID = testID; this.noOfQs = this.Questions.size(); this.subject = subject; } public Test(int testID,int noOfQs,String subject) { super(); this.noOfQs = noOfQs; this.atemptedQs = 0; this.answeredQs = 0; this.currectAns = 0; this.testID = testID; this.subject = subject; this.Questions = new ArrayList(); } public int getNoOfQs() { return noOfQs; } public void setNoOfQs(int noOfQs) { this.noOfQs = noOfQs; } public int getTestID() { return testID; } public void setTestID(int testID) { this.testID = testID; } public int getAnsweredQs() { return answeredQs; } public void setAnsweredQs(int answeredQs) { this.answeredQs = answeredQs; } public int getAtemptedQs() { return atemptedQs; } public void setAtemptedQs(int atemptedQs) { this.atemptedQs = atemptedQs; } public int getCurrectAns() { return currectAns; } public void setCurrectAns(int currectAns) { this.currectAns = currectAns; } public List getQuestions() { return Questions; } public void setQuestions(List questions) { Questions = questions; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String toString(){ StringBuffer sb = new StringBuffer(); sb.append("Test ID:").append(this.testID).append(" "); sb.append("Test Subject:").append(this.subject).append(" "); sb.append("No Of Questions:").append(this.noOfQs).append(" "); sb.append("Time:").append("NA").append(" "); return sb.toString(); } public void insertQuestion(Question Question ){ this.Questions.add(Question); } public int removeQuestion(int index){ Question result= new Question(); result.setQuestionID(0); try{ result=this.Questions.remove(index); noOfQs-=1; }catch (Exception e) { } return result.getQuestionID(); } public void incrementAttmpt(){ this.atemptedQs++; } public void incrementAnswered(){ this.answeredQs++; } public void incrementCurrectAnswerd(){ this.currectAns++; } public void printNextQuestion(Scanner scan){ Random random = new Random(this.noOfQs); int qid = 0; int choice = 0; Question newQuestion = null; do{ do{ qid =random.nextInt(this.noOfQs); newQuestion = this.Questions.get(qid); }while(newQuestion.isAnswered() ); System.out.println(newQuestion.toString()); atemptedQs++; do{ if(choice == -1 || choice >3) System.out.println("Enter A valid Choice as (1 or 2 or 3 or 4)"); try{ choice = scan.nextInt(); choice-=1; }catch (Exception e) { e.printStackTrace(); choice = -1; } }while(choice ==-1 || choice >3 ); validateQuestion(choice,newQuestion); }while(answeredQs