Instruction
In light of covid, I have decided to change the last project of the semester to something new. Imagine you are the Personnel officer on board the Federation Space Ship Inarticulate. As everyone knows away teams DO NOT consist of the captain or his bridge crew but instead of people like poor crewman number 6 who usually are killed in the first 15 minutes to prove that the situation is serious.
Basically we are going to create a class crew, each crew person has an identifier in lieu of a name, etc. They also have a rank indicated by an integer (1 through 9) with 9 being the highest enlisted rank. Additional officer ranks are 10 through 15. A specialty id and a proficiency score AND a boolean "orders"
On board the Inarticulate there is one crew rank 15, two rank 14, four rank 13, eight rank 12, sixteen rank 11, and thirty-two rank 10 officers. There is one rank 9 for each of the five specialist areas list below. Two rank 8, two rank 7, four 6 & 5, eight 4, sixteen rank 3, 32 rank 2 and 64 rank 1, for EACH specialist area. This gives a total crew contingent of 768 (if I did my addition correctly)
These specialties are not only assigned to each crew, but a random proficiency is assigned as well. This score has an average of 100 and a standard deviation of 15.
In addition, some crew, 50%, are designated as mission specialist. specialist is a new class derived from class crew using inheritance. These crew have TWO specialties, e.g. specialists they have their primary specialty in their base class, and a secondary specialty in their derived class. All crew are to stored in the SAME linked list.
Primary Crew Specialty Areas
1. Pilots/Navigation
2. Engineering
3. Systems
4. Logistics
5. Security
Specialist areas
6. Medical
7. Legal
8. Combat
Phase 1: generate list of random crew/specialists with the ranks/specialties and proficiencies as defined above.
Phase 2: Mission definitions, a "mission" is simply a sequence of the integers 1 through 8, the frequency and order of the integers determine what is the most important for a particular mission.
For example: Mission = [6, 6, 3, 4, 3] might be a rescue mission needing two medical personnel, two security and one logistics person. The ranking person needs to be type 6 since they are listed first. All others must be of lower rank but no other restrictions are required.
The challenge is to provide the best team of 5 people with the largest combined scores in all areas including primary and specialists proficiency scores.
phase 3: after the crew is ready develop a menu driven interface that allows the user to do the following:
a) enter a mission (with 3 to 10) integer description
b) assign and display all away teams
c) reset all away teams
d) exit
The user can allocate as many missions as desired, the away teams should be stored in some manner but once under orders a person is no longer available for assignment.