Chapter 10, page 699-700, Programming Project #3, Family database program: plus add a Family Tree Class. First, complete this Chapter 10 ArrayList and then upgrade into a FamilyTree Class as described below. I repeat: First complete Chapter 10 Project #3, 99% of the student questions are from those who skip that step!!! I've included the Person Class file from the BJP text author to give you a good start: Person.java After the Chapter 10 run displays as shown here: Capture1.JPG These data come from the file names.txt which is the exact same list of names provided by our text author back in Chapter 10 (tudor.dat) but modified for this assignment. In the above screen capture, please notice a few things. Note the upper output is identical to what's in the text, then at the bottom, I display the same data as a printSideways Tree.
I also note that one of the children is Mary I, so I can enter that name too, and get the following family tree information: Capture2.JPG The main() test program from the text author I've changed to FamilyTest.java which you cannot alter, as that's what I'll use to test your FamilyInfo and FamilyTree classes. The person names and family information are provided in a text file names.txt which is simply a list of person-mother-father information that the text author has provided. Side note: the data from our text (tudor.dat) has the problem of assuming the first list of names will be exactly the same as the second list of names, no spelling errors or name variations, I avoid this by providing the list of names only once in names.txt CRUCIAL: Download the names.txt file into your project folder (not src).
You need to actually download this file (not the textbook version) and read the file as is, else you will create code that does not work with my file, and your code will fail all testing (ouch!!!). I will actually test code with a smaller version (8 names) of this same file. So don't let a surprise line feed, a blank line, or extra new line kill your program. Try a smaller file!!! Your FamilyTree class should be a binary tree, similar to IntTree in the text, but Person replaces the int as data. This creates a tree of Person nodes. When the user selects a Person, the program builds a customized FamilyTree with that Person at the root, their mother on the left, and father on the right. Since the mother is also a Person, another valid sub-tree needs to be built for her, and another valid sub-tree off the father on the right. An unknown parent can be treated as a null. Upload your completed FamilyInfo.java and FamilyTree.java files when done. I will use FamilyTest.java and Person.java to test your submissions.