## Studio 4 Design Problems

### Procedure

• A number of stories appear below about various object types.
• Pick an object type, read the story, and design and implement a class in your workspace for the object type.
• Write a simple test or two to test your implementation.
• Repeat this process with another object type until the TA comes to you with a modification for one of the classes you have implemented.
• When done, fill out the feedback.txt document, commit, and have the TA clear you.
Be sure to commit your work!

### Object Types

Rectangle
A rectangle has a length and a width. A rectangle should be able to provide its area and perimeter. A rectangle can indicate whether it is smaller than another rectangle in terms of area. A rectnagle can indicate whether it is in fact a square.
Die
When a Die is constructed, it is specified to have n number of sides. Each time the die is thrown, a random integer is returned in the range 1..n, inclusively.

Fraction
A fraction has a numerator and denominator. A faction should be able to add itself to another fraction, returning a new fraction that represents the sum. A fraction should be able to multiply itself by another fraction, returning a new fraction as the product. A fraction should be able to take the reciprocal of itself, returning that value as a new fraction. A fraction should be able to simplify itself, returning a new fraction as that simplification.

Complex
This is a good one to do if you are thinking of undertaking the Julia set bridge. Find somebody who knows about complex numbers if you are not solid with them.
A complex number has a real and imaginary part, each represented as a double. A complex should be able to add itself to another complex number, returning a new compmlex number as the sum (see below). Similarly, a complex number should be able to multiply itself by another complex number, returning a new complex number as the product.
• A complex number with real part a and imaginary part b is usually shown as a + bi.
• The result of adding two complex numbers a and b is another complex number whose real part is the sum of the real parts of a and b and whose imaginary part is the sum of the imaginary parts of a and b.
• The product of (a+bi) and (c+di) is (ac-bd) + (ad+bc)i

HockeyPlayer
A hockey player has a name and a jersey number. Most players shoot either right or left, but some can shoot either way. A player can be right- or left-handed, but shoot either right or left. This object should be able to react when a player completes a game, recording how many goals and assists the player earned in that game. A player has a certain number of goals and assists he or she has recorded over all games played. Also, a player has a certain number of points, which is the sum of the goals and assists a player has earned. A player has a certain number of games he or she has played.

UnivCourse
A university course has a number, like 131, and a department, like CSE. Each course has a certain number of students currently enrolled. It is possible for students to add or drop the course after the course has been constructed. It should be possible to determine the number of students who are currently enrolled in a course.