When i compile to get the survey title the overload


When I compile to get the survey title the overload constructor asks for title name input else the default constructor sets a default name. My code ask for the title and after I enter it hangs until I enter it again

Import java.util.Scanner;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

//package surveyproject;

public class Survey {

//declare variables
private static int respondentID;
public String surveyTitle;
public int initial_menu_Choice;
public int[][] ansArray = new int [3][3];
public String[] questArray = new String [3];
Scanner scan = new Scanner(System.in);

//default constructor
public Survey(){
surveyTitle = "Customer Survey";

}

//constructor with parameter
public Survey(String title){
respondentID = 0;
surveyTitle = title;

}

//method to get survey title
public String getSurveyTitle(){

return surveyTitle;
}

//method to get respondent ID
public int getRespondentID(){
return respondentID;
}

//method to generate respondent ID
public int generateRespondentID(){

//increments the respondent ID
respondentID++;

return respondentID;
}

public void setIntialMenuChoice(int inti_menu_choice){
initial_menu_Choice = inti_menu_choice;
}

//display survey results
public void displaySurveyResults(){
//print name of survey
//print ansArray
System.out.println("Survey: "+ surveyTitle);
System.out.println("Results of the survey: ");
System.out.print("Respondent ID| Q1\tQ2\tQ3 \n");
for(int i = 0; i < 3; i++){
System.out.print(" " + i + " | ");
for(int j = 0; j < 3; j++){
System.out.print(ansArray[i][j]+"\t");
}
System.out.println("\n");
}
}

public void displayQuestionStats(int questNum){
//display response entered for 'questNum'

System.out.println("Question stats for Question: "+questNum+" "+questArray[questNum-1]);
for(int i = 0; i < 3; i++){
System.out.println(ansArray[i][questNum-1]);
}

}

void enterQuestions(){

Scanner scan = new Scanner(System.in);
//user will enter 3 questions to be stored in string array
System.out.println("Enter 3 questions to create a survey");
for(int i = 0; i < 3; i++){
System.out.println("Enter question "+(i+1)+":");
questArray[i] = scan.next();
}

}

public void logResponse(int id, int questNum, int response){
//enter response in the matrix
ansArray[id][questNum] = response;
}

//user to fill in the survey questions
public void completeSurvey(int id){
System.out.println("Respondent "+ id+ " is taking survey");
Scanner inp = new Scanner(System.in);
int resp ;
System.out.println("Answer each question with number between 1 to 5");
for(int i=0; i<3; i++){
System.out.print("Question "+(i+1)+":");

//present question displayed to respondent
presentQuestion(i);

//check to see if input is within parameters
while(!inp.hasNextInt()){
System.out.println("Incorrect! Re-enter your choice: ");
inp.next();
}

resp = inp.nextInt();

//check for value of input between 1 and 5
while(resp < 1 || resp > 5){
System.out.print("Incorrect! Re-enter your choice: ");
resp = inp.nextInt();
}

//log the response
logResponse(id, i, resp);

}
}

//returns the number of the question that had the most positive responses.
public int topRatedQuestion(){

int countArr[] = new int[3];
int count;
//loop through respondentMatrix and find ques which has response of 5
for(int questNum = 0; questNum < 3; questNum++){
count=0;
for(int id = 0; id < 3; id++){
if(ansArray[id][questNum] == 5)
count++;
}
countArr[questNum]=count;

}

//find ques which has max value of count in countArr
int max = countArr[0];
int topQues=0;
for(int i=0; i<3; i++){
if(max < countArr[i]){
topQues = i;
max = countArr[i];
}
}

return topQues;

}

//returns the number of the question that had the lowest responses.
public int lowRatedQuestion(){
int countArr[] = new int[3];
int count;

//loop through ansArray and find questNum which has response of 1
for(int questNum = 0; questNum < 3; questNum++){
count=0;
for(int id=0; id<3; id++){
if(ansArray[id][questNum] == 1)
count++;
}
countArr[questNum]=count;
}

//find ques which has max value of count in countArr

int min = countArr[0];
int minQues = 0;
for(int i = 0; i < 3; i++){
if(min < countArr[i]){
minQues = i;
min = countArr[i];
}
}

return minQues;
}

//display 'ques' to the user from questions array
public void presentQuestion(int questNum){

//System.out.println("Question"+ques+" requested: ");
System.out.println(questArray[questNum]);
}

//overloaded method: both the respondent ID and the question will be displayed
public void presentQuestion(int questNum, int id){
System.out.println("Respondent "+id +", please respond to the following survey question:");
System.out.println(questArray[questNum]);
}

}

import java.util.Scanner;

public class SurveyConductor {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
String surveyTitle;

System.out.println("Would you like to name your survey? Enter yes or no");

String answer = scan.next();

if(answer.equalsIgnoreCase("yes") || answer.equalsIgnoreCase("y")){

System.out.println("Please enter a name for your survey");
Scanner input = new Scanner(System.in);
surveyTitle = input.next();
Survey s = new Survey(surveyTitle);

}
else{

Survey s = new Survey("Customer Survey");

}
Survey dSurvey = new Survey(scan.next());{
dSurvey.enterQuestions();

}

do{
//respondent id of current respondent
int id = dSurvey.getRespondentID();
System.out.println("Respondent "+ id + "Please answer survey questions");

//respondent fills the survey
dSurvey.completeSurvey(id);

System.out.println("Are there more respondents (yes/no)?");

answer = scan.next();

//respondent id is generated
dSurvey.generateRespondentID();

}

while((dSurvey.getRespondentID() < 3) &&(answer.equals("yes") || answer.equals("Yes")));
//and there are more respondents
//displays survey results
dSurvey.displaySurveyResults();

//find question that had top responses
int top = dSurvey.topRatedQuestion();

System.out.println("Top rated question is: "+(top+1));

//find question that had lowest responses

int low = dSurvey.lowRatedQuestion();

System.out.println("Low rated question is: "+ (low+1));

//ask user to enter a number of question that they want to view

System.out.println("Enter a question number, you want to view "+ "results for: ");

int num = scan.nextInt();

//displays stats for question number entered

dSurvey.displayQuestionStats(num);

}
}

Request for Solution File

Ask an Expert for Answer!!
Basic Computer Science: When i compile to get the survey title the overload
Reference No:- TGS01041337

Expected delivery within 24 Hours