Question
Homework 3 Problem 1: PART I: Create an abstract Java class named TwoDFigure in a package named GEOFIGURES. This class has 3 attributes: (1) dimension:
Homework 3 Problem 1: PART I: Create an abstract Java class named TwoDFigure in a package named GEOFIGURES. This class has 3 attributes: (1) dimension: a constant, public, of type byte, and set to value of 2 (2) shape: protected, of type String (e.g.: circle, square, etc.) (3) length unit: protected, of type String (e.g.: cm, m, ft, in) Class TwoDFigure declaration provides a default constructor, get-methods and set-methods for the variable attributes (shape and length unit), an abstract method to calculate perimeter (calculatePerimeter()), an abstract method to calculate area (calculateArea()), and another abstract method (displayFigureData()). PART II: Create a Java class named Circle in the same package, i.e. GEOFIGURES, that extends the above class TwoDFigure. Class Circle has 1 attribute: radius that should be defined as private. Class Circle declaration provides: a default constructor, another constructor that accepts radius as a parameter, get-method and set-method for the attribute radius, a method to get the diameter, a method to calculate perimeter (calculatePerimeter()) that overrides the method of the same name of the superclass TwoDFigureand returns the value of perimeter a method to calculate area (calculateArea()) that overrides the method of the same name of the superclass TwoDFigure and returns the value of area a method (displayFigureData()) that overrides the method of the same name of the superclass TwoDFigure and prints out information to indicate that the figure is a circle and value of its radius. PART III: Create a Java class named Rectangle in the same package, i.e. GEOFIGURES, that extends the above class TwoDFigure. This class has 2 attributes: width and length that both should be defined as private. Class Rectangle declaration provides: a default constructor, another constructor that accepts its width and length as two different parameters, get-methods and set-methods for the attributes width and length, a method to calculate perimeter (calculatePerimeter()) that overrides the method of the same name of the superclass TwoDFigure and returns the value of perimeter a method to calculate area (calculateArea()) that overrides the method of the same name of the superclass TwoDFigure and returns the value of area a method (displayFigureData()) that overrides the method of the same name of the superclass TwoDFigure and prints out information to indicate that the figure is a rectangle and values of its width and length. PART IV: Write a Java program that can calculate and print out the perimeter and area of a 2D figure. This figure can be either a circle, or a rectangle. First, the program reads an input of a numeric figure code that identifies which type of 2D figure that the user wants to work with. The values of figure code are: 1 for circle 2 for rectangle The input of figure code must be verified to be sure that it is valid, i.e. can be only either 1 or 2. For the circle, the user enters data of the radius and then its measurement unit (in for inch, ft for feet, cm for centimeter, and m for meter) from the console. For the rectangle, the user enters data of width, data of length, and then the measurement unit (in for inch, ft for feet, cm for centimeter, and m for meter) from the console. The program should check to be sure that each numeric input is not negative and the measurement unit must be one among the listed-above units. The Java program is another Java class named FigureCalculator in the same package, i.e. GEOFIGURES. To provide a solution to the problem, it is expected that inheritance and polymorphism are used in the coding. IMPORTANT NOTES: The following Notepad files are expected to be submitted as the solution to Problem 1: TwoDFigure.txt Circle.txt Rectangle.txt FigureCalculator.txt Problem 2: PART I: Create an abstract Java class named Student in a package named STUDENTS. This class has 4 attributes: (1) student ID: protected, an integer of 10 digits (2) student name: protected (3) student group code: protected, an integer (1 for undergraduates, 2 for graduate students) (4) student major: protected (e.g.: Business, Computer Sciences, Engineering) Class Student declaration provides a default constructor, get-methods and set-methods for the attributes, a public abstract method (displayStudentData()). PART II: Create a Java class named Undergraduate in the same package, i.e. STUDENTS, that extends the above class Student. Class Undergraduate has its own one attribute: undergradLevel: private, a String, to indicate the student level: freshman, sophomore, junior, or senior Class Undergraduate declaration provides: a default constructor, another constructor that accepts 4 parameters: student ID, student full name, major, and undergraduate level get-method and set-method of its own attribute a method to return the priority code to register classes (return 1 if senior, 2 if junior, and so on) a method (displayStudentData()) that implements the abstract method of the same name of the super class and prints out information of a student in a format like the following sample (all in one line): Student ID: 1234567890; John Smith; senior undergraduate; Business PART III: Create a Java class named Graduate in the same package, i.e. STUDENTS, that extends the above abstract class Student. This class has one attribute: isTaRa: private, a boolean, to indicate whether the student is a TA (Teaching Assistant) or RA (Research Assistant) Class Graduate declaration provides: a default constructor, another constructor that accepts 4 parameters: student ID, student full name, major, and a boolean parameter to indicate whether the student is a TA or a RA. get-method and set-method of its own attribute a method (displayStudentData()) that implements the abstract method of the same name of the superclass Student and prints out information of the student in a format like the following sample (all in one line): If a graduate student is not a TA/RA: Student ID: 1234567890; John Smith; graduate; Information Technology and Management If a graduate student is a TA/RA: Student ID: 1234567890; John Smith; graduate; TA; Information Technology and Management PART IV: Write a Java program that can get data of a student and print out the data. The student can be either an undergraduate or a graduate. First, the program reads an input of a numeric code that identifies which course work level of student that the user wants to work with. The values of course work level code are: 1 for undergraduate 2 for graduate The input of the numeric code must be verified to be sure that it is valid, i.e. can only be either 1 or 2. For the undergraduate, then the user enters the following pieces of student data from the console: 1. Student ID 2. Student full name (first name first) 3. Student's major 4. Student's undergraduate level For the graduate, the user enters the following pieces of student data from the console: 1. Student ID 2. Student full name (first name first) 3. Student's major 4. Student's status of being aTA/RA: enter 1 for YES; enter 0 for NO For the input verification: The input of student ID should be verified that it is not negative or 0. The input of the full name and major should be verified that they are not empty string. The input of the undergraduate level should be verified that it can only be "freshman", "sophomore", "junior", or "senior". The input of the status of being aTA/RA should be verified that it can only be 0 or 1. The Java program is another Java class named StudentDisplayer in the same package, i.e. STUDENTS. To provide a solution to the problem, it is expected that inheritance and polymorphism are used in the coding. IMPORTANT NOTES: The following Notepad files are expected to be submitted as the solution to Problem 1: Student.txt Undergraduate.txt Graduate.txt StudentDisplayer.txt
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started