Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

.lT-Mobile 5:01 PM ? https://elearning.utdallas.edu 28 The following Notepad fil

ID: 3912860 • Letter: #

Question

.lT-Mobile 5:01 PM ? https://elearning.utdallas.edu 28 The following Notepad files are expected to be submitted as the solution to Problem 1 TwoDFigure.txt .Circle.txt Rectangle.txt FigureCalculatortxt Problem 2: PARTI 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: protectecd (3) student group code: protected, an integer (1 for undergraduates, 2 for graduate students) (4) student major: protected (e.g.: Business, Computer Class Student declaration provides a default constructor, get methods and set-methods for the attributes, a public abstract method (displayStudentData0). 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 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

Explanation / Answer

Hi,
Please find the java classes below:

//////////////////////////////////////////

public abstract class Student {
    protected int studentID;
    protected String name;
    protected int groupCode;
    protected String major;

    //Constructor
    public Student(){

    }

    //Setters and Getters
    public int getStudentID() {
        return studentID;
    }

    public void setStudentID(int studentID) {
        this.studentID = studentID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getGroupCode() {
        return groupCode;
    }

    public void setGroupCode(int groupCode) {
        this.groupCode = groupCode;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }


    public abstract void displayStudentData();
}

///////////////////////////////////////////

public class Undergraduate extends Student {
    private String undergradeLevel;

    //Constructors
    public Undergraduate(){

    }

    public Undergraduate(int id,String name,String major,String level){
        super.studentID=id;
        super.name=name;
        super.major=major;
        this.undergradeLevel=level;
    }

    public String getUndergradeLevel() {
        return undergradeLevel;
    }

    public void setUndergradeLevel(String undergradeLevel) {
        this.undergradeLevel = undergradeLevel;
    }

    public int priorityCode() {
        if(undergradeLevel.equalsIgnoreCase("senior"))
            return 1;
        else if(undergradeLevel.equalsIgnoreCase("junior"))
            return 2;
        else if(undergradeLevel.equalsIgnoreCase("sophomore"))
            return 3;
        else
            return 4;
    }


    @Override
    public void displayStudentData() {
        System.out.println("StudentID:" + studentID
                + "; " + name
                + "; " + "undergraduate"
                + "; " + undergradeLevel
                + "; " + major);
    }

}
///////////////////////////////////////


public class Graduate extends Student {
    private boolean isTaRa;

    //Constructors
    public Graduate(){

    }

    public Graduate(int id,String name,String major,boolean TaRa){
        super.studentID=id;
        super.name=name;
        super.major=major;
        this.isTaRa=TaRa;
    }

    @Override
    public void displayStudentData() {
        System.out.println("StudentID:" + studentID
                + "; " + name
                + "; " + getTaRaString()
                + "; " + "graduate"
                + "; " + major);
    }

    public boolean isTaRa() {
        return isTaRa;
    }

    public void setTaRa(boolean taRa) {
        isTaRa = taRa;
    }

    private String getTaRaString(){
        if(isTaRa)
            return "TA";
        else
            return "RA";
    }
}
////////////////////////////////////////////


import java.util.Scanner;

public class StudentDisplayer {
    public static void main(String[] args){
        int workLevelChoice;
        Student s;
        Scanner input = new Scanner(System.in);
        System.out.print("Enter course work level:");
        workLevelChoice = input.nextInt();
        s= takeInput(input,workLevelChoice);
        s.displayStudentData();
    }

    public static Student takeInput(Scanner input,int choice){
        int id;
        String name;
        String major;
        String level;
        String status;
        boolean taRa;
        Student student=null;
        switch(choice){
            case 1:
                id=validateStudentID(input);
                name=validateName(input);
                System.out.print("Enter student major:");
                major = input.next();
                level = validateUndergradLevel(input);
                student=new Undergraduate(id,name,major,level);
                break;
            case 2:
                id=validateStudentID(input);
                name=validateName(input);
                System.out.print("Enter student major:");
                major = input.next();
                taRa = validateTaRa(input);
                student=new Graduate(id,name,major,taRa);
                break;
        }
        return student;
    }

    public static int validateStudentID(Scanner input){
        int id=0;
        boolean proceed=true;
        while(proceed){
            System.out.print("Enter student id:");
            id=input.nextInt();
            if(id > 0)
                proceed=false;
        }
        return id;
    }

    public static String validateName(Scanner input){
        String name=null;
        boolean proceed=true;
        while(proceed){
            System.out.print("Enter student name:");
            name=input.next();
            if(name.equalsIgnoreCase(" ")
                    ||name.equalsIgnoreCase("")) {
                proceed = true;
                continue;
            }
            proceed=false;
        }
        return name;
    }

    public static String validateUndergradLevel(Scanner input){
        String level=null;
        boolean proceed=true;
        while(proceed){
            System.out.print("Enter student graduate Level:");
            level=input.next();
            if(level.equalsIgnoreCase("freshman")||
                    level.equalsIgnoreCase("sophomore")||
                    level.equalsIgnoreCase("junior")||
                    level.equalsIgnoreCase("senior")) {
                proceed = false;
                break;
            }
            proceed=true;
        };
        return level;
    }

    public static boolean validateTaRa(Scanner input){
        boolean status=true;
        String str;
        boolean proceed=true;
        while(proceed){
            System.out.print("Enter student teaching status:");
            str=input.next();
            if(str.equalsIgnoreCase("1")||
                    str.equalsIgnoreCase("0")
                    ) {
                proceed = false;
                break;
            }
            if(str.equalsIgnoreCase("1"))
                status=true;
            if(str.equalsIgnoreCase("0"))
                status=false;
            proceed=false;
        };
        return status;
    }
}
////////////////////////////////////////////////////

Hope this helps.

you can improve the StudentDisplayer class.

Let me know if something is missing.