CS 1704 Spring 2004 

Project 4.2:  CGI Multimedia Organizer


Changes are in red.

Purpose:

  1. To introduce GUI via cgi, and
  2. To introduce recursion, and
  3. To introduce sorting.

Requirements:

For this project, I will require:

  1. Extend Project 4.1's modification of Project 2.
  2. All commands must be input from the screen via a menu.
  3. A recursive merge sort algorithm to be implemented for both the DLinkedList of items and students.  Some array-based code and demo can be found at the following links.             
  4. http://shell.uriel.net/~mozart/File/Merge1/mergesort.html 
  5. http://www.halcy0n.com/docs/mergesort.html

The Project

For the first phase of the project, the commands were still read from a file named "commands.data".  Phase 2 requires that the commands be read from the screen.  When your program starts it should display a menu of the following commands.  The layout and format is up to you: you may use buttons, links (as shown in class), which may be horizontal, vertical, in tables, etc.  This layout is up to you.

  1. Print All Students
  2. Print All Items
  3. Print One Student
  4. Add an Item
  5. Add a Student
  6. Delete a Student
  7. Sort Students
  8. Sort Items
  9. Quit

Print All Students

Print All Items

Print One Student

Add an Item 

Add a Student 

Delete a Student

Sort Students

Sort Items

Quit

Standards:

As with all programming projects in this course, please see http://courses.cs.vt.edu/~cs1704/spring2004/standards.htm for a list of requirements that apply to all projects.  YOU WILL BE GRADED on these.  In addition, include the following pledge at the bottom of your file:

On my honor:

- I have not discussed the C++ language code in my program with anyone other than my instructor or the teaching assistants assigned to this course.

- I have not used C++ language code obtained from another student, or any other unauthorized source, either modified or unmodified.

- If any C++ language code or documentation used in my program was obtained from another source, such as a textbook or course notes, that has been clearly noted with a proper citation in the comments of my program.

- I have not designed this program in such a way as to defeat or interfere with the normal operation of the Curator System.
<Your Name>

Submission

This project will be demoed.  I will have sign-up sheets available for students to set up demo times.  I will give a large extra credit incentive for projects demoed very early (TBA), and a small extra credit incentive for projects demoed early  and a negative credit incentives for projects demoed the last week of class.  

All students will submit their assignment as a zip file to the curator.  This zip file will be downloaded for your demo.  If it happens that too many students want to demo on a certain early (unlikely) date, the date of the curator submission will count for the early bonus, otherwise, it will be the date of the demo.  I will NOT allow students to bring out a new version of their code during the demo of they do not like the grade for their code downloaded from the Floppy.  You only get ONE chance at being evaluated each demo day (for those of you that submit early, this means that you will have the chance to demo again without the bonus points if something drastic happens).

Also, there will be a "competition" such that the best 5 projects will receive additional bonus points.  This will require in the least 1.) a nice interface, and 2.) additional functionality.  Projects that do not have both of those requirements will not be eligible for the "competition."