1. Exercise Measurement
Part 1:
Design two fully functional classes to represent
1. Exercise Measurement
Part 1:
Design two fully functional classes to represent the Imperial (American) and Metric measurement systems for:
* Weight: lb/kg, oz/gram
* Length: mi/km, ft/meter, in/cm
* Volume: gal/li, floz/mil
Reference: https://www.metric-conversions.org/Links to an external site.
Both classes contain the conversion factors to convert Imperial to Metric and Metric to Imperial for the selected Unit types. It may make sense to use Inheritance in your design, but using inheritance isn’t a requirement. Part of the grade for this assignment is to design effective classes.
Part 2:
Design a TKinter Gui interface that uses the Imperial and Metric classes. The TKinter GUI interfaces with the user to convert Imperial/Metric values.
Radio Button Set1: Allow user to select Imperial or Metric Unit.
Radio Button Set2: Allow user to select the Measurement Types.
ListBox: Displays the Unit types for the selected Measurement Type.
Textbox1: Allows user to input a value to convert.
Textbox2: Outputs the converted value.
Arrange these GUI components into a practical and user-friendly interface. Part of the grade consists of demonstrating your ability to effectively use GUI components. This is your opportunity to show what you’ve learned this quarter.
2. Exercise Plotting
Purpose: Plot a DataFrame using MatPlotLib
This exercise purpose is to design classes to organize the and process the data. The required classes are:
A). CSV File Reader. Internally the File Reader uses the Pandas CSV_Reader to read the Input CSV file. The CSV reader returns a DataFrame representing the data in the CSV file. Read the Carbon.CSV file, but don’t limit your class to only handling a specific CSV file.
B). Graph Plot. Displays a DataFrame using MatPlotLib. Select the type of plot that best represents the data.
C). Data Processor. This class manipulates the DataFrame data before plotting the data.
D). You may add more classes than these 3, but the additional classes are not required.
The Carbon.CSV file is laid-out in the 12 months per year from 1959 – 2019. Data extract:
year,month,decimal,average,interpolated,trend,#days
1959,1,1959.042,315.62,315.62,315.70,-1
1959,2,1959.125,316.38,316.38,315.88,-1
1959,3,1959.208,316.71,316.71,315.62,-1
…
2019,9,2019.708,408.54,408.54,412.14,29
2019,10,2019.792,408.53,408.53,411.96,30
2019,11,2019.875,410.27,410.27,412.26,25Your class extracts the ‘average’ column for each month, uses a map to convert the monthly data to annual and then plots the annual carbon emmissions.
The goal of this exercise is to demonstrate your ability to create effective Python Class Objects. Simply placing the keyword ‘Class’ on top of a collection of functions will receive minimal points. This is because it demonstrates no ability to create effective and usable classes.