Your friend has just graduated - Expert Work

Scenario:

Your friend has just graduated and has been applying to jobs. He is getting so many responses back, he wants to keep track of the 50 jobs he has applied to. You offer to help him by creating an efficient, object-oriented application with a polished user interface so he can track his status at each of the 50 jobs. Your friend draws a process diagram for you that shows you the different statuses he created in his job hunting process. Each job must conform to one of these states.

 For each job applied to, your friend also wants to track the company name, recruiter name, and number of miles away from his home. For jobs where he receives an offer, he wants to be able to track the offer amount. He mentions to you the application must have an offer amount for the job set if an offer has been received, so he doesn’t forget to record how much money is being offered for a job.

When the application is launched your friend expects to see a menu that contains the following

options:

 1) Add a job 

This option should allow your friend to enter all information about one job he applied to. If your friend has reached his limit of jobs, he should see an error message. 

 2) Display all jobs  

 This option should display all information, well-formatted, about every job your friend has applied to. Only when the status of the job is: offer received, should the amount of the offer received also be displayed. 
3) Find highest paying job
This option will find the highest offer amount for a job where an offer has been received. It will display, well-formatted, only the company name, recruiter name, and offer amount. If two or more jobs are tied for the highest offer amount, all jobs with that offer amount will be displayed. 

4) Exit application 

After your friend completes an option from the menu other than “Exit application”, he should be re prompted to enter another option. The only way to exit the application is for Mike to select this option. It should not exit for any other reason.

 Other Requirements:

 Your solution must use object-oriented techniques (No procedural solutions). 

 Your solution must demonstrate use of arrays. You may not use ArrayLists.

 You may not use Scanner or System classes for input/output. You must use

JOptionPane.

 You may not use System.exit, or any variant that exits the program in the middle of the program. The program should only exit once the algorithm has finished completing.

Hints: 

 Think about what type of validations might be appropriate for this application. Make sure these are all handled. Don’t forget about using if statements, try/catch, etc..
Whenever an invalid value is entered, the user must be informed that an error has occurred and then be re-prompted to enter in a new value.

 Remember the methods summarizing data on multiple objects should be created in the implementation class 

Part 1 Solution Design:* 

1) List and describe the purpose of each class that will be needed to solve this problem

a. You must separately identify (list) and describe the purpose of each class. One or two sentences per class should be sufficient.

2) Create a detailed UML class diagram, listing and explaining all class variables, accessors,

mutators, special purpose methods, and constructors associated to each data definition class. 

3) Create pseudocode detailing your solution design

a. Data Definition Class(es) – You must provide pseudocode ONLY for validating mutators and special purpose methods. No pseudocode is necessary for constructors or accessors 

b. Implementation Class – You must provide pseudocode for all methods

2) Create a detailed UML class diagram, listing and explaining all class variables, accessors, mutators, special purpose methods, and constructors associated to each data definition class.

3) Create pseudocode detailing your solution design

a. Data Definition Class(es) – You must provide pseudocode ONLY for validating mutators and special purpose methods. No pseudocode is necessary for constructors or accessors

b. Implementation Class – You must provide pseudocode for all methods

 
Powered by