I have the program written, but I need it separated so that I have a separate cl
ID: 3664394 • Letter: I
Question
I have the program written, but I need it separated so that I have a separate class that works as a tester. I also need comments added to the code please.
import java.util.Scanner;
public class Day
{
private static final int Sunday = 0;
private static final int Monday = 1;
private static final int Tuesday = 2;
private static final int Wednesday = 3;
private static final int Thursday = 4;
private static final int Friday = 5;
private static final int Saturday = 6;
static Scanner keyboard = new Scanner(System.in);
public Day(String TDay)
{
Day DY = new Day(Day.Wednesday);
int choice;
do
{
Prompt2();
choice = keyboard.nextInt();
System.out.println();
switch (choice)
{
case 1:
do
{
Prompt1();
choice = keyboard.nextInt();
System.out.println();
switch (choice)
{
case 1:
NDay = Sunday;
break;
case 2:
NDay = Monday;
break;
case 3:
NDay = Tuesday;
break;
case 4:
NDay = Wednesday;
break;
case 5:
NDay = Thursday;
break;
case 6:
NDay = Friday;
break;
case 7:
NDay = Saturday;
break;
case 99:
System.exit(0);
break;
default:
System.out.println("Invalid Input");
}
System.out.print("The day you selected as your starting day is: ");
DY.print();
System.out.println();
System.out.print("The next day to your selected day is: ");
DY.setDay(DY.GetNextDay());
DY.print();
System.out.println();
System.out.print("The previous day to your selected day is: ");
DY.setDay(DY.GetPrevDay());
DY.setDay(DY.GetPrevDay());
DY.print();
System.out.println();
System.out.print("How many days would you like to add? ");
System.out.println();
int days = keyboard.nextInt();
DY.setDay(days);
System.out.print(" Adding " + days + " day(s) makes your new day: " + DY);
System.out.println();
System.out.println();
}
while (choice != 99);
break;
case 2:
System.out.println("Test Data For Day Class");
System.out.print(" Initial day: ");
DY = new Day(Day.Sunday);
DY.print();
System.out.print(" Next day: ");
DY.setDay(DY.GetNextDay());
DY.print();
System.out.print(" Add 12 Days: ");
DY.setDay(DY.AddDay(12));
DY.print();
System.out.print(" Previous day: ");
DY.setDay(DY.GetPrevDay());
DY.print();
System.out.print(" Add 3 days: ");
DY.setDay(DY.AddDay(3));
DY.print();
System.out.println(" ");
break;
case 99:
System.exit(0);
break;
default:
System.out.println("Invalid Input");
}
}
while (choice != 99);
}
public static void Prompt1()
{
System.out.println("Please Select Your Initial Day (or 99 to quit):");
System.out.println(" 1: Sunday.");
System.out.println(" 2: Monday.");
System.out.println(" 3: Tuesday.");
System.out.println(" 4: Wednesday.");
System.out.println(" 5: Thursday.");
System.out.println(" 6: Friday.");
System.out.println(" 7: Saturday.");
System.out.println("99: To quit the program.");
}
public static void Prompt2()
{
System.out.println("Enter: ");
System.out.println("1: To Enter Data into the program.");
System.out.println("2: For Test Data.");
System.out.println("99: To quit the program.");
}
public static int NDay;
public void setDay(int day)
{
this.NDay = NDay;
}
public void print()
{
System.out.println(this.toString());
}
public int getDay()
{
return NDay;
}
public int GetNextDay()
{
return (NDay + 1) % 7;
}
public String toString()
{
switch (Day.NDay)
{
case Sunday:
return "Sunday";
case Monday:
return "Monday";
case Tuesday:
return "Tuesday";
case Wednesday:
return "Wednesday";
case Thursday:
return "Thursday";
case Friday:
return "Friday";
case Saturday:
return "Saturday";
}
return "";
}
public int GetPrevDay()
{
return (NDay - 1) % 7;
}
public int AddDay(int days)
{
return (NDay + days) % 7;
}
public Day()
{
this.NDay = Sunday;
}
public Day(int NDay)
{
this.NDay = NDay;
}
}
Explanation / Answer
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package studentscores;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author HARE KRISHNA
*/
public class DayTester {
@Test
public void test Prompt1(){
Day dayobj = new Day();
// Prompt1 method calls
dayObj.Prompt1();
//checks assertEquals condition
asserEquals();
}
@Test
public void test Prompt2(){
Day dayobj = new Day();
// Prompt2 method calls
dayObj.Prompt2();
//checks assertEquals condition
asserEquals();
}
}
//Comments on given Program
import java.util.Scanner;
public class Day
{
private static final int Sunday = 0;
private static final int Monday = 1;
private static final int Tuesday = 2;
private static final int Wednesday = 3;
private static final int Thursday = 4;
private static final int Friday = 5;
private static final int Saturday = 6;
static Scanner keyboard = new Scanner(System.in);
public Day(String TDay)
{
Day DY = new Day(Day.Wednesday); // here sending code like 3 to Day Object.
int choice;
do
{
Prompt2(); //calls the Prompt2 method.
choice = keyboard.nextInt();// asking input values as taken choice.
System.out.println();
switch (choice)
{
case 1:
do
{
Prompt1();//calls Prompt1 method calls
choice = keyboard.nextInt();
System.out.println();
//based on choice assigns days to NDay
switch (choice)
{
case 1:
NDay = Sunday;// based on choice assigns days toNDay
break;
case 2:
NDay = Monday;
break;
case 3:
NDay = Tuesday;
break;
case 4:
NDay = Wednesday;
break;
case 5:
NDay = Thursday;
break;
case 6:
NDay = Friday;
break;
case 7:
NDay = Saturday;
break;
case 99:
System.exit(0);
break;
default:
System.out.println("Invalid Input");
}
System.out.print("The day you selected as your starting day is: ");
DY.print(); // selected day print here
System.out.println();
System.out.print("The next day to your selected day is: ");
// set method call here of Day
DY.setDay(DY.GetNextDay());
DY.print();
System.out.println();
System.out.print("The previous day to your selected day is: ");
DY.setDay(DY.GetPrevDay());
DY.setDay(DY.GetPrevDay());
DY.print();
System.out.println();
System.out.print("How many days would you like to add? ");
System.out.println();
int days = keyboard.nextInt();
DY.setDay(days);
System.out.print(" Adding " + days + " day(s) makes your new day: " + DY);
System.out.println();
System.out.println();
}
while (choice != 99);
break;
case 2:
System.out.println("Test Data For Day Class");
System.out.print(" Initial day: ");
//date object intialized
DY = new Day(Day.Sunday);
DY.print();
System.out.print(" Next day: ");
DY.setDay(DY.GetNextDay());
DY.print();
System.out.print(" Add 12 Days: ");
DY.setDay(DY.AddDay(12));
DY.print();
System.out.print(" Previous day: ");
DY.setDay(DY.GetPrevDay());
DY.print();
System.out.print(" Add 3 days: ");
DY.setDay(DY.AddDay(3));
DY.print();
System.out.println(" ");
break;
case 99:
System.exit(0);
break;
default:
System.out.println("Invalid Input");
}
}
while (choice != 99);
}
// asking to select days here
public static void Prompt1()
{
System.out.println("Please Select Your Initial Day (or 99 to quit):");
System.out.println(" 1: Sunday.");
System.out.println(" 2: Monday.");
System.out.println(" 3: Tuesday.");
System.out.println(" 4: Wednesday.");
System.out.println(" 5: Thursday.");
System.out.println(" 6: Friday.");
System.out.println(" 7: Saturday.");
System.out.println("99: To quit the program.");
}
//asking to enter data to the program and test data also
public static void Prompt2()
{
System.out.println("Enter: ");
System.out.println("1: To Enter Data into the program.");
System.out.println("2: For Test Data.");
System.out.println("99: To quit the program.");
}
public static int NDay;
public void setDay(int day)
{
this.NDay = NDay;
}
public void print()
{
System.out.println(this.toString());
}
// returns day
public int getDay()
{
return NDay;
}
// calculate data
public int GetNextDay()
{
return (NDay + 1) % 7;
}
public String toString()
{
switch (Day.NDay)
{
case Sunday:
return "Sunday";
case Monday:
return "Monday";
case Tuesday:
return "Tuesday";
case Wednesday:
return "Wednesday";
case Thursday:
return "Thursday";
case Friday:
return "Friday";
case Saturday:
return "Saturday";
}
return "";
}
public int GetPrevDay()
{
return (NDay - 1) % 7;
}
public int AddDay(int days)
{
return (NDay + days) % 7;
}
public Day()
{
this.NDay = Sunday;
}
public Day(int NDay)
{
this.NDay = NDay;
}
}