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
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
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
