Get Instant Help From 5000+ Experts For
question

Writing: Get your essay and assignment written from scratch by PhD expert

Rewriting: Paraphrase or rewrite your friend's essay with similar meaning at reduced cost

Editing:Proofread your work by experts and improve grade at Lowest cost

And Improve Your Grades
myassignmenthelp.com
loader
Phone no. Missing!

Enter phone no. to receive critical updates and urgent messages !

Attach file

Error goes here

Files Missing!

Please upload all relevant files for quick & complete assistance.

Guaranteed Higher Grade!
Free Quote
wave
Competitor Management System Development

Stage One

Don’t use input or output files or any sort of graphical user interface in this stage. Just develop your competitor class, without the list of scores. Using a main method, create several objects of the class, and test all your methods, which you will use in the next stage.  

Details for each competitor should be held in a class named either XXXCompetitor (where XXX is your initials) or some more specific name e.g. IceSkater.  Develop this class, according to the requirements that are listed below. Some of these requirements are described fully, and in other cases you have to make some of your own decisions. You can base your competition on a known sport or game, or just invent values.

When you have to make your own decisions, don’t make the same decisions as your friends. You will lose marks if you hand in work in which all design decisions and code structures are identical to those of other students.

Your competitor class - Instance variables

For each competitor, you should hold the following essential information in instance variables:

1. Competitor number – must be an integer

2. Competitor name – use the Name class

3. Level of competitor – between 2 and 4 values which describe the standard of the competitor.  Invent your own levels. E.g. Novice, Standard, Veteran or 1, 2, 3 ,4. These are fixed values for each person, they should not be derived from their overall score.

4. An extra attribute of your choice (e.g. age, country.....)

Your competitor class - Methods

The Competitor class should have (use exact method names please) :

1. A Constructor and get and set methods.

2. A method which will be used later, to get the overall score. You will change it in the next stage, but for now it should look exactly like this:

public double getOverallScore() { return 5; }

3. a getFullDetails() method which returns a String containing all the details of the competitor (including your extra attribute) as text. It should be clear what all the values are. It doesn’t have to look exactly like the example below.

    Competitor number 100, name Keith John Talbot, country UK.

    Keith is a Novice aged 21 and has an overall score of 5.

4. a getShortDetails() method which returns a String containing ONLY competitor number, initials and overall score.  The format should look exactly like the line below, (with different data). ‘CN’ stands for ‘competitor number’.e.g. CN 100 (KJT) has overall score 5.

Stage Two

Alter your competitor class to include the list of individual scores, as follows:

1. Add an instance variable - an array of integer scores with values between 0 and 5. Choose how many scores there will be (a number between 4 and 6).

2. Provide a method  getScoreArray()to return the array of integer scores.

3. Alter your getOverallScore() method to calculate the overall score from the array of integer scores. You must make your own decision on how to calculate the overall score, which should be a decimal number in the range 0 – 5. It should ideally be a little more complicated than a simple average of the values, and could involve a decision based on the level or other attribute. Some ideas are:

4. Average of top n scores where n is the level number

5. Weighted average of all scores (choose different weights for different scores and levels)

6. Average of scores disregarding the highest and lowest score.

7. Edit the getFullDetails method to include all the scores e.g. Competitor number 100, name Keith John Talbot, country UK.

    Keith is a Novice aged 21 and received these scores : 5,4,5,4,3

    This gives him an overall score of 4.2.

Using a main method, create several objects of the class, and test all your methods.

Stage Three

Introduce a Manager class and a CompetitorList class to contain an ArrayList of your ‘competitor’ objects containing between 10 and 15 competitors, with data carefully chosen to test all your methods.  Your program should do the following:

1. Read in the details of each competitor from a text file. Initially don’t do any validation on the text file, just use valid data.

2. Produce a final report to a text file, although you may want to start by sending this to System.out. The final report should be similar to that on page 2. It should contain:

  A table of competitors with full details (no special ordering is required in this assignment)

  Details of the competitor with the highest overall score

  Four other summary statistics of your choice. E.g.

3. Totals, averages, max, min  (fairly straightforward)

4. Frequency report, for example showing how many times each individual score was awarded  (more challenging).

The method which produces this report should not do all this work itself but should call methods in the CompetitorList class (e.g. to get details for the table, to return a frequency report, to find the average overall mark etc).

5. Allow the user to enter a competitor number, and check that this is valid. If it is valid, the short details about the competitor should be displayed.

6. Finally, write some code to check a few errors in the input file – more than the code already provided in lecture notes.

Your Submission Report

You should provide a report on your program, consisting of the following information (nothing else):

1)Your decisions

a.Which extra competitor attributes you chose (level, number of scores etc)

b.How the overall score is calculated. Include an activity diagram.

2)Status report. Does your program meets the specification fully, or is it incomplete? This can be very brief (don’t provide a list of everything that you were asked to do – the marker knows this).  E.g.

a. “This application meets the specification fully”

b. “The application does everything except allowing the user to enter a competitor number”

c. “This application meets the specification almost completely but I know the overall score calculation isn’t always correct ”

For the following lists and tables, there are examples in the Testing lecture.

a. If necessary, a list of known bugs and a list of requirements that you have not implemented.

b. Include a table of limitations – these are things that you decided not to handle, either through lack of time or because you think that they are unlikely to occur.

c. Include a table of tests done.

3)Diagrams

a. Class diagram showing all classes with instance variables, methods and associations

b. A sequence diagram showing a task of your choice, but using at least 2 classes. E.g. reading the input file or creating a report.

4)Write javadoc style comments for the CompetitorList class, and generate the html. Include in your submission the html generated for the CompetitorList class.

You can use any tool that you like to draw the diagrams, or draw by hand if you like.

 

support
close