a. Write a FractionDemo
• Create properties for each field. The set access or for the denominator should not allow a 0 value; the value defaults to 1.
• Add three constructors. One takes three parameters for a whole number, numerator, and denominator. Another accepts two parameters for the numerator and denominator; when this constructor is used, the whole number value is 0. The last constructor is parameterless; it sets the whole number and numerator to 0 and the denominator to 1. (After construction, Fractions do not have to be reduced to proper form. For example, even though 3/9 could be reduced to 1/3, your constructors do not have to perform this task.)
• Add a Reduce() method that reduces a Fraction if it is in improper form. For example, 2/4 should be reduced to 1/2.
• Add an operator+() method that adds two Fractions. To add two fractions, first eliminate any whole number part of the value. For example, 2 1/4 becomes 9/4 and 1 3/5 becomes 8/5. Find a common denominator and convert the fractions to it. For example, when adding 9/4 and 8/5, you can convert them to 45/20 and 32/20. Then you can add the numerators, giving 77/20. Finally, call the Reduce() method to reduce the result, restoring any whole number value so the fractional part of the number is less than 1. For example, 77/20 becomes 3 17/20.
• Include a function that returns a string that contains a Fraction in the usual display format—the whole number, a space, the numerator, a slash (D, and a denominator. When the whole number is 0, just the Fraction part of the value should be displayed (for example, 1/2 instead of 0 1/2). If the numerator is 0, just the whole number should be displayed (for example, 2 instead of 2 0/3).
b. Add an operator*() method to the Fraction class created in Exercise 11a so that it correctly multiplies two Fractions. The result should be in proper, reduced format. Demonstrate that the method works correctly in a program named FractionDemo2.
c. Write a program named FractionDem03 that includes an array of four Fractions. Prompt the user for values for each. Display every possible combination of addition results and every possible combination of multiplication results for each Fraction pair (that is, each type will have 16 results).
Want to see the full answer?
Check out a sample textbook solutionChapter 9 Solutions
Microsoft Visual C#
- For 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_forwardConsider this scenario, a mehtod in some class needs to access a data field in another class, here are two possible implementations: public class Process { /* * Check if student qualifies for financial help */ void check(Student student) { //.... } /* * Check if student qualifies for financial help */ void check(double studentGPA) { //.... }} In class Process, which check method you think is better, why? In other words, should we pass the object to the method or just the data member it needs? Disucuss the Pros and Cons of each approach (if any). Assume class Student has a mehod called getGPA( ).arrow_forwardFor this exercise, you will be given a project file digital_pet containing two (2) classes, the DigiPet class andthe DigiPetTester class.Every DigiPet has five fields:- name- lifespan (in cycles) – max age- age (in cycles) – current age- mood (2 = joyful, 1 = happy, 0 = neutral, -1 = sad, -2 = angry)- size – current size of pet (size ≥ 1)A DigiPet has a default constructor, overloaded constructor, and some various methods which allow one tointeract with it or modify its state.Poke or pet increases or decreases its mood.Feed or exercise increases or decreases its size by a specified amount.Every time you interact with the digipet (poke, pet, feed, exercise), its age increases. When the age reaches thelifespan, it dies (or becomes a zombie).You need to modify and customize the DigiPet class as follows:- Implement the overloaded constructor: Initialize all five fields. Use the values passed as parameters toinitialize name and lifespan. Use the same default values that the default…arrow_forward
- Write a class 'Cylinder' that has two fields: height and radius. The class should have only one parameterized constructor function to initialize these fields. The class should also have a method 'getVolume()' to calculate the volume of this cylinder. Now, create any 2 objects of this class with arbitrary values and show their volumes.arrow_forwardWe have two classes, Person and Employee. Both have a field, firstName. We have instances of these objectsPerson p and Employee e. Both p and e have the same value for firstName, specifically, p.firstName = “joe”and e.firstName = “joe” Which of the following statements is necessarily true? Group of answer choices 1. p.equals(e) will return true because they contain the same firstName. 2. We don’t know if either class will have an equals method. 3. There is not enough information to tell what p.equals(e) will return. 4. p.equals(e) will return false but p == e will be true.arrow_forwardPlease write the Java code for a Phone class that represents a mobile phone, as detailed below: It should have instance variables (attributes) for make, model, color (all stored as Strings) and capacity (stored as int: the storage capacity in GB) Please define one constructor with parameters for all those attributes. The Phone class will be immutable, except its storage capacity can be changed. So please write only one mutator method, called .setCapacity. Please write accessor methods for each instance variable. Please write a .toString() method to display all the Phone's information. Please write a .equals method to compare two Phone objects, returning true if all their attributes are the same. Finish the Jave program to show the outputs bellow: Code: class Main { public static void main(String[] args) { Phone craigPhone, bettoPhone, tobyPhone; craigPhone = new Phone("Samsung", "Galaxy S21 5G", "Phantom Violet", 256); bettoPhone = new Phone("Apple", "iPhone 13 Pro",…arrow_forward
- D Create a class Sum with the following fields, constructors and methods:Fields: create two integer fields Constructors:- a no-argument constructor- a constructor with two parameters Methods:- write a getter to return the sum of fields- Create 4 overloaded calculate methods 1. method receives two integer parameters and returns the sum 2. method receives four integer parameters and returns the sum 3. method receives two double parameters and returns the sum 4. method receives two String parameters and returns the sum Create a demo class to test the two constructors, all the methods and display the returned values. You can hard code the parameters values. Make sure the four methods created are toverloaded i.e. same method name for all four.arrow_forwardWrite a program which controls a metro train and that keeps track of stations and who gets on and off. Design and implement a class called train, which has at least the following: At least the following attributes (you can include others): metroID stationNum which keeps track of the station that the train is at. iii. direction which keeps track of the direction the train is travelling in. passTotal which keeps track of the number of passengers currently on the train. A default constructor which sets the metroID to a random number between 1 and 1000, the station number to 0, the direction (int), and the passTotal to 0 (train is empty). A constructor with one parameter; the parameter is the metro id. The constructor assigns the passed integer to the metroID attribute; the rest of the attributes are set as described in the default constructor. Accessor methods for each attributes. Mutator methods for each attributes. nextStation(int lastStation) which determines the next…arrow_forwardIs there a different way of doing this problem? Question: Create a class AccessPoint with the following attributes: x - a double representing the x coordinate y - a double representing the y coordinate range - an integer representing the coverage radius status - On or Off Add constructors. The default constructor should create an access point object at position (0.0, 0.0), coverage radius 0, and Off. Add accessor and mutator functions: getX, getY, getRange, getStatus, setX, setY, setRange and setStatus. Also, add a set function that sets the location coordinates and the range. Add the following member functions: move and coverageArea. Add a function overlap that checks if two access points overlap their coverage and returns true if they overlap. Add a function signalStrength that returns the wireless signal strength as a percentage. The signal strength decreases as one moves away from the access point location. Test your class by writing a main function that creates five access…arrow_forward
- First, you need to design, code in Java, test and document a base class, Student. The Student class will have the following information, and all of these should be defined as Private: A first name (given name) A last name (family name/surname) Student number (ID) – an integer number (of type long) The Student class will have at least the following constructors and methods: (i) two constructors - one without any parameters (the default constructor), and one with parameters to give initial values to all the instance variables of Student. (ii) only necessary set and get methods for a valid class design. (iii) a reportGrade method, which you have nothing to report here, you can just print to the screen a message “There is no grade here.”. This method will be overridden in the respective child classes. (iv) an equals method which compares two student objects and returns true if they have the same student number (ID), otherwise it returns false. You may add other…arrow_forwardCreate a class Course, which has one field: String courseName Create the constructor, accessor, and mutator for the class. Then, in the main method of this class, create an instance of the class with the name "CST1201". Write an equivalent while statement to replace the following for statement for (int i=2; i<100; i=i+2) { System.out.println(i); }arrow_forwardThe client needs a program to store data on sandwiches, including bread name, filling name, and calories (cal) Testing values for get and set methods are bread name: “whole-wheat”, filling: “tuna”, and calories 250.50 Testing values for overloaded constructor are bread name: “rye”, filling: “chicken”, and calories 300.25 Using the word problem above, design a class with the needed fields, a no parameter constructor, an overloaded constructor with three parameters, and needed methods (gets sets). Document your design using a detailed UML Class diagram. Part 2 Write the Java code for the class Follow your UML class diagram and code the class you designed. Use Java coding conventions for identifiers: class, constructor, field, variable, and method names Mark fields private, constructor and methods public. Select and use appropriate data types for the fields as well as method parameters as needed. Comment your code as requested and demonstrated in the course. Part 3 Test the…arrow_forward
- Microsoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningProgramming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:Cengage