Java problem: Write an application that allows a user to enter the names and bir
ID: 3837385 • Letter: J
Question
Java problem: Write an application that allows a user to enter the names and birth dates of up to 10 friends. Continue to prompt the user for names and birth-dates until the user enters the sentinel value “ZZZ” for a name or has entered 10 names, whichever comes first.
When the user is finished entering names, produce a count of how many names were entered, and then display the names. In a loop, continuously ask the user to type one of the names and display the corresponding birth-date or an error message if the name has not been previously entered. The loop continues until the user enters “ZZZ” for a name.
So this is the code I'm using:
import java.util.Scanner;
public class BirthdayReminder
{
public static void main(String[] args)
{
String sentinel="ZZZ";
final int size=10;
int count=0;
String name= null;
String dateOfBirth= null;
String[] names=new String[size];
String[] birthdates= new String[size];
Scanner scanner=new Scanner(System.in);
System.out.println("Enter name or enter ZZZ to quit");
name=scanner.nextLine();
while(!name.equals(sentinel)&&count<10)
{
System.out.println("Enter date of birth (dd-mm-yyyy)");
dateOfBirth=scanner.nextLine();
names[count]=name;
birthdates[count]=dateOfBirth;
System.out.println("Enter name or enter ZZZ to quit");
name=scanner.nextLine();
count++;
}
System.out.println("Count of Names ="+count);
boolean repeat=true;
boolean found=false;
while(repeat)
{
System.out.println("Enter name to display date of birth or enter ZZZ to quit");
name=scanner.nextLine();
if(name.equals(sentinel))
repeat=false;
else
{
for(int i=0; i<count &&!found;i++)
{
if(names[i].equals(name))
{
found=true;
dateOfBirth=birthdates[i];
}
}
if(found)
System.out.println("Date of Birth"+name+"is"+dateOfBirth);
else
System.out.println("Date Of Birth of"+name+"not found");
}
found=false;
}
}
}
Its mostly working, but theres some expected ouputs that are not showing up, and I need some help correcting it.
FAILED: Birthday List ll Input Austin 12/2/2000 Beth 10/9/2001 Beth Output Enter nane or enter ZZZ to quitAustin 12/2/2000 Beth 10/9/2001 Enter date of birth (dd-nn-yyyy) Enter nane or enter ZZZ to quit Enter date of birth (dd-nn-yyyy) Enter nane or enter ZZZ to quit Count of Names J2 Enter nane to display date of birth or enter ZZZ to quit Beth Date of BirthBethis10/9/2001 Enter nane to display date of birth or enter ZZZ to quit Results 2 Austin Beth 10/9/2001 Show DetailsExplanation / Answer
BirthdayReminder.java :
_____________________
import java.util.Scanner;
public class BirthdayReminder
{
public static void main(String[] args)
{
String sentinel="ZZZ";
final int size=10;
int count=0;
String name= null;
String dateOfBirth= null;
String[] names=new String[size];
String[] birthdates= new String[size];
Scanner scanner=new Scanner(System.in);
System.out.println("Enter name or enter ZZZ to quit");
name=scanner.nextLine();
while(!name.equals(sentinel)&&count<10)
{
System.out.println("Enter date of birth (dd-mm-yyyy)");
dateOfBirth=scanner.nextLine();
names[count]=name;
birthdates[count]=dateOfBirth;
System.out.println("Enter name or enter ZZZ to quit");
name=scanner.nextLine();
count++;
}
System.out.println("Count of Names ="+count);
boolean repeat=true;
boolean found=false;
while(repeat)
{
System.out.println(" Enter name to display date of birth or enter ZZZ to quit");
name=scanner.nextLine();
if(name.equals(sentinel))
repeat=false;
else
{
for(int i=0; i<count &&!found;i++)
{
if(names[i].equals(name))
{
found=true;
dateOfBirth=birthdates[i];
}
}
if(found)
System.out.println("Date of Birth of "+name+" is "+dateOfBirth);
else
System.out.println("Date Of Birth of "+name+" is not found");
}
found=false;
}
}
}
Sample Input and Output :
_______________________
Run 1:
______
Enter name or enter ZZZ to quit
Austin
Enter date of birth (dd-mm-yyyy)
12/2/2000
Enter name or enter ZZZ to quit
Beth
Enter date of birth (dd-mm-yyyy)
10/9/2001
Enter name or enter ZZZ to quit
ZZZ
Count of Names =2
Enter name to display date of birth or enter ZZZ to quit
Beth
Date of Birth of Beth is 10/9/2001
Enter name to display date of birth or enter ZZZ to quit
Josh
Date Of Birth of Josh is not found
Enter name to display date of birth or enter ZZZ to quit
ZZZ
Run 2:
______
Enter name or enter ZZZ to quit
Austin
Enter date of birth (dd-mm-yyyy)
12/2/2000
Enter name or enter ZZZ to quit
Taylor
Enter date of birth (dd-mm-yyyy)
1/21/2000
Enter name or enter ZZZ to quit
John
Enter date of birth (dd-mm-yyyy)
4/4/2001
Enter name or enter ZZZ to quit
Elena
Enter date of birth (dd-mm-yyyy)
11/2/1999
Enter name or enter ZZZ to quit
Beth
Enter date of birth (dd-mm-yyyy)
10/9/2001
Enter name or enter ZZZ to quit
Bobby
Enter date of birth (dd-mm-yyyy)
3/27/2001
Enter name or enter ZZZ to quit
Allie
Enter date of birth (dd-mm-yyyy)
5/6/1999
Enter name or enter ZZZ to quit
Eric
Enter date of birth (dd-mm-yyyy)
8/24/1998
Enter name or enter ZZZ to quit
Mike
Enter date of birth (dd-mm-yyyy)
8/19/1999
Enter name or enter ZZZ to quit
Jessica
Enter date of birth (dd-mm-yyyy)
9/9/2002
Enter name or enter ZZZ to quit
Allie
Count of Names =10
Enter name to display date of birth or enter ZZZ to quit
Mike
Date of Birth of Mike is 8/19/1999
Enter name to display date of birth or enter ZZZ to quit
Bobby
Date of Birth of Bobby is 3/27/2001
Enter name to display date of birth or enter ZZZ to quit
Beth
Date of Birth of Beth is 10/9/2001
Enter name to display date of birth or enter ZZZ to quit
ZZZ
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.