DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Java (http://www.daniweb.com/forums/forum9.html)
-   -   Student Assignment (http://www.daniweb.com/forums/thread201035.html)

lovley Jul 1st, 2009 5:33 pm
Student Assignment
 
Hey you guys, I am finishing my last two assignments in my class and I am having trouble because as you will see, the directions are not as they appear. My class is online so I don't have anyone I can rack my brain to or with and did I mention both my teacher and teacher assistants are out of the country lol.....so maybe you guys will be able to help. Here is the assignment:


Create a Parent class called Student. The Student class shall have attributes name:String (a variable name which is of type String), id:int, classList:ArrayList, gradeList:ArrayList and gpa:double.
Student has two child classes BachelorStudent and MasterStudent. Both classes should have the attribute effectiveGPA:double as well as the method calculateGPA() that returns a double and stores it in the effectiveGPA variable.
For the bachelor class, the method should take all the grades in the gradeList arraylist and average them out (Standard grades, A=4, B=3, C=2, D=1, F=0). For the masters class, the method does the same and then multiplies the result by 0.98.

Write a test driver class to create a bachelor student and a master student. Assign 4 grades in their gradelist variable for each - you can either hardcode this or use input from the screen - your choice.

Once done, calculate and print their GPAs along with their Name and ID and designation (Bachelors or Masters student). Also list out any grades for them that are A and F - do this by using the iteration functionality built in to go through each element in the arraylist and check to see if it is A or F, if so, print it.
Also, in output, first print your name, assignment number, and current date in at least two different format. Not hard coded dates, but current day of the day it is executing.

Attack this assignment one small piece at a time.
First - create the classess.
Second - write the methods for the subclasses
Test out the methods by assigning grades and seeing if they work
Third - study the ArrayList structure to see how iteration through it works.
Write a simple iterator through a test arraylist to see if you can seek out a given value.
Read GregorailCalander class in JAVA API, write simple method which prints current date in two different formats.
After you've nailed all this, put all the pieces together.

Have Fun :)

So so far I have created the parent and child classes and now I am stuck on how to code the calculateGPA() method.... I know that some how I will have to convert the letter grades so that it will know what letter equals what number. I have also declared the attributes so tell me if they look right. Thank you in advance for your help!

public class Student
{
private String string;
private int id;
private String[] classList;
private double gpa;
private double[] gradeList;
private double effectiveGPA;

public double calculateGPA()
{
}
}

public class BachelorStudent extends Student
{
}

public class MasterStudent extends Student
{
}

wildgoose Jul 1st, 2009 5:57 pm
Re: Student Assignment
 
Grade conversion should be easy.
iteration
enumeration
So each enumeration A through F you can assign to to standard scoring levels?
F=0, D=1, C=2, B=3, A=4

And GPA is merely the average.
@sum( 0...N-1) / N

But you need to fill in all your class requirements first, take a pass at writing your code then we can help.

lovley Jul 1st, 2009 6:14 pm
Re: Student Assignment
 
ok so I am going to try to enumerate the grades with the Student class here is what I put:
public class Student
{
private String string;
private int id;
private String[] classList;
private double gpa;
private double[] gradeList;
private double effectiveGPA;

public enum GradeType
{
  A
  B
  C
  D
  F
}

public static double getGrade(GradeType gt)
{
    double grade = 4;
    if (gt == GradeType.A)
    else if (gt == GradeType.B)
      grade = 3;
    else if(gt == GradeType.C)
      grade = 2;
    else if(gt == GradeType.D)
        grade = 1;
    else if(gt == GradeType.F)
        grade = 0;
  return grade;
}


public double calculateGPA()
{
}
}

wildgoose Jul 1st, 2009 6:37 pm
Re: Student Assignment
 
If you're going to use an order letter enum...
public enum GradeType { A, B, C, D, F };
then no need for that case statement comparitor!

nGrade = 4 - myGradeType; { 4...0} <--- {0...4}

Just use a simple function to do the conversion!
Keep as integer. Summation as integer. But convert to float for the division for the averaging!

lovley Jul 1st, 2009 7:03 pm
Re: Student Assignment
 
so is this what it should look like so far?

public class Student
{
        private String string;
        private int id;
        private String[] classList;
        private double gpa;
        private double[] gradeList;
        private double effectiveGPA;

        public enum GradeType { A, B, C, D, F };
       
        public double getGrade()
        {
                nGrade = 4 - myGradeType; { 4...0} <--- {0...4}
        }

wildgoose Jul 1st, 2009 7:10 pm
Re: Student Assignment
 
No, I'm a bit rusty with my Java...
public int getGrade( GradeType myGrade )
{
  return 4 - myGrade;  // { 4...0} <--- {0...4}
}

lovley Jul 1st, 2009 7:32 pm
Re: Student Assignment
 
it's ok, you're helping me a lot more than my teachers lol
I just need someone to help me and break it down step by step so thank you so much for taking the time to help

ok so this is what I have so far and this is the error I am recieving.... any idea?
public class Student
{
        private String string;
        private int id;
        private String[] classList;
        private double gpa;
        private double[] gradeList;
        private double effectiveGPA;
        private double myGradeType;
        private double nGrade;

        public enum GradeType { A, B, C, D, F };

        public double getGrade()
        {
        nGrade = 4 - myGradeType; // { 4...0} <--- {0...4}
        }
}
C:\Users\Ash Ketchum\Documents\New Folder\Student.java:17: missing return statement
}
^
1 error

Tool completed with exit code 1

wildgoose Jul 1st, 2009 7:36 pm
Re: Student Assignment
 
Of course
public integer getGrade( GradeType myGrade )
{
    return  4 - myGrade; // { 4...0} <--- {0...4}
}
}
One too many braces!

And you weren't passing in an argument or returning one!

wildgoose Jul 1st, 2009 7:40 pm
Re: Student Assignment
 
I kept twiddling that post.
here's the entire thing
public integer getGrade( GradeType myGrade )
{
    return  4 - myGrade; // { 4...0} <--- {0...4}
}

VernonDozier Jul 1st, 2009 7:41 pm
Re: Student Assignment
 
Quote:

Originally Posted by lovley (Post 905724)
it's ok, you're helping me a lot more than my teachers lol
I just need someone to help me and break it down step by step so thank you so much for taking the time to help

ok so this is what I have so far and this is the error I am recieving.... any idea?

public class Student
{
private String string;
private int id;
private String[] classList;
private double gpa;
private double[] gradeList;
private double effectiveGPA;
private double myGradeType;
private double nGrade;

public enum GradeType { A, B, C, D, F };

public double getGrade()
{
nGrade = 4 - myGradeType; // { 4...0} <--- {0...4}
}
}

C:\Users\Ash Ketchum\Documents\New Folder\Student.java:17: missing return statement
}
^
1 error

Tool completed with exit code 1


Code tags:


[code=JAVA]
// paste code here
[/code]


It's impossible to read otherwise.

public class Student
{
        private String string;
        private int id;
        private String[] classList;
        private double gpa;
        private double[] gradeList;
        private double effectiveGPA;
        private double myGradeType;
        private double nGrade;

        public enum GradeType { A, B, C, D, F };

        public double getGrade()
        {
        nGrade = 4 - myGradeType; // { 4...0} <--- {0...4}
        }
}


All times are GMT -4. The time now is 1:32 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC