?
Solved

abstract, interfaces, maps & sets, taking reading and saving to file

Posted on 2004-10-12
5
Medium Priority
?
187 Views
Last Modified: 2010-03-31
Hi. Basically i have a task that involves me having student. This student can have 4 units, of which each unit can have assessments. An assessment is either a test or assignment. An Assignment can be completed in group of individually. What needs to happen is that the student manager class runs the program. I have to be able to add delete & alter units, list assessments, & details of student & their units / assessments basically.  This needs to be the saved to file, & altered or viewed at any time. Assessments must be able to be viewed by due date & by unit.

i have included some of the classes i have started on. Where im stuck really is where to use TreeSet, HashMap, ArrayList (bc they r the three we have to use) & how the classes relate to each other. So really just a hand with the base classes.  Any help or pointers would be so very much appreciated.  I have the classes at the moment so that TheStudentManager controls the program. Unit Class. Contact Class (abstract) of which Student & Staff extend.  Assessment (abstract) of which Test and Assignment extend.

thanks
matt


Assessment class:

import java.util.*;
import java.io.*;

public abstract class Assessment
{
      // instance variables - replace the example below with your own
    protected String time;
    protected String date;
         
 
   
    public Assessment()
    {
        time = "unknown";
        date = "unknown";
       
    }

public Assessment(String date, String time)
    {
        this.date = date;
        this.time = time;
    }

   
   public String getDate()
   {
       return date;
   }


 
    public void setDate(String newDate)
    {
        date = newDate;
    }


   
    public String getTime()
    {
        return time;
    }
   
   
 
    public void setTime(String newTime)
    {
        time = newTime;
    }
   
 public abstract void print();
}


Test

import java.util.*;
import java.io.*;

public class Test extends Assessment
{
    private String duration;
    private String topics;
   
    public Test()
    {
        // initialise instance variables
        super("unknown", "unknown");
        duration = ("3 hours");
        topics = ("why we hate java");
    }
   
    Test(String date, String time, String newDuration, String newTopics)
    {
        super (date, time);
        duration = newDuration;
        topics = newTopics;
       
    }
   
       
    public void setDuration(String newDuration)
    {
        duration = newDuration;
    }
   
   
   
    public void setTopics(String newTopics)
    {
        topics = newTopics;
    }
   
   
       
    public void print()
    {
        System.out.println("" + "\n" +
                            "time : " + time + "\n" +
                            "duration" + duration + "\n");
    }
}
   
Assignment

import java.util.*;
import java.io.*;

public class Assignment extends Assessment
{
    private String dateDue;
    private String subject;
   
   
    public Assignment()
    {
        // initialise instance variables
        super("unknown", "unknown");
        subject = ("Java");
        dateDue = ("30th Oct");
    }

   
    Assignment(String date, String time, String newDateDue, String newSubject)
    {
        super (date, time);
        dateDue = newDateDue;
        subject = newSubject;
       
    }
   
   
   
    public void setSubject(String newSubject)
    {
        subject = newSubject;
    }
   
   
   
    public void setDateDue(String newDateDue)
    {
        dateDue = newDateDue;
    }
   
   
       
    public void print()
    {
        System.out.println("" + "\n" +
                            "time : " + time + "\n" +
                            "subject" + subject + "\n");
    }
}
   

   

Contact

import java.util.*;
import java.io.*;
public abstract class Contact
{
      // instance variables - replace the example below with your own
      protected String id;
    protected String name;
         protected String emailAddress;
    protected String address;
    protected String phoneNumber;
      
     
    public Contact()
    {
        id = "unknown";
        name = "unknown";
        emailAddress = "unknown@monash.edu.au";
        address = "unknown";
        phoneNumber = "00000000";
    }

public Contact(String newId, String newName, String newEmailAddress, String newAddress,
                           String newPhoneNumber)
    {
        // initialise instance variables
        if(!setId(newId))
            id = "unknown";
        if(!setName(newName))
            name = "unknown";
        if(!setEmailAddress(newEmailAddress));
            emailAddress = "unknown";
        if(!setAddress(newAddress))
            address = "unknown";
        if(!setPhoneNumber(newPhoneNumber))
            phoneNumber = "00000000";
    }

/**
* InvalidBlank method: checks that no fields have been left
* blank or empty
*/
   
    public boolean invalidBlank(String aString)
    {
        if (aString.trim().length()!=0)
        return true;
            return false;
    }
   
   
/**
 * This method retrieves the id of the Contact
 *
 * @return a String representing the Contact's id
 */
   
   public String getId()
   {
       return id;
   }

/**
 * This method sets the id of the contact
 *
 * @param newId the string holding the id of the contact
 * @return a boolean signifying that the id has been set
 */
   
   public boolean setId(String newId)
   {
       if(invalidBlank(newId))
       {
           id = newId;
           return true;
       }
       return false;
   }


/**
 * This method retrieves the name of the Contact
 *
 * @return a String representing the Contact's name
 */
   
   public String getName()
   {
       return name;
   }

/**
 * This method sets the name of the Contact
 *
 * @param newName the string holding the name of the Contact
 * @return a boolean signifying that the name has been set
 */
   
   public boolean setName(String newName)
   {
       if(invalidBlank(newName))
       {
           name = newName;
           return true;
       }
       return false;
   }



/**
 * This method retrieves the emailAddress of the Contact
 *
 * @return a String representing the Contact's emailAddress
 */
   
   public String getEmailAddress()
   {
       return emailAddress;
   }


/**
 * This method sets the name of the Contact
 *
 * @param newDescription the string holding the Description of the booker
 * @return a boolean signifying that the Description has been set
 */
   
   public boolean setEmailAddress(String newEmailAddress)
   {
       if(invalidBlank(newEmailAddress))
       {
           emailAddress = newEmailAddress;
           return true;
       }
       return false;
   }

/**
 * This method retrieves the street address of the Booker
 *
 * @return a String representing the Booker's street address
 */
   
   public String getAddress()
   {
       return address;
   }

/**
 * This method sets the address of the booker
 *
 * @param newAddress the string holding the address of the booker
 * @return a boolean signifying that the address has been set
 */
   
   public boolean setAddress(String newAddress)
   {
       if(invalidBlank(newAddress))
       {
           address = newAddress;
           return true;
       }
       return false;
   }



   
   public String getPhoneNumber()
   {
       return phoneNumber;
   }

 
  public boolean setPhoneNumber(String newPhoneNumber)
   {
       if(validPhoneNumber(newPhoneNumber))
       {
           phoneNumber = newPhoneNumber;
           return true;
       }
       return false;
   }

/**
 * this method validates the name so as it is not empty or balnk
 */
   
   public boolean validPhoneNumber(String newPhoneNumber)
   {
       if(newPhoneNumber.trim().length() <= 8 && newPhoneNumber.trim().length() >= 10)
       {
           System.out.println("Phone Number must contain 8-10 digits");
           return false;
       }
       return true;
       
   }
   public abstract void print();
}



Student


import java.util.*;
import java.io.*;

public class Student extends Contact
{

            public Student()
      {
            // initialise instance variables
            super("unknown", "unknown", "unknown@monash.edu.au", "unknown", "00000000" );
      }
      
      
          
    Student(String id, String name, String emailAddress, String address,
                        String phoneNumber)
    {
        super (id, name, emailAddress, address, phoneNumber);
       
    }
   


      
      public void print()
      {
          System.out.println();
      }
      

      
}



Unit


import java.io.*;
import java.util.*;

public class Unit
{
    // instance variables - replace the example below with your own
    private String unitCode;
    private String unitName;
    private Map unitAssessments;
    private String unitLecturer;
    private String unitDescription;


    public Unit()
    {
        // initialise instance variables
        unitCode = "cse0000";
        unitName = "unknown";
        unitLecturer = "unknown";
        unitDescription = "unknown";
        unitAssessments = new TreeMap();
    }
   
    public Unit(String unitCode, String unitName, String unitLecturer, String unitDescription)
    {
        this.unitCode = unitCode;
        this.unitName = unitName;
        this.unitLecturer = unitLecturer;
        this.unitDescription = unitDescription;
        unitAssessments = new TreeMap();
    }
   

   
      public void addUnitAssessments(String unitCode, int unitAssessments)
      {
          Integer nF = new Integer(unitAssessments);
          this.unitAssessments.put(unitCode,nF);
      }
      

      
      private void printUnitAssessments()
      {
          Set keys = unitAssessments.keySet();
          Iterator kI = keys.iterator();
          while(kI.hasNext())
          {
              String type = (String)kI.next();
              Integer numP = (Integer)unitAssessments.get(type);
              System.out.println(numP + " :" + type);
          }
      }      
      
 
    public void setUnitCode(String newUnitCode)
    {
        unitCode = newUnitCode;
    }


   
    public String getUnitCode()
    {
        return unitCode;
    }

   
    public void setUnitName(String newUnitName)
    {
        unitName = newUnitName;
    }
   


    public String getUnitName()
    {
        return unitName;
    }

   
    public void setUnitDescription(String newUnitDescription)
    {
        unitDescription = newUnitDescription;
    }
   

    public String getUnitDescription()
    {
        return unitDescription;
    }
 
      public void printUnit()
      {
          System.out.println("Unit Code: " + unitCode + "\n" + "Unit Name: " + unitName + "\n" +  "Number Of Assessments: ");
          printUnitAssessments();
      }
}





   

0
Comment
Question by:ca_dyl
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
5 Comments
 
LVL 13

Accepted Solution

by:
Webstorm earned 1000 total points
ID: 12287293
Hi ca_dyl,

Read the Java API for the classes you want (TreeSet, HashMap, ArrayList).
http://java.sun.com/j2se/1.4.2/docs/api/index.html

TreeSet is just a collection of keys. You use it to create set, and test if one value is contained in the set.

HashMap associate a key with a value. For example, you can access a student with its name :

   HashMap hm=new HashMap();

   hm.put("john",new Student("John",15,...));

   Student john=(Student)hm.get("john");


ArrayList is a kind of array whose length is variable. You use it when you know the student index in the list, or when you have to loop through all elements.

0
 
LVL 86

Expert Comment

by:CEHJ
ID: 12289950
>>
   public Assignment()
   {
       // initialise instance variables
       super("unknown", "unknown");
       subject = ("Java");
       dateDue = ("30th Oct");
   }

>>

That's not right. You wouldn't hard-code a subject and dateDue like that. Let the other ctor set these
0
 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 1000 total points
ID: 12290147
This will help you with the OO fundamentals:

http://java.sun.com/docs/books/tutorial/java/concepts/
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
Suggested Courses
Course of the Month10 days, 2 hours left to enroll

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question