Posted by: iamunknown November 30, 2011
help with java assignment
Login in to Rate this Post:     0       ?        
 
import java.util.*;
 
public class Student
{
//Class Variables
private int ID = -1;
private String FIRST_NAME = "NULL";
private String MIDDLE_NAME = "NULL";
private String LAST_NAME = "NULL";
private String ADDRESS = "NULL";
private boolean REGISTERED = false;
private boolean GRADUATE = false;
private ArrayList<Course> COURSES;
 
//ID Methods
public int getID()
{
return ID;
}
 
public void setID(int id)
{
ID = id;
}
 
//Name Methods
public String getName()
{
if(MIDDLE_NAME.equals("NULL"))
return FIRST_NAME + " " + LAST_NAME;
return FIRST_NAME + " " + MIDDLE_NAME + " " + LAST_NAME;
}
 
public void setName(String name)
{
if(name.indexOf(" ") > 0)
{
if(name.indexOf(" ", name.indexOf(" ")+1) > 0)
{
setFirstName(name.substring(0, name.indexOf(" ")));
setMiddleName(name.substring(name.indexOf(" ")+1, name.indexOf(" ", name.indexOf(" ")+1)));
setLastName(name.substring(name.indexOf(" ", name.indexOf(" ")+1)));
}
else
{
setFirstName(name.substring(0, name.indexOf(" ")));
setLastName(name.substring(name.indexOf(" ")+1));
}
}
else
setFirstName(name);
}
 
//First Name Methods
public String getFirstName()
{
return FIRST_NAME;
}
 
public void setFirstName(String first)
{
FIRST_NAME = first;
}
 
//Middle Name Methods
public String getMiddleName()
{
return MIDDLE_NAME;
}
 
public void setMiddleName(String middle)
{
MIDDLE_NAME = middle;
}
 
public String getMI()
{
return getMiddleName().charAt(0) + ".";
}
 
//Last Name Methods
public String getLastName()
{
return LAST_NAME;
}
 
public void setLastName(String last)
{
LAST_NAME = last;
}
 
//Address Methods
public String getAddress()
{
return ADDRESS;
}
 
public void setAddress(String address)
{
ADDRESS = address;
}
 
//Registered Methods
public boolean isRegistered()
{
return REGISTERED;
}
 
public void setRegistered(boolean registered)
{
REGISTERED = registered;
}
 
//Graduate Methods
public boolean isGraduate()
{
return GRADUATE;
}
 
public void setGraduate(boolean graduate)
{
GRADUATE = graduate;
}
 
//Course Variables
public ArrayList<Course> getCourses()
{
return COURSES;
}
 
public Course getCourse(int index)
{
return COURSES.get(index);
}
 
public void setCourses(ArrayList<Course> courses)
{
COURSES = courses;
}
 
public void setCourse(int index, Course course)
{
COURSES.set(index, course);
}
 
public void addCourse(Course course)
{
try
{
COURSES.add(course);
}
catch(Exception e)
{
Course[] temp = {course}; //Create a singular array
List<Course> list = Arrays.asList(temp); //Convert it to a list
setCourses(new ArrayList<Course>(list)); //Set it as the courses
}
}
 
//Counting Methods
public int getCourseCount()
{
try
{
return COURSES.size();
}
catch(Exception e)
{
return 0; //No courses exist
}
}
 
public int getCreditHours()
{
int sum = 0;
for(int i = 0; i < getCourseCount(); i++)
sum += getCourse(i).getCreditHours();
return sum;
}
 
public int getCreditLimit()
{
return isGraduate() ? 12 : 6; //These values are specified by the assignment
}
 
//Validation Methods
public boolean isValidCourse(Course course)
{
//Requires proper graduate level and credit count
if(isGraduate() != course.isGraduateLevel())
return false;
else if(getCreditHours() + course.getCreditHours() > getCreditLimit())
return false;
else if(isEnrolled(course))
return false;
return true;
}
 
public boolean isValidated()
{
for(int i = 0; i < getCourseCount(); i++)
if(!isValidCourse(getCourse(i)))
return false;
return true;
}
 
public boolean isEnrolled(Course course)
{
try
{
return getCourses().contains(course);
}
catch(Exception e)
{
return false; //No courses exist
}
}
 
//Searching Methods
public Course findCourseByID(int id)
{
for(int i = 0; i < getCourseCount(); i++)
if(getCourse(i).getID() == id)
return getCourse(i);
return null;
}
 
public Course findCourseByName(String name)
{
for(int i = 0; i < getCourseCount(); i++)
if(getCourse(i).getName().compareTo(name) == 0)
return getCourse(i);
return null;
}
 
//Other Methods
public String toString()
{
//Outputs in the format:
// Name ID \t
// Address \t
// [Graduate] [Registered] (T/F) \t
// [IDs] (1, 2, 3, 4...)
 
String output = "";
output += getName() + " " + getID() + "\t";
output += getAddress() + "\t";
output += isGraduate() + " " + isRegistered() + "\t";
 
for(int i = 0; i < getCourseCount()-1; i++)
output += getCourse(i).getID() + ", ";
output += getCourse(getCourseCount()-1).getID();
 
return output;
}
 
public int compareTo(Student student)
{
return getLastName().compareTo(student.getLastName());
}
}
Read Full Discussion Thread for this article