CSCI 2270 Computer Science 2: Data Structures
Fall 2003
Karl Winklmann
 

Recent news item(s) :

  1. The winners of the project competition are ...

    In first place ...

        D. Football Game

    and a tie for second place between

        E. 3D Graph Path Game, and
        K. Distributed Genetic Algorithms.

    Congratulations, and thanks to everybody who showed a project. Winners can pick up their book prizes in ECOT 721, now or after the break.

    The votes were counted by Nan and Rika.

    Posted: Monday, December 15, 2003

 

Assignment 3: “CatalogBrowser”

Thursday, September 25, 2003

Due: Friday, October 10, at 11PM

 


Previous page | Next page | Latest page | Schedule and syllabus | Home Page | Programs | Table of contents | News archive | Dora

Description

Implement an on-line library catalog that lets you search for a book by substrings of author or title and lets you "browse," i.e., see what books are nearby on the shelf. Implement this with a doubly-linked list.

Data

chinook.txt contains sample data as used by CU's online Chinook catalog system. Your program is supposed to work on data files of that exact format. Each line has author, title, and call number; you need to look at the file to see how the fields are delimited.

Details

Your program needs to support the following menu.
case 'f': read a catalog from a file                 
case 'n': start new search                           
case 'a': search for substring in author             
case 't': search for substring in title              
case 'u': 'undo' search, i.e., revert to previous results                 
case 'r': show current rearch results                
case 'b': browse, e.g., if the user types          
                      b 7                            
          then a list gets displayed of the          
          7th book in the current search results 
          plus the five books that sit on either
          side of it on the library shelf                          
case '+': move browser window one book to the left   
case '-': move browser window one book to the right  
case 'q': quit                                       

A good half-way point

Be able to read the data into a doubly-linked list. For starters, just insert at the front of the list; later you can modify that code to insert entries in the order of their call numbers.

Files to turn in

You need to write and turn in these six files: CatalogNode{.h,.cxx}, Catalog{.h,.cxx}, main.cxx, and a suitable Makefile.

Grading guidelines

                                   Compiles without errors:  10
                           Reasonable and consistent style:  10
                          Reading of a catalog from a file:  10
                                                    Search:  10
                                                      Undo:  20
Search results are properly displayed, 
                   a screenful at a time, entries numbered:  20
                                                  Browsing:  20
_______________________________________________________________
               
                                                     Total: 100
 


© 2003 Karl Winklmann 3:08 PM, Tuesday, December 16, 2003