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

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|  Q1tQ2tQ3 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);

}

}