Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Programming language is Python! The volleyball coach at Verde Valley High School would like some help managing her team. She is looking for a piece

Programming language is Python!

The volleyball coach at Verde Valley High School would like some help managing her team. She is looking for a piece of software to help her see who her best players are, and build scrimmage teams that are well balanced. She has a team roster stored in a text file that contains the names of her players (first name, then last name separated by a space), and their stats as attacks per set (double) followed by blocks per set (double). Higher stats are better. Each data field is separated by a space. For example, one line would look like:

Gabrielle Reece 4.57 1.79

DIRECTIONS

The coach would like the program to do the following:

Present a menu with the following options:

1) Open a roster 2) List top 3 attackers 3) List top 3 blockers 4) Make and display scrimmage teams 5) Quit

If the user chooses 1) Open a roster, then the program should ask for the filename of the roster, then read the data from that file into an array.

If the user chooses 2) List top 3 attackers, then the program should determine and list the names and stats of the players with the top 3 attack stats.

If the user tries to list the top attackers without first opening a roster file, then the program should respond with the error message "Please open a roster."

If the user chooses 3) List top 3 blockers, then the program should determine and list the names and stats of the players with the top 3 stats for blocks.

If the user tries to list the top blockers without first opening a roster file, then the program should respond with the error message "Please open a roster."

If the user chooses 4) Make and display scrimmage teams, then the program should divide the roster into 6-person scrimmage teams, and display the list of players on each team.

If the user tries to make and display scrimmage teams without first opening a roster file, then the program should respond with the error message "Please open a roster."

Your program will need to be able to divide a roster into the maximum possible number of teams. For example, a roster with 18 players on it would be divided up into three different scrimmage teams with six players each. A roster file will always contain a list of between 12 and 25 players, and a scrimmage team always has six players.

The coach would like the teams to be reasonably well balanced. To do this, your program should make up half of each scrimmage team by distributing the best attackers to each of the different teams. For example, a roster with 12 players on it would be divided up into two scrimmage teams, and three of the top six attackers would be assigned to each of the two scrimmage teams. After the top attackers have been assigned to make up half of each scrimmage team, then the top blockers (from the remaining unassigned players) would similarly be assigned (three to each scrimmage team in this example) to make up the other half of each team.

As a more detailed example, consider the following roster:

Name

Attack Stat

Blocking Stat

Rachael Adams

3.36

1.93

Foluke Akinradewo

4.81

1.14

Kayla Banwarth

2.98

0.50

Michelle Bartsch

0.28

1.42

Krista Vansant

2.78

0.86

Courtney Thompson

0.59

0.93

Kelly Murphy

1.15

0.58

Lauren Gibbemeyer

2.25

0.50

Alexis Crimes

3.89

1.34

Tori Dixon

0.92

1.62

Nicole Fawcett

4.01

0.61

Alisha Glass

1.96

1.55

Natalie Hagglund

2.49

0.52

Kim Hill

1.53

1.76

Cursty Jackson

0.69

1.44

Given the above roster with 15 players, your program should make and display the follow two scrimmage teams:

Team 1:

Foluke Akinradewo

Alexis Crimes

Kayla Banwarth

Kim Hill

Alisha Glass

Michelle Bartsch

Team 2:

Nicole Fawcett

Rachael Adams

Krista Vansant

Tori Dixon

Cursty Jackson

Courtney Thompson

If the user chooses 5) Quit, then the program should exit.

Things to think about when youre designing and writing this program:

  1. Break this problem down into a set of simpler problems - each of which needs to be solved in order to solve this whole problem.
  2. Design a solution for each of these smaller problems.
  3. Combine the solutions to the smaller problems into a solution for this problem.
  4. Consider whether one or more user-defined classes might help you solve this problem. If so, then what attributes (variables) and operations (methods) should each of these classes have.
  5. Consider whether or not your main class can benefit from any additional methods.
  6. Spend some time choosing your variable and method names carefully. Names should be descriptive.
  7. Take advantage of variables to name values whose purpose may not be obvious.
  8. Take advantage of variables by breaking any complex expressions down into a set of simpler expressions and storing the intermediate results in variables.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions