The George Washington University
School of Engineering and Applied Science
Department of Computer Science

CSci 131 -- Data Structures
Project #2
Due Date: September 26, 2000
This project depends on Chapters 1, 2, and 3

In this project you will develop a simple data base to manage a collection of music CDs. This project will be based on the employee data base discussed in Sections 3.4 and 3.5.

You are starting from a number of files shown in the text in Chapters 2 and 3, and provided online:

  • Currency -- specification and body are provided; you completed the stubbed operations in Project #1
  • Currency.IO -- specification and body coded in full
  • Dates -- specification and body coded in full
  • Dates.IO -- you must develop this
  • Employees -- specification coded in full; no body provided
  • Employees.IO -- specification and body coded in full
  • Tables -- specification coded in full; no body provided
  • Employee_UI -- interactive user interface; the menu-handling code is provided, but the "actions" to be taken for each menu selection are "stubbed out" for you to complete
Your project is to develop Dates.IO, the spec and body for Compact_Disc and Compact_Disc.IO, and a user interface CD_UI. To do all this, it will be easiest to modify the employee-related files. The relevant types and constants are:
  NameSize: CONSTANT Positive := 10;
  MaxDiscs: CONSTANT Positive := 25;
  SUBTYPE BarCode   IS Positive RANGE 00001..99999;
  SUBTYPE NameType  IS String(1..NameSize);
  TYPE Categories IS (Jazz, Rock, Classical, Comedy);
and a private type Disc as follows:

  TYPE Disc IS RECORD
    CodeNumber:     BarCode;
    Artist:         NameType;
    Title:          NameType;
    Category:       Categories;
    PurchaseDate:   Dates.Date;
    PurchasePrice:  Currency.Quantity;
  END RECORD;

You will do this project using paired development. You will not be able to complete this project on schedule unless you start immediately!

What to submit:
See the handout Preparation and Grading of Programming Projects for details.