BTE324 Object Oriented

BTE324/ – Object Oriented Programming
SPRING 2020
Assignment #2
Due 2/15/2020
A patient scheduling system is used by hospitals and doctor’s offices to manage patient appointments.
Your task is to design and implement a data model using Java classes that is to be used to hold the data
necessary for patient scheduling.
To test this data model, create a Java class called SchedulePatientsTest that will do the
following:
a) The base package for all your Java classes should be edu.miami.bte324.XXXX, where
XXXX is your username without the dot, i.e., j.doe’s package should be
edu.miami.bte324.jdoe.
b) Copy the following code into the class SchedulePatientsTest:
private String[] patientNames = { "John Lennon", "Paul McCartney", "George
Harrison", "Ringo Starr" };
private String[] patientEmails = { "j[email protected]m",
"p[email protected]u", "g[email protected]m", "d[email protected]g" };
private String[] patientSSN = { "123-45-6789", "333-22-1123", "567-39-9282",
"888-88-8888" };
private String[] patientBirthDates = { "05/01/1951", "06/23/1964",
"09/05/1955", "02/28/2001" };
private String[] doctorNames = {"John Smith", "Jane Doe", "Mary Jones", "Beth
Garcia" };
private String[] doctorEmails = { "j[email protected]m", "j[email protected]m",
"m[email protected]m", "b[email protected]m" };
private String[] doctorSSN = { "445-25-3382", "582-10-9983", "180-38-0038",
"343-34-9875" };
private String[] doctorBirthDates = { "06/03/1941", "10/10/1950",
"12/25/1965", "07/19/1964" };
c) Create a Patient class and a Doctor class to represent patients and doctors, respectively. Make
sure to create the appropriate fields required for each. Consider using either
java.util.Date or java.util.Calendar to represent the dates (rather than using
Strings).
d) Instantiate either an array or a java.util.List of Patient objects and an array or a
java.util.List of Doctor objects and fill these objects with the data in the arrays above.
e) Create an enumeration listing medical specialties. Include GENERAL_MEDICINE, PEDIATRICS, and
ONCOLOGY as members of this enumeration. Then add a field in the Doctor object to allow you
to assign doctors to the following specialties: John Smith to GENERAL_MEDICINE, Jane Doe to
PEDIATRICS, Mary Jones to GENERAL_MEDICINE, and Beth Garcia to ONCOLOGY.
BTE324– Object Oriented Programming
f) Create an array or a java.util.List with entries for the following upcoming visits:
Patient Doctor Date
John Lennon John Smith 11 Mar 2018
John Lennon John Smith 11 Apr 2018
Ringo Starr Jane Doe 25 Mar 2018
Jane Doe John Smith 11 Mar 2018
Paul McCartney Mary Jones 09 Apr 2018
George Harrison Beth Garcia 09 Apr 2018
(note that a doctor can also be a patient!)
g) List all upcoming visits to the console output in the following format:
Visit date:
Doctor:
Specialty:
March 11, 2018
John Smith
GENERAL_MEDICINE
Days until visit: (Number)
Patient:
First name: George
Last name: Harrison
email: [email protected]
SSN: 567-39-9282
Age: 57
h) Write out a line separator using
System.out.println(“------------------------------------------“);
Then, list all upcoming visits by doctor, only for doctors with the specialty of
GENERAL_MEDICINE, to the console output, in the following format:
Doctor: John Smith
Specialty: GENERAL_MEDICINE
Upcoming visits:
Visit date:
First name:
Last name:
email:
2018/03/11
George
Harrison
[email protected]
SSN: 567-39-9282
Age: 57
Leave a blank line between visits.
i) Write out a line separator using
System.out.println(“------------------------------------------“);
Then, list all upcoming visits by patient, only for patients that actually have an upcoming visit, to
the console output, in the following format:
BTE324 – Object Oriented Programming
Patient Name: Harrison, George
email: [email protected]
SSN: 567-39-9282
Age: 57
Upcoming visits:
Visit date:
Doctor:
Specialty:
11 March 2018
John Smith
GENERAL_MEDICINE
Leave a blank line between visits.
Notes and hints:

  1. The “Days until visit” field should put the number of days from the current date (the date at
    which the program is run) and the date in which the visit is scheduled to occur. You are
    expected to use either java.util.Date or java.util.Calendar for the
    calculations.
  2. Make sure you format the dates as indicated in the samples above. Use the class
    java.util.SimpleDateFormat for this formatting.
  3. The output is expected as shown, with the values aligned. Use tabs in your print commands.
    You may find it easier to use the System.out.printf command to format the output.
    Submission guidelines:
    Zip all classes under the src/main/java folder of your project (i.e., your .java files). Name the zip file
    bte324.hw1.XXXX.zip, where XXXX stands for your username without the period (i.e., j.doe should name
    his/her zip file bte324.hw1.jdoe.zip). Submit through Blackboard.
    Make sure to move any classes from the src/test/java folder (for test classes) to your src/main/java
    folder if you wish to submit them. Make sure to include the whole package structure (which is reflected
    as a directory structure under Eclipse). Do NOT include your target folder (i.e., .class files). Make sure to
    put your name on all Java classes (Hint: use the“Generate Element Comment” option from Eclipse over
    the class declaration, you will get an @author annotation where you can insert your name).
    Grading and Due date:
    The homework is due Sept 30/2015 before 11:59 pm. You will lose 25% of your grade for every day that
    the assignment submission is delayed beyond the due date. After 4 days, you will receive no credit for
    the assignment.
    50% of your grade will depend on the program running as required. The remaining 50% will be assigned
    based on the way in which programs are coded. Programs that work but do not use all required classes
    and good programming practices will see grades being deducted. Programs that do not work can still
    receive a grade based on coding practice.
    As I indicated in class, please make sure you modularize your code and organize it (use functions - don't
    turn in a 300 lines of code all in main(). Also, try to account for future expansions of your program - be
    forward looking in the way you design this. Please turn in a 1-2 pages report (LATEX format) that defines
    the problem, requirements, specifications, and how you designed your system and structured your
    program. We will add to this report and define use cases, and state diagrams in the next project, but you
    could add this now if you would like. You should definitely add a conclusion.

你可能感兴趣的:(后端)