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

java programming 5th edition chapter 8 User-Defined Classes and ADTs using Strin

ID: 3785676 • Letter: J

Question

java programming 5th edition chapter 8 User-Defined Classes and ADTs using Strings no Arrays

This is what the output is supposed to look like:

Output for day1:

The current day is

Output for day2:

The current day is Tuesday

New output for day1:

The current day is Friday

Output for day2: Tuesday

The day after Tuesday is Wednesday

The day before Tuesday is Monday

Enter the number of days from Friday: 3

A Monday is 3 days past Friday

Enter the number of days from Tuesday: 12

A Sunday is 12 days past Tuesday

This is the First program I had:

public class Day
{
private String day; //day of the week being converted to a number
private int convertNum; // the number being converted to a day of the week My teacher said to take this one out because there is only one attribute which is day

//default constructor
public Day()
{
day = "";
convertNum = 0;
}//end of default constructor

//values constructor
public Day (String weekDay, int dayNum)
{
day = weekDay;
convertNum = dayNum;
}//end of values constructor

//set methods
public void setConvertDayToNum(String weekDay)
{
day = weekDay;
convertNum = getConvertDayToNum(day);
}

public void setConvertNumToDay(int dayNum)
{
convertNum = dayNum;
day = getConvertNumToDay(convertNum);
}

//Where we convert a number to a day of the week
public String getConvertNumToDay(int convertNum)
{
String day1 = "";
  
switch (convertNum)
{
case 1:
day1 = "Sunday";
break;
case 2:
day1 = "Monday";
break;
case 3:
day1 = "Tuesday";
break;
case 4:
day1 = "Wednesday";
break;
case 5:
day1 = "Thurday";
break;
case 6:
day1 = "Friday";
break;
case 7:
day1 = "Saturday";
break;
}// switch(convertNum)
  
return day1;
}//end of getDay


//Where we convert the day of the week to a number
public int getConvertDayToNum(String day)
{
int conversion = 0;
  
switch (day)
{
case "Sunday":
conversion = 1;
break;
case "Monday":
conversion = 2;
break;
case "Tuesday":
conversion = 3;
break;
case "Wednesday":
conversion = 4;
break;
case "Thursday":
conversion = 5;
break;
case "Friday":
conversion = 6;
break;
case "Saturday":
conversion = 7;
break;

}//end switch(day)
  
return conversion;
}//end of getNewDay

public void calcPrevDay()
{
String day1;
int conversion;
conversion = convertNum - 1;
  
if (conversion == 0)
{
conversion = 7;
}
  
day1 = getConvertNumToDay(conversion);
System.out.print("The day before " + day + " is " + day1);
  
}//end calcPrevDay()

public void calcNextDay()
{
String day1;
int conversion;
conversion = convertNum + 1;
  
if (conversion == 8)
{
conversion = 1;
}
  
day1 = getConvertNumToDay(conversion);
System.out.print(" The day after " + day + " is " + day1);
}//end calcNextDay()

public void calcNewDay(int addOnDays)
{
String newDay = "";
int totDaysNum = 0;
  
totDaysNum = convertNum + addOnDays % 7;
  
if (totDaysNum > 7)
{
totDaysNum = totDaysNum % 7;
}
  
newDay = getConvertNumToDay(totDaysNum);
System.out.print("A " + newDay + " is " + addOnDays + " days past " + day + " ");
}//end calcNewDay

public void printDay()
{
System.out.print("The Current Day is " + day + " ");
}//end printDay()

}//end of class Day

import java.util.*;

public class testDay
{
static Scanner console = new Scanner (System.in);

public static void main (String[]args)
{
//declare local variable
String day = "";
int convertNum = 0;
int addOnDays = 0;
  
Day day1 = new Day();
Day day2 = new Day("Tuesday", 3);
  
System.out.print("Output for day1: ");
day1.printDay();
System.out.println();
  
System.out.print("Output for day2: ");
convertNum = day2.getConvertDayToNum(day);
day2.printDay();
  
System.out.print(" New output for day1: ");
day1.setConvertDayToNum(day);
day1.printDay();
  
System.out.print(" Output for day2: ");
day = console.nextLine();
day2.calcPrevDay();
day2.calcNextDay();
  
System.out.print(" Enter the number of days from Friday: ");
addOnDays = console.nextInt();
day1.calcNewDay(addOnDays);
  
System.out.print(" Enter the number of days from Tuesday: ");
addOnDays = console.nextInt();
day2.calcNewDay(addOnDays);
  
  
}//end main
}//end class testDay

This was my output for that one:

Output for day1:
The Current Day is

Output for day2:
The Current Day is Tuesday

New output for day1:
The Current Day is

Output for day2: Tuesday
The day before Tuesday is Monday
The day after Tuesday is Wednesday

Enter the number of days from Friday: 3
A Tuesday is 3 days past


Enter the number of days from Tuesday: 12
A Sunday is 12 days past Tuesday

----jGRASP: operation complete.

----jGRASP exec: java testDay

Output for day1:
The Current Day is

Output for day2:
The Current Day is Tuesday

New output for day1:
The Current Day is

Output for day2: Sunday
The day before Tuesday is Monday
The day after Tuesday is Wednesday

Enter the number of days from Friday: 3
A Tuesday is 3 days past


Enter the number of days from Tuesday: 12
A Sunday is 12 days past Tuesday

I did what the teacher said and took out the other attribute:

public class Day2
{
private String day; //day of the week being converted to a number

//default constructor
public Day2()
{
day = "";

}//end of default constructor

//values constructor
public Day2 (String weekDay)
{
day = weekDay;
  
}//end of values constructor

//set methods
public void setConvertDayToNum(String weekDay)
{
int convertNum;
  
day = weekDay;
convertNum = getConvertDayToNum(day);
}

public void setConvertNumToDay(int dayNum)
{
int convertNum = 0;
  
convertNum = dayNum;
day = getConvertNumToDay(convertNum);
}

//Where we convert a number to a day of the week
public String getConvertNumToDay(int convertNum)
{
String day1 = "";
  
switch (convertNum)
{
case 1:
day1 = "Sunday";
break;
case 2:
day1 = "Monday";
break;
case 3:
day1 = "Tuesday";
break;
case 4:
day1 = "Wednesday";
break;
case 5:
day1 = "Thurday";
break;
case 6:
day1 = "Friday";
break;
case 7:
day1 = "Saturday";
break;
}// switch(convertNum)
  
return day1;
}//end of getDay


//Where we convert the day of the week to a number
public int getConvertDayToNum(String day)
{
int conversion = 0;
  
switch (day)
{
case "Sunday":
conversion = 1;
break;
case "Monday":
conversion = 2;
break;
case "Tuesday":
conversion = 3;
break;
case "Wednesday":
conversion = 4;
break;
case "Thursday":
conversion = 5;
break;
case "Friday":
conversion = 6;
break;
case "Saturday":
conversion = 7;
break;

}//end switch(day)
  
return conversion;
}//end of getNewDay

public void calcPrevDay()
{ int convertNum = 0;
String day1;
int conversion;
conversion = convertNum - 1;
  
if (conversion == 0)
{
conversion = 7;
}
  
day1 = getConvertNumToDay(conversion);
System.out.print("The day before " + day + " is " + day1);
  
}//end calcPrevDay()

public void calcNextDay()
{
int convertNum = 0;
String day1;
int conversion;
conversion = convertNum + 1;
  
if (conversion == 8)
{
conversion = 1;
}
  
day1 = getConvertNumToDay(conversion);
System.out.print(" The day after " + day + " is " + day1);
}//end calcNextDay()

public void calcNewDay(int addOnDays)
{
int convertNum = 0;
String newDay = "";
int totDaysNum = 0;
  
totDaysNum = convertNum + addOnDays % 7;
  
if (totDaysNum > 7)
{
totDaysNum = totDaysNum % 7;
}
  
newDay = getConvertNumToDay(totDaysNum);
System.out.print("A " + newDay + " is " + addOnDays + " days past " + day + " ");
}//end calcNewDay

public void printDay()
{
System.out.print("The Current Day is " + day + " ");
}//end printDay()

}//end of class Day

import java.util.*;

public class testDay2
{
static Scanner console = new Scanner (System.in);

public static void main (String[]args)
{
//declare local variable
String day = "";
int convertNum = 0;
int addOnDays = 0;
  
Day2 day1 = new Day2();
Day2 day2 = new Day2("Tuesday");
  
System.out.print("Output for day1: ");
day1.printDay();
System.out.println();
  
System.out.print("Output for day2: ");
convertNum = day2.getConvertDayToNum(day);
day2.printDay();
  
System.out.print(" New output for day1: ");
day1.setConvertDayToNum(day);
day1.printDay();
  
System.out.print(" Output for day2: ");
day = console.nextLine();
day2.calcPrevDay();
day2.calcNextDay();
  
System.out.print(" Enter the number of days from Friday: ");
addOnDays = console.nextInt();
day1.calcNewDay(addOnDays);
  
System.out.print(" Enter the number of days from Tuesday: ");
addOnDays = console.nextInt();
day2.calcNewDay(addOnDays);
  
  
}//end main
}//end class testDay

Then this was my output:

Output for day1:
The Current Day is

Output for day2:
The Current Day is Tuesday

New output for day1:
The Current Day is

Output for day2: Tuesday
The day before Tuesday is
The day after Tuesday is Sunday

Enter the number of days from Friday: 3
A Tuesday is 3 days past


Enter the number of days from Tuesday: 12
A Thurday is 12 days past Tuesday

----jGRASP: operation complete.

----jGRASP exec: java testDay2

Output for day1:
The Current Day is

Output for day2:
The Current Day is Tuesday

New output for day1:
The Current Day is

Output for day2: Wednesday
The day before Tuesday is
The day after Tuesday is Sunday

Enter the number of days from Friday: 3
A Tuesday is 3 days past


Enter the number of days from Tuesday: 12
A Thurday is 12 days past Tuesday

----jGRASP: operation complete.

I have spent so much time on this please help me fix it

Explanation / Answer

PROGRAM CODE:

Day2.java

package array;

public class Day2

{

   private String day; //day of the week being converted to a number

   //default constructor

   public Day2()

   {

day = "";

   }//end of default constructor

   //values constructor

   public Day2 (String weekDay)

   {

day = weekDay;

  

   }//end of values constructor

   //set methods

   public void setConvertDayToNum(String weekDay)

   {

int convertNum;

  

day = weekDay;

convertNum = getConvertDayToNum(day);

   }

   public void setConvertNumToDay(int dayNum)

   {

int convertNum = 0;

  

convertNum = dayNum;

day = getConvertNumToDay(convertNum);

   }

   //Where we convert a number to a day of the week

   public String getConvertNumToDay(int convertNum)

   {

String day1 = "";

  

switch (convertNum)

{

   case 1:

day1 = "Sunday";

break;

   case 2:

day1 = "Monday";

break;

   case 3:

day1 = "Tuesday";

break;

   case 4:

day1 = "Wednesday";

break;

   case 5:

day1 = "Thursday";

break;

   case 6:

day1 = "Friday";

break;

   case 7:

day1 = "Saturday";

break;

}// switch(convertNum)

  

return day1;

   }//end of getDay

   //Where we convert the day of the week to a number

   public int getConvertDayToNum(String day)

   {

int conversion = 0;

  

switch (day)

{

   case "Sunday":

conversion = 1;

break;

   case "Monday":

conversion = 2;

break;

   case "Tuesday":

conversion = 3;

break;

   case "Wednesday":

conversion = 4;

break;

   case "Thursday":

conversion = 5;

break;

   case "Friday":

conversion = 6;

break;

   case "Saturday":

conversion = 7;

break;

}//end switch(day)

  

return conversion;

   }//end of getNewDay

   public void calcPrevDay()

   //Made changes here to calculate the num from the day

   { int convertNum = getConvertDayToNum(day);

String day1;

int conversion;

conversion = convertNum - 1;

  

if (conversion == 0)

{

   conversion = 7;

}

  

day1 = getConvertNumToDay(conversion);

System.out.print(" The day before " + day + " is " + day1);

  

   }//end calcPrevDay()

   public void calcNextDay()

   {

   //Made changes here to calculate the num from the day

int convertNum = getConvertDayToNum(day);

String day1;

int conversion;

conversion = convertNum + 1;

  

if (conversion == 8)

{

   conversion = 1;

}

  

day1 = getConvertNumToDay(conversion);

System.out.print(" The day after " + day + " is " + day1);

   }//end calcNextDay()

   public void calcNewDay(int addOnDays)

   {

   //Made changes here to calculate the num from the day

int convertNum = getConvertDayToNum(day);;

String newDay = "";

int totDaysNum = 0;

  

totDaysNum = convertNum + addOnDays % 7;

  

if (totDaysNum > 7)

{

   totDaysNum = totDaysNum % 7;

}

  

newDay = getConvertNumToDay(totDaysNum);

System.out.print("A " + newDay + " is " + addOnDays + " days past " + day + " ");

   }//end calcNewDay

   public void printDay()

   {

System.out.print("The Current Day is " + day + " ");

   }//end printDay()

}//end of class Day

testDay2.java

package array;

import java.util.*;

public class testDay2

{

   static Scanner console = new Scanner (System.in);

   public static void main (String[]args)

   {

   //declare local variable

String day = "";

int convertNum = 0;

int addOnDays = 0;

  

Day2 day1 = new Day2();

Day2 day2 = new Day2("Tuesday");

  

System.out.print("Output for day1: ");

day1.printDay();

System.out.println();

  

System.out.print("Output for day2: ");

convertNum = day2.getConvertDayToNum(day);

day2.printDay();

  

System.out.print(" New output for day1: ");

//Made changed here to convert from num to day since day to num is now invalid

day1.setConvertNumToDay(6);

day1.printDay();

  

System.out.print(" Output for day2: ");

day = console.nextLine();

day2.calcNextDay();

day2.calcPrevDay();

  

  

System.out.print(" Enter the number of days from Friday: ");

addOnDays = console.nextInt();

day1.calcNewDay(addOnDays);

  

System.out.print(" Enter the number of days from Tuesday: ");

addOnDays = console.nextInt();

day2.calcNewDay(addOnDays);

  

  

   }//end main

}//end class testDay

OUTPUT:

Output for day1:

The Current Day is

Output for day2:

The Current Day is Tuesday

New output for day1:

The Current Day is Friday

Output for day2: Tuesday

The day after Tuesday is Wednesday

The day before Tuesday is Monday

Enter the number of days from Friday: 3

A Monday is 3 days past Friday

Enter the number of days from Tuesday: 12

A Sunday is 12 days past Tuesday