Question: Hi, all. I'm doing a past paper for my Java unit as practise in the language, and I have no idea where to start. Any
Hi, all. I'm doing a past paper for my Java unit as practise in the language, and I have no idea where to start. Any tips? Here's the brief.
You have to develop a Practice Management system (PMS)using java as your programming language.
The main modules for PMS are: 1. Patient Management (Manage Patients). 2. Employee Management (Manage Employee [Doctor, Psychologist, Receptionists]). 3. Appointment Management (Maintain the appointments [add, delete, modify]).
Patient Management Module Process descriptions are as follows
Process1
| ProcessName | patientList |
| Input | Patient Id |
| Output | Status Message |
| Error | Not a patient |
Process2
| ProcessName | AddPatient |
| Input | Attributes of Patient class |
| Output | id Created |
| Error | Validation to be applied on each attribute Like name cant be empty , age should be integer |
Process3
| ProcessName | DeletePatient |
| Input | Patient Id |
| Output | Status message |
| Error | None |
Employee Management Module Process descriptions are as follows
Process1
| ProcessName | Doctor List |
| Input | Doctor Id |
| Output | Status Message |
| Error | No Doctor found |
Process2
| ProcessName | Add Doctor |
| Input | Attributes of Doctor class |
| Output | id created |
| Error | Validation to be applied on each attribute Like name cant be empty , age should be integer, type must match with type listed |
Process3
| ProcessName | Delete Doctor |
| Input | Doctor Id |
| Output | Status message |
| Error | None |
Appointment Management Module Process descriptions are as follows
Process1
| ProcessName | AppointmentList throws java.io.IOExcep tion |
| Input | DoctorId |
| Output | Appointment with Patient Details |
| Error | No appointment found + IoException |
Process2:
| ProcessName | Add Appointment throws java.io.IOExcep tion |
| Input | DoctorId Patient id TimeSlot |
| Output | Status message updated DoctorPatient List appointment Id |
| Error | IoException |
Process3
| ProcessName | DeleteAppointment throws java.io.IOEx ception |
| Input | Appointment ID |
| Output | Status message Modified DoctorPatientList |
| Error | IoException |
Process4
| ProcessName | ModifyAppointment throws java.io.IOEx ception |
| Input | Appointment id Doctor: Select from List Patient: Select from List Slot: Select from Slot |
| Output | Status Message |
| Error | Ioexception |
Process5
| ProcessName | ShowAllAppointment throws java.io.IOEx ception |
| Input | Date and Time |
| OutPut | ListOfAppointment |
| Error | IoExceptions |
Project Specifications System is secured and only Admin and registered user can Login. Follow the specification as below Welcome Console ask the user for following input
| Input | Details |
| name: String | Input your name |
| age: int | Input your age |
| option : char | Input a Char for identifying as Admin or User If User types A or a he gets Admin pro file. If User type U or u he gets a User profile |
Program auto-generate the Username and Password for you to enter into system as follows For Admin Login: following details are used
| Admin Details | |
| User Name : String | IamAdmin + name Where name is what you have entered |
| Password : String | Admin ! Dont Mess + age Where age is what you have entered |
For user Login: following details are used.
| User Details | |
| User Name | name + I am User ! Where name is what you have entered |
| Password | User only + age Where age is what you have entered |
System gives you only 3 tries to enter the right credentials else will lock you out and have
to generate new username and password.
Hint: Use of static variable are recommended for reading name and age. We are not using any database and please remember your system should be able to generate the username and password by String concatenation.
Use of dialogue / message box to show the generated name and password is recommended though its console application
Class Organisation and Association The Classes you require are
| Class | Details |
| Person | Interface and super for Employee , Patient |
| Employee | Abstract superclass from which specific types of employee are created , sub type Interface |
| Receptionist | sub type Employee |
| Doctor | sub type Employee |
| Patient | sub Type Person |
| Appointment | Used to add , delete , modify Appointment |
| ManageProject | Main Class used as tester/Driver class for driving through project. |
Class details as follows Person is an Interface Note: Use lambda expressions for its implementation
| Interface << Person>> |
| +isAnAdult(): Boolean : returns true the person is an adult (age>18) else returns false |
Employee is a Abstract Class implements Person
| Employee implements Person |
| #hireDate: Date #id: String #desc: String # address: String #age: int #name: String |
| + abstract ComputePay(): double +toString(): String |
Doctor Class isa Employee
| Doctor extends Employee |
| - department : String [] / arrayList can be used : { General , Surgery , basic Nursing , Pyschologist} -type: String { full time / part time} -status: Boolean -WorkingTime: Time |
| + getPatientList:List |
Receptionists Class isa Employee
| Receptionists extends Employee |
| -status:String |
| Makechoice() : provides following Menu options. 1: doManageMenu () is enabled 2: DoApptMenu() is enabled. Else Generate an error message not a valid choice |
DoManageMenu Specifications
| doManageMenu |
| A: add patient D: Delete patient +: add doctor -: delete doctor |
| Receptionist should return to makechoice() menu after each operation |
DoApptMenu Specifications
| doMainMenu | |
| Input | A: Add appointment D: Delete appointment M: Modify Appointment L: List Day Q: Quit |
| Receptionist should return to makechoice() menu after each operation |
Patient Class implements Person
| Patient extends Person |
| - Pid: String |
| -name:String -Prefeddoc: String -department:String -address: String |
| +addpatient(Patient p) : pid +deletepatient(Patient p ) : Status Message +ShowpatientList(): List |
Appointment Class
| Appointment |
| -aptid: String -Docid : Doctor -pid: Patient -time : Time |
| +Addappt(patient p , doctor d , time t): aptid +deleteappt(aptid): String +modifyapt(aptid):String message +listday(Time): List |
Manage Class
| Tester / Driver Class with following Specs. |
| Bulid the Project Takes you to Welcome Console Screen If admin : run Receptionist Instance. If User: show details and exit. |
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
