Project 3: Set manipulation software


Due: 17 Oct 2003


Educational objectives: Experience implementing: generic containers using templates, dynamic data structures using pointers, and some set operations. Experience developing software that uses data structures studied in class, and working in groups.


Statement of work: Implement a generic linked list. Modify code for the hash table and vector classes that we have discussed in class, if necessary. Use these data structures to develop a software package that manipulates sets, as described below.


Group work: You will work in groups of around three students each on this project.


Deliverables: Turn in a makefile and all header (*.h) and cpp (*.cpp) files that are needed to build your software, using the script. Turn in hardcopies of your development log in class Monday, 20 Oct. In addition, you will need to submit the following documents: (i) a project design, in which you specify the public interfaces to each of your classes, pseudocode for your software that manipulates sets, and a work plan which mentions who will implement each feature, and when you expect to complete each feature. This should be submitted in class Oct 6 th. (ii) A progress report, which will be a one-page report in which you mention the features that you have already implemented, which is due in class Oct 13.





Sample session


Unix prompt> sets vector

Sets>> remove set set1

No set named set1 exists.

Sets>> new set set1

Sets>> add (Toyota, Corrolla) to set1

Sets>> add (Ford, Explorer) to set1

Sets>> new set set2

Sets>> add (Toyota, Echo) to set2

Sets>> add (Toyota, Camry Corrolla) to set1

Sets>> new set set3

Sets>> union set1 set2 into set3

Sets>> display set3

            (Toyota, Camry Corrolla)

            (Ford, Explorer)

Sets>> delete Toyota from set3

Sets>> display set3

            (Ford, Explorer)

Sets>> display set1

            (Toyota, Camry Corrolla)

            (Ford, Explorer)

Sets>> remove set SET1

No set named SET1 exists.

Sets>> remove set set1

Sets>> lookup Ford in set3


Sets>> is Ford in set3?


Sets>> is Explorer in set3?


Sets>> quit

Unix prompt>