Write and fully test a class that represents rational numbers. A rational number can be represented as the ratio of two integer values, a and b, where b is not zero. The class has attributes for the numerator and denominator of this ratio. The ratio should always be stored in its simplest form. That is, any common factor of a and b should be removed. For example, the rational number 40/12 should be stored as 10/3.
Solution to Project 9
The class has the following constructors and methods:
- A default constructor that sets me rational number to 0/1.
- A constructor that has parameters for the numerator and denominator and converts the resulting ratio to simplified form.
- simplify—a private method that converts the rational number to simplified form.
- getGCD(x, y)—a private static method mat returns the largest common factor of the two positive integers x and y, that is, their greatest common divisor. For example, the greatest common divisor of 40 and 12 is 4
- getValue—returns the rational number as a double value.
- toString—returns the rational rumberas a string in the form a/b.
Want to see the full answer?
Check out a sample textbook solutionChapter 6 Solutions
Java: An Introduction to Problem Solving and Programming (8th Edition)
Additional Engineering Textbook Solutions
Web Development and Design Foundations with HTML5 (9th Edition) (What's New in Computer Science)
Starting Out with Python (3rd Edition)
Digital Fundamentals (11th Edition)
Starting Out with Java: From Control Structures through Data Structures (4th Edition) (What's New in Computer Science)
Problem Solving with C++ (9th Edition)
- Write a Java class called HotelRoom that represents a hotel room. The class will contain the following attributes: •RoomNo (int) •PhoneNumber (string) •Capacity (int) – Number of people that room can accommodate. •Grade (int) – Grade of room ranging 1-5, 5 being most valuable. Your class should have a constructor that takes a single parameter: RoomNo. The necessary accessors (i.e. get methods) and mutators (i.e. set methods) for class variables: Room number only accessor Phone number both mutator and accessor Capacity both mutator and accessor Grade both mutator and accessor 2.Write a Java class called Hotel that represents a hotel. The class will contain the following attributes: •Name (string) •ReceptionPhone (string) •RoomList (ArrayList of HotelRoom's) hotel class should have a constructor that takes two parameters: Hotel name and reception phone. The necessary accessors (i.e. get methods) and mutators (i.e. set methods) for class variables: Hotel name only accessor Reception phone…arrow_forwardI need to write a jave program to keep track of a team sport. Write a class, Team.java, that has the following: * two private instance variables: a String named color and an int named score. * a default constructor with no parameters that initializes color to "Red" and score to zero. * a constructor that takes two parameters (one for each instance variable) and sets the values of the instance variables. * a public getter and setter method for each instance variable. * a toString method that returns the color and score in the following format: "Red Team with 0 points."arrow_forwardWrite a class called Investment with fields called principal and interest. The constructor should set the values of those fields. There should be a method called value_after that returns the value of the investment after n years. The formula for this is p(1+i)ⁿ, where p is the principal, and i is the interest rate.arrow_forward
- box1 and box2 are instances of the Box class. Attributes length, width, and height of both box1 and box2 are read from input. Then, two strings are read from input. In the Box class, define instance method print_measurements() with self and one string as parameters to output the string parameter in one line, and the following in the next line: The value of attribute length ' by ' The value of attribute width ' by ' The value of attribute heightarrow_forwardImplement a class Season that represents a season during a specified year. For purposes of thisproblem, assume that the seasons in each year are, in order, 'Winter', 'Spring', 'Summer', 'Autumn' .__init__, __repr__A Season object is created by calling the constructor and supplying two optional arguments:1. season, defaults to 'Winter'2. calendar year, an int , defaults to 2023For the __repr__ , see the usage below: The next and prev methods modify a Season object by changing it to the next season or previousseason in sequence, respectively. Note that the seasons can "roll over" or "roll back" and that this maychange the year by +/-1. 1. During each year, the seasons occur in this sequence: 'Winter', 'Spring', 'Summer', 'Autumn' 2. next - change to next season, if the current season is Autumn then year will increase by 1 3. prev - change to previous season, if Winter then year will decrease by 1 Implement the == operator ( __eq__ method) to compare two Season…arrow_forwardTake the tax program from the last homework assignment and implement it using classes and objects instead. To do so, create a class definition for a class called Customer with attributes income and tax. It should also have a set method for income, and a calcTax() method to assign tax and return it. As a reminder, the tax is calculated as follows: Income Tax Due $0 - $50,000 5% $50,000-$100,000 $2,500 + 10% of (income > $50,000) > $100,000 $7,500 + 15% of (income > $100,000) Create a Customer object in main, have the user enter the income and assign this to the income variable of the Customer object, and then call the calcTax() method for the Customer object and print the tax due.arrow_forward
- Consider a class Movie that contains the following information about a movie. The class has the following attributes: Title MPAA Rating (e.g. G, PG, PG-13, R) Number of people who rated this movie as a 1 (Terrible) Number of people who rated this movie as a 2 (Bad) Number of people who rated this movie as a 3 (OK) Number of people who rated this movie as a 4 (Good) Number of people who rated this movie as a 5 (Great) Implement the Movie class such that it is able to contain the above information. Include constructor that would accept two parameters and initialize the movie's title to the value of its first parameter and the movie's MPAA rating to the value of its second parameter, and public rating to 0. Also include access member functions for title and MPAA rating. Include a member function to increment the public rating that will only accept integer values between 1 and 5. Finally, write a member function that would return the average public rating of a movie. Write a…arrow_forwardFor the 'The Chicken class' on the app intelliJ in java. The Chicken class must:• Define three fields called exactly name, pricePerKilo and inStock. The name field must be of type String, the pricePerKilo must be of type int (representing the cost per kilo in pence) and the inStock field must be of type boolean.• Initialise the three fields via a constructor that takes exactly two parameters. The first parameter must be of type String and the second parameter must be of type int. The first parameter must initialise the name field and the second must initialise the pricePerKilo field. The constructor must set the inStock field to true for all Chicken objects. There must be no parameter to the constructor for the inStock field.• Define getters for all three fields using the standard getter naming convention. In particular, note that the getter for the inStock field must be called getInStock rather than isInStock.• Define setters for the pricePerKilo and inStock fields using the standard…arrow_forwardCreate a class with the name 'QuadraticSolver'.The two roots of a quadratic equation of the form ??2 + ?? + ? = 0 can be obtained using the quadratic equation formula ?2 − 4?? is called the discriminant of the quadratic equation. If it is positive, the equation has two real roots. If it is zero, the equation has one root. If it is negative, the equation has no real roots. In the QuadraticSolver main method, write a program that prompts the user to enter values for a, b, and c and displays the result based on the discriminant. If the discriminant is positive, display the two roots. If the discriminant is 0, display one root. Otherwise, display the imaginary roots. Note that you can use Math.pow(x, 0.5) to compute √?. Here are three separate sample runs: 1.0, 3, 1The equation has two roots: -0.38 and -2.62 1, 2.0, 1The equation has one root: -1.00 1, -4, 8The equation has two imaginary roots: 2.00 + 2.00i and 2.00 - 2.00iarrow_forward
- I have provided you with 3 interfaces (HasLegs, HasWings, and BreathesUnderwater) and a Tester class. I want you to create 6 new classes: • 2 that implement HasLegs • 2 that implement HasWings • 2 that implement BreathesUnderwater For each of the classes, you will have to implement the methods that the interface dictates. In addition, override toString so that it prints out a simple message describing what the object is. See the example output of my implementation below for an idea how to do that. The Tester class creates 3 ArrayLists, one for each interface. It also loops through each ArrayList and prints out its contents using toString and the interface methods. In between those two chunks of code, you’ll see a //TODO: comment. It is there that I want you to create one object for each of the 6 classes you created and add that object to the appropriate ArrayList. Once you have done all that, you should be able to run your program and see output like the following: I am a table. I have…arrow_forwardIn this java assignment, we will be creating a pay stub for an employee using classes. Each class must be implemented into their own file, a total of 5 classes/files. We are going to implement the following classes: Employee – This class represents an employee. It needs the following fields exposed via getters and setters: Employee ID (we will need to make this unique, for now, just hard code it to 1). First name, Last name, Middle initial Address, City, Zip Phone, Email Hourly Rate PayPeriod – This class represents an employee’s payment information. An employee will eventually have more than one pay period. It must contain the following fields (exposed via getters and setters): Pay period Id (hard code it for now) Employee Id (who is this for) Start Date, End Date Number of hours PayrollManager – This class provides the functionality we need to compute and display our payroll. It should implement the following methods: double CalculateGrossPay (Employee, Payperiod) – This…arrow_forwardIn this challenge, we'll implement an Account class along with two derived classes, Savings and Current. Problem Statement# Write a code that has: ● A parent class named Account. ○ Inside it define: ■ a protected double member balance ■ public void Withdraw(double amount) ■ public void Deposit(double amount) ■ public void printBalance() ● Then, there are two derived classes ○ Savings class ■ has a private member interestRate set to 0.8 ■ Withdraw(double amount) deducts amount from balance with interestRate ■ Deposit(double amount) adds amount in balance with interestRate ■ printBalance() displays the balance in the account ○ Current class ■ Withdraw(double amount) deducts amount from balance ■ Deposit(double amount) adds amount in balance ■ printBalance() displays the balance in the account Input# ● In the Savings class, balance is set to 50000 in the parametrized constructor ● In the Current class, balance is set to 50000 in the parametrized constructor Output# Balance before…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education