Question: Question: Test Plan See Sample(Sample is not for this code) import java.util.ArrayList; import java.util.Scanner; abstract class Appointment{ // abstract class declaration private String description; //

Question: Test Plan

See Sample(Sample is not for this code)

Question: Test Plan See Sample(Sample is not for this code) import java.util.ArrayList;

import java.util.ArrayList;

import java.util.Scanner;

abstract class Appointment{ // abstract class declaration

private String description; // variable declaration

private String lastName; // variable declaration

private int hours=0; // variable declaration and assign hours as 0

private int minutes=0; // variable declaration and assign minutes as 0

public void setDescription(String description){ // called method

this.description = description; // since parameter and member same use this to assign parameter

}

public void setLastName(String lastName){ // called method

this.lastName = lastName; // since parameter and member same use this to assign parameter

}

public void setHours(int hours){ // called method

this.hours = hours; // since parameter and member same use this to assign parameter

}

public void setMinutes(int minutes){ // called method

this.minutes = minutes; // since parameter and member same use this to assign parameter

}

public String getDescription(){ // called method

return this.description; // return descripton what we assign from parameter

}

public String getLastName(){ // called method

return this.lastName; // return lastName what we assign from parameter

}

public int getHours(){ // called method

return this.hours; // retuen hours what we assign from parameter

}

public int getMinutes(){ // called method

return this.minutes; // retuen minutes what we assign from parameter

}

abstract public boolean occursOn(int year,int month,int day); // calling method

}

class Onetime extends Appointment{ // derived class

/* members declaration*/

private int year;

private int month;

private int day;

public void setYear(int year) { // called method

this.year=year; // since parameter and member same use this to assign parameter

}

public void setMonth(int month) { // called method

this.month=month; // since parameter and member same use this to assign parameter

}

public void setDay(int day) { // called method

this.day=day; // since parameter and member same use this to assign parameter

}

public int getYear() { // called method

return this.year; // since parameter and member same use this to assign parameter

}

public int getMonth() { // called method

return this.month; // since parameter and member same use this to assign parameter

}

public int getDay() { // called method

return this.day; // since parameter and member same use this to assign parameter

}

@Override

public boolean occursOn(int year, int month, int day) {

// method to check overide or same data

if(this.year==year && this.month==month && this.day==day) // check overide or same data

return true; // if exist return true

return false; // if not return false

}

}

class Daily extends Appointment{ // DERIVED CLASS

@Override

public boolean occursOn(int year, int month, int day) {

// TODO Auto-generated method stub

return true;

}

}

class Monthly extends Appointment{ // DERIVED CLASS

private int day; // member declaration

public void setDay(int day) { // called method

this.day=day;

}

public int getDay() { // called method

return this.day; // since parameter and member same use this to assign parameter

}

@Override

public boolean occursOn(int year, int month, int day) {

// called method

if(this.day==day) // check same day or not

return true; // same day return true

return false; // not same day return false

}

}

public class TestAppointment { // class declaration

static Scanner sc= new Scanner(System.in); // scanner to accept data

public static void main(String[] args) { // main function

ArrayList al = new ArrayList(); // array list declaration

System.out.println("How many appointments do you with to make?");

int num = sc.nextInt(); // Accept number of appointments

for(int i = 1;i

System.out.println("Please make a selection:");

System.out.println("1. One Time Appointment");

System.out.println("2. Daily Appointment");

System.out.println("3. Monthly Appointment");

int selection = sc.nextInt(); // Accept the selection

al.add(makeAppointment(selection)); // add the appointments to array llist

}

System.out.println("*******Thank you for making all your appointments*********");

char choice='y'; // variable declaration

while(choice=='y') {

System.out.println("What is the date you wish to look up in your Appointment's Calendar");

System.out.print("Enter the month: ");

int month=sc.nextInt(); // Acceept the month

System.out.print("Enter the day: ");

int day=sc.nextInt(); // Acceept the day

System.out.print("Enter the year: ");

int year=sc.nextInt(); // Acceept the year

System.out.println("On "+month+"/"+day+"/"+year+" you have the following appointments:"); // print the appointments

for(Appointment a:al) { // Loop to run for all appointments

boolean isPresent=checkAppointment(a,year,month,day); // calling method

if(isPresent) { // check appointment exist

System.out.println(a.getDescription()+" with "+a.getLastName()+" at "+a.getHours()+":"+a.getMinutes()); // print appointment details

}

}

System.out.println("Do you wish to look up another date?");

choice=sc.next().charAt(0); // accept choice

}

System.out.println("Thank you for using Appointment Calendar.");

}

public static Appointment makeAppointment(int selection) { // called method

/* variable declaration*/

Appointment app=null;

String description="";

String lastName="";

int hours=0;

int minutes = 0;

int day=0;

int year=0;

int month=0;

sc.nextLine();

switch (selection) { // switch statement to selection

case 1:

Onetime onetime=new Onetime();

System.out.println("What is the description of your appointment?");

description = sc.nextLine(); // Accept description for appointment

System.out.println("What is your person's name?");

lastName = sc.nextLine(); // Accept person's name

System.out.println("What is the year of your appointment?(2017-2018)");

year = sc.nextInt(); // Accept year

System.out.println("What is the month of your appointment?(1-12)");

month = sc.nextInt(); // Accept month

System.out.println("What is the day of your appointment?(1-31)");

day = sc.nextInt(); // Accept day

System.out.println("What is the hour of your appointment?(1-31)");

hours = sc.nextInt(); // Accept hours

System.out.println("What is the minutes of your appointment?(1-31)");

minutes = sc.nextInt(); // Accept minutes

/*calling methods*/

onetime.setDescription(description);

onetime.setHours(hours);

onetime.setLastName(lastName);

onetime.setMonth(month);

onetime.setMinutes(minutes);

onetime.setYear(year);

onetime.setDay(day);

System.out.println("Appointment added with "+lastName+" on "+month+"/"+day+"/"+year+" at "+hours+":"+minutes); // print appointment holder details

System.out.println();

return onetime;

case 2:

Daily daily = new Daily();

System.out.println("What is the description of your appointment?");

description = sc.nextLine(); // Accept description

System.out.println("What is your person's name?");

lastName = sc.nextLine(); // Accept lastName

System.out.println("What is the hour of your appointment?(1-31)");

hours = sc.nextInt(); // Accept hours

System.out.println("What is the minutes of your appointment?(1-31)");

minutes = sc.nextInt(); // Accept minutes

/* calling methods*/

daily.setDescription(description);

daily.setHours(hours);

daily.setLastName(lastName);

daily.setMinutes(minutes);

System.out.println("Appointment added with "+lastName+" Daily at "+hours+":"+minutes); // print appointment holder details

System.out.println();

return daily;

case 3:

Monthly monthly = new Monthly();

System.out.println("What is the description of your appointment?");

description = sc.nextLine(); // Accept description

System.out.println("What is your person's name?");

lastName = sc.nextLine(); // Accept lastName

System.out.println("What day of the month is your appointment?(1-12)");

day = sc.nextInt(); // Accept day

System.out.println("What is the hour of your appointment?(1-31)");

hours = sc.nextInt(); // Accept hours

System.out.println("What is the minutes of your appointment?(1-31)");

minutes = sc.nextInt(); // Accept minutes

/* calling methods*/

monthly.setDescription(description);

monthly.setHours(hours);

monthly.setLastName(lastName);

monthly.setMinutes(minutes);

monthly.setDay(day);

System.out.println("Appointment added with "+lastName+" Monthly on day "+day+" at "+hours+":"+minutes);

// print appointment holder details

System.out.println();

return monthly;

default:

System.out.println("Invalid Choice..!!");

return app;

}

}

public static boolean checkAppointment(Appointment a, int year, int month, int day) { // calling method to check appointments

return a.occursOn(year, month, day); // pass details

}

}

Test Test Case DescriptionPredicted Output Case No. Actual Output Menu is Displayed in a Loop, until the A menu consisting of 4 main options is Please make a selection: "exit" option is selected. 1. Add a Friend's Contact Info displayed to the user (add, change, remove, display) Change a Friend's Contact Info Remove a Friend's Contact Info 2. 3. 4. Display a Friend's Contact Info All friends? Specific Friend's First Name: Specific Friend's Last Name: a. b. Request friend's contact information, create friend object, add it to the array, Enter your friend's last name: and give feedback that add was successful. Increment the currentSize by Enter your friend's cell phone number: 1. r friend's first name Menu option 1 (Add) is selected, and there is space left in array Please enter your Enter your friend's nick name Note: Test extreme cases like empty array, & only 1 space left in array Your friend was added successfully to the address book. Use Debugger to check that object is actually in the correct space in array, at the next available empty slot. Also, verify that currentSize has been incremented by 1 Test Test Case DescriptionPredicted Output Case No. Actual Output Menu is Displayed in a Loop, until the A menu consisting of 4 main options is Please make a selection: "exit" option is selected. 1. Add a Friend's Contact Info displayed to the user (add, change, remove, display) Change a Friend's Contact Info Remove a Friend's Contact Info 2. 3. 4. Display a Friend's Contact Info All friends? Specific Friend's First Name: Specific Friend's Last Name: a. b. Request friend's contact information, create friend object, add it to the array, Enter your friend's last name: and give feedback that add was successful. Increment the currentSize by Enter your friend's cell phone number: 1. r friend's first name Menu option 1 (Add) is selected, and there is space left in array Please enter your Enter your friend's nick name Note: Test extreme cases like empty array, & only 1 space left in array Your friend was added successfully to the address book. Use Debugger to check that object is actually in the correct space in array, at the next available empty slot. Also, verify that currentSize has been incremented by 1

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!