CSCI 311 - Fall 2006 - Program 2

BibTeX Project which Uses a B-Tree Index of Author Names

 Assigned by Dr. J in Dr. Stapleton's absence

Dr. Melody Stapleton, Instructor

Shaun McCluskey, Teaching Assistant

Due Date: All Program Components: Thursday, November 16, uploaded by midnight

Your TA, Shaun, will provide the final input file(s) to run your program against by Tuesday, November 7.  

THE DELIVERABLES FOR THE OPERATIONAL PARTS OF THIS PROJECT HAVE BEEN MODIFIED TO BE INCREMENTAL -

THE POINTS FOR DOCUMENTATION AND STYLE REMAIN UNCHANGED AT 20% EACH.  THE REMAINING 60% OF YOUR PROGRAM SCORE, THE PERCENTAGE FOR HAVING YOUR PROGRAM RUN CORRECTLY HAS BEEN MODIFIED.  HERE ARE THE MODIFIED INCREMENTAL DELIVERABLES FOR THIS 60% OF YOUR PROGRAM SCORE -

NOTE - AS DISCUSSED IN CLASS, THE DEFAULT ORDER FOR YOUR B-TREE IS 5

ALSO NOTE - DR. J'S WEBSITE FOR THIS PROJECT IS -

http://www.ecst.csuchico.edu/~juliano/BibTeX/

He has sample *.bib files here:

http://www.ecst.csuchico.edu/~juliano/BibTeX/Files/

I. FOR 40% (OF A TOTAL 60% OF THE OPERATIONAL SCORE) -

You are to structure your main program to accept and interpret file input with the following format:

You are to have an initially empty tree, i.e. root is NULL.  Listed below are the possibilities for the different categories of commands:

Output: Send your output for this program to a file.  For inserts, it is an error to insert a duplicate value in the B-tree structure, be sure to notify the user of such an attempt.  Tell the user if an operation is successful, as well.  Be sure to give appropriate "error" messages back to the user of your program, via the output file.  For e.g., if asked to delete a value from the B-tree structure that is not found in the structure, you should reply that the value was not found and so could not be deleted.  

Also Note: You are responsible to write a program that deals with *all cases*.  That is, your program should not only *work good on some input files*, it need to work on *all possible* input files.  This means it is not your TAs responsibility to give you an input file that allows your program to work.  It is your responsibility to write code that cannot be broken by any input file and so will work in all cases.  This will be the case for every program you write for this course.

Sample Input File e.g.:

D Kandel

P

I Smith

I Trump

I Smith

I Alberts

P

D Smith

P

T

D Trump

T

P

etc......

 

II. FOR 20% MORE (OF A TOTAL OF 60% OF THE OPERATIONAL SCORE) -

 

You are to write the code that accepts the *.bib files as discussed in the original assignment and correctly parses out the author's names from that file and builds successfully the correct B-Tree index.  You do NOT need to be able to build the part of the B-Tree node that contains the "multi-map" or linked list of files with each files having it's own linked list of byte offsets to achieve this 20%.  You will need to do that to obtain the remainder of the points in part III of the incremental deliverables.  You simply need to be able to Build the B-tree index with the author name's you obtain from the *.bib files.

 

III.  FOR 40% MORE (OF A TOTAL OF 60% OF THE OPERATIONAL SCORE) -

You are to accomplish all of the tasks of the original assignment in the handout by Dr. J. titled "The BibTeX Project".   That includes all features as described in Dr. J's items 1 through 4 of that handout.