java programming 5th edition chapter 8 User-Defined Classes and ADTs usingStrings 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 printDa.
java programming 5th edition chapter 8 User-Defined Classes and ADTs.pdf
1. java programming 5th edition chapter 8 User-Defined Classes and ADTs usingStrings 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
2. //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;
3. 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;
4. 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;
}
5. 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 = "";
6. 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:
7. 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()
8. {
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)
{
9. 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;
10. 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;
}
11. 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 + " ");
12. }//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: ");
13. 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
14. 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
Solution
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;
15. 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;
16. 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)
17. 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)
18. {
//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");
19. 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
20. 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