HW: Linked Lists due Mon 24 Apr 10:00

\begin{purpose}
In this assignment you will:
\begin{itemize}
\item Modify a ...
...ed list of objects.
\item Work with census data.
\end{itemize}
\end{purpose}

Description

Your program will read a 1990 census bureau data file that contains a list of male names along with the percentage of the male population that has the specified first name. You will read a similar list of female names into a second list. Your program should produce a third list of names that appear in both lists along with the difference in percentages. The output of your program will be the third list.

Here are some suggested steps for completing this assignment:

  1. Create a Person class (along with appropriate constructor, toString(), etc.) to hold a name and a frequency.
  2. Copy IntNode.java to PersonNode.java and modify it appropriately.
  3. Copy IntList.java to PersonList.java and modify it so you can perform list operations on Person objects.
  4. Write a method that given the name of a census file will read the file and build a list from it. (NOTE: I put this method in PersonList).
  5. Build two lists (one for boys and one for girls).
  6. Traverse one list and search for its names in the other list. Build a new list that has the names that are in common. The frequency of of the name should be the difference in the frequencies of the two lists.

FYI: An example of a name that appears in both lists is QUINN. If you subtract the percentage value (frequency) of its usage as a boy name from that of its usage as a girl name you get -0.004 (which indicates it is slightly more common as a boy's name).

Grading

The assignment will be graded according to the following criteria:
Correctness 16 pts
Documentation 2 pts
Conventions 2 pts
Version Control 2 pts
Total 22 pts

Your program should be completely working and should follow all of the programming conventions named in class and explained in http://josephus.hsutx.edu/classes/all/javaconventions/ (including the use of comments that conform to the JavaDoc guidelines).

The instructor will grade your work based on what you have pushed to the hosted homework repository you have shared. For all assignments the program is due before the beginning of class on the due date. Repositories that show a commit time after that time will be graded as late.

Quick Links