Hands On C++: Project 14


The Projects

Your instructor will assign you one of the problems below. To solve your problem, write a program that reads the necessary information to compute and output the indicated values, as efficiently as possible. Following the pattern in the lab exercise, first, design using OCD; then code your design in C++ using stepwise translation; finally, test your program thoroughly.

Project #14.1: A polynomial of degree n has the form:
a + bx + cx2 + ... + gxn-1 + hxn
The values a, b, c, ..., g, h are numeric constants called the coefficients of the polynomial, with h != 0. For example:
1 + 3x - 7x3 + 5x4
is a polynomial of degree 4 with integer coefficents of 1, 3, 0, -7 and 5. Design and implement a Polynomial class that can represent such a polynomial. Store the coefficients in a list instance variable of your class. Provide a constructor, an output operation that displays a Polynomial in easy-to-read format (i.e., using ^ to represent exponentiation), an input operation that allows a user a polynomial like that shown above, and an evaluate operation that given an x-value, returns the value of the polynomial for that value.

To test your class, write a program that reads a polynomial and values for x and displays the corresponding polynomial values.

Project #14.2: The rock group Flink Poyd is giving a concert and you have been hired by the night club where they are playing. The club seats 100 people, and tickets will be sold in advance. Ticket requests are to be filled in the order in which they are received, with a maximum of four tickets per person. Write an TicketOrder class that stores a name, address, and number of tickets in a ticket order. Your class should provide input, output, and the equality operations.

Using your class, write a program that a box office cashier can use to enter the names, addresses, and number of tickets for a sequence of orders. The orders should be stored in a list. Your program should check that no one received more than four tickets, and that the same person does not submit multiple orders. When all the tickets have been ordered (or on a special keyboard input), your program is to generate a series of mailing labels (Name, Address, number of tickets) that a clerk can use to fill the orders.

Project #14.3: Design and implement a BigInt class whose values are large integers with perhaps hundreds of digits. Represent each number as a list, each of whose elements is a block of digits of the big integer. Overload the addition and subtraction operators for this class. Do so by adding the lists value-by-value, carrying from one element to the next as necessary. Write a two-function BigInt calculator to test your program.

For some extra fun, overload the multiplication and division operators, too.

Project #14.4: Write a Print() library function template that, given a list, displays each value in the list on a separate line. Use an iterator as described in C++ An Introduction to Computing.

Add a Read() function template that, given a list, fills it with input values from the keyboard.

Using Print() and Read(), overload operator<< and operator>> with function templates so that list values can be read and displayed conveniently. Store these functions in the library as well.

Add a template for operator+ that, given two lists, returns the concatenation of the two lists. Then write a driver program that tests your functions.

Turn In

Turn the following things:

  1. This grade sheet.
  2. Your OCD.
  3. Your source program.
  4. The output from an execution of your program.


Lab Home Page | Lab Exercise
© 2003 by Prentice Hall. All rights reserved.
Report all errors to Jeremy D. Frens.