racers: List of Boat objects   Write a constructor that allows the programmer to create an object of type BoatRace with a race_name, race_id, list of racers objects, and distance. The constructor will only take in one pa

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter11: Exception Handling
Section: Chapter Questions
Problem 1DE
icon
Related questions
Question

in python 

Define a class named BoatRace that contains the following information about a Boat Race:

  1. race_name: string
  2. race_id: int
  3. distance: int
  4. racers: List of Boat objects

 

  • Write a constructor that allows the programmer to create an object of type BoatRace with a race_name, race_id, list of racers objects, and distance.
    • The constructor will only take in one parameter, a string representing the name of a CSV file.  The file will have the following format:
      • Each row will always have exactly two columns.
      • The first row will always contain the name of the race.
      • The second row will always contain the id number for the race.
      • The third row will always contain the distance for the race.
      • All remaining rows contain information about the boats involved in the race: the first column will be the name of the boat, and the second column is that boat’s top speed.  For example, the race in the file below has two boats: The Fire Ball with top speed 12, and The Leaf with top speed 100.

 

Name,The Big One

ID,11

Distance,120

The Fire Ball,12

The Leaf,100

 

  • The constructor must read the information from the file and use it to initialize the appropriate instance variables.  Keep in mind that the race id and distance for the race should be converted to an integer, as should the top speed for each boat.
  • The racers instance variable is a list of Boat objects.  This means that you will need to use the Boat constructor from problem A to create a Boat object from the information in each row past the third.

 

  • Provide a getter for the following instance variables with no input parameters (other than self) passed in:
    • get_race_name returns the race_name
    • get_race_id returns the race_id
    • get_distance returns the distance
    • get_racers returns the racers

 

Examples:

Copy the following if __name__ == "__main__" block into your hw11.py file, and comment out tests for parts of the class you haven’t implemented yet.  The lines that have output include the expected value next to them as a comment (note that you will likely not exactly match the memory addresses shown for the Boat objects).

 

You will need to extract the sample CSV files from the hw11files.zip folder on Canvas, into the directory you’re running Python from.

 

if __name__ == '__main__':

    the_race = BoatRace('the_big_one.csv')

    print(the_race.get_race_name()) #The Big One 

    print(the_race.get_race_id()) #11

    print(type(the_race.race_id)) #<class 'int'>

    print(the_race.get_distance()) #120

    print(type(the_race.distance)) #<class 'int'>

    print(the_race.get_racers()) #[<__main__.Boat object at 0x03A2E4C0>, <__main__.Boat object at 0x03A2E4F0>]

    print(type(the_race.get_racers()[0].top_speed)) #<class 'int'>



Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Unreferenced Objects
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,