CS385 -- Lab 4: Compressing

Fall 2004
Objectives Addressed
Purpose

This lab assignment is designed to provide exposure to an example of a greedy algorithm and develop more advanced software design skills.

Assignment

You are to design a C++ program that will compress and uncompress the words.txt file. Your program should allow for two forms of compression:

You may assume that the file consists of a total of 28 symbols (newline, end of file, and the twenty-six lowercase letters of the English alphabet). If you choose to make your program capable of handling a larger set of symbols, be sure to mention this in your report. Although not required, you may wish to consider using command line arguments for the user interface.

You should consider the following questions when preparing your report:

Design Decisions

While the concepts implemented in this assignment are not difficult, the details involved in implementing them are not trivial. Be sure to spend adequate time in the design stages before moving on. I have intentionally left many of those design decisions for you to discover.

Week 10 demo 1 (due beginning of week 10, lecture 1)

You will be required to demonstrate your FLC algorithm for compressing and uncompressing a text file.

Week 10 demo 2 (due beginning of week 10, lecture 3)

You will be required to demonstrate your VLC algorithm for compressing and uncompressing a text file.

Lab report (due 4:00pm, Friday of week 10)

Each pair should submit one lab report. Your report should include:

Template Lab Report

As with any report you submit, correct spelling and grammar are required. In addition, your report should be submitted electronically following the Electronic Submission Guidelines. (You may wish to consult the sample report before submitting your report.) Be sure to keep copies of all your files, in case something gets lost.

If you have any questions, consult the instructor.

Last Updated: Thursday, 11-Nov-2004 15:31:47 CST