COSC 071: Computer Science I

Project 5
Fall 2001

Due: Dec 7th @ 5 PM
12 points

Chappy and Chippy love your software, but with all the work they've been doing selling sails and Icelandic Kronors, they've realized that there's more to life than work. Yeah, there's money, but they each really want someone to share their lives with...or someone with whom to share their lives, if you prefer. And it must run in the family, because their sisters, Chappella and Chippette, respectively, are also workaholics. The four have decided to pool their resources to create an on-line dating service for busy professionals, just like them. Once again, they've asked you to lend your immeasurable talents.

Customers will go to a Web site and enter information about themselves and about what they'd like in a companion. After entering this information, the system will list other people in the database who matche. Although Chappy and company assume that each user will maintain his or her information, they will need to perform routine administrative duties, such as deleting people's records and doing their own searches (wink, wink, nudge, nudge).

It will be up to you to decide what information to collect from customers. Your program should use at least five characteristics in addition to name. There should be at least one numeric characteristic, like age or IQ, and there should be at least one multi-valued characteristic, like favorite pet, which could take values dog, cat, fish, and the like. Create a data set with at least ten individuals, each having a name, a set of characteristics describing themselves, and a set of characteristics describing their ideal companion. The name of the data file should be your netid and the extension ``.dta'' (e.g., maloofm.dta). You'll need to submit both your source code and your data file in two separate e-mails, one with the subject <netid>.cc and one with the subject <netid>.dta.

Here is a sample run of how such a program might work. Here's one possible high-level design. Use self-referential classes to construct a linked list of Customers. Furthermore, your program should let the user load customer records from a file, save customer records to a file, clear the profiles stored in the linked list, find a match for a specified customer, print the customer records in memory, and, of course, quit the program.

Instructions for Electronic Submission: At the top of the file containing your source code (i.e., the file containing the C++ instructions), place the following header comment, with the appropriate modifications:

//
// Project 5
// Name: <your name>
// SID: <student ID>
// E-mail: <e-mail address>
// Instructor: Maloof
// TA: <TA's name>
// COSC 071-<section number>
//
// In accordance with the class policies and Georgetown's Honor Code,
// I certify that, with the exceptions of the lecture notes and those
// items noted below, I have neither given nor received any assistance
// on this project.
//
// Description: <Describe your program>
//

Although you may use any C++ compiler to develop your program, it must run under UNIX and must compile using GNU g++. When you are ready to submit your program for grading, if necessary, use ws-FTP to transfer your source and data file from your PC to gusun. Use SSH to logon to gusun, and use pine to e-mail it to your TA. For the C++ program, use your netid and the suffix ``.cc'' as the subject. For the data file, use your netid and the suffix ``.dta''. To run pine, type at the UNIX prompt:

gusun% pine

When the menu appears, select the item for composing e-mail. Assume that your netid is ab123, the name of your source file is proj1.cpp, and your TA's e-mail address is ``imagoodtamaloof@cs''.

Type your TA's e-mail address in the To field, and type your netid with the .cc suffix in the Subject field (no spaces before or after). Move the cursor down into the MESSAGE TEXT screen, and type the ^R command. Pine will ask for a file name (e.g., proj1.cpp), which it will then load as your message text. At this point, your screen should look something like the following:

Finally, type ^X to send the e-mail to your TA. For this project, send your data file in the same manner, using as the subject your netid and the suffice ``.dta''.

IMPORTANT: Do not send your source code as an attachment. Do not use a mail client other than pine.

If you need to include a message to you TA about your submission, then type the message as a comment in the program.

Once you've submitted your project, it is important to keep an electronic copy on a university machine (e.g., gusun or cssun) that preserves the modification date and time. If we lose your project or the e-mail system breaks, then we will need to look at the modification date and time of your project to ensure that you submitted it before it was due.

The TAs who will be grading your projects this semester are listed on the main page. You must e-mail your project before 5 PM on the due date.