You will need to author two classes – Customer and Pensioner. Pensioner should be a subclass of Customer. These classes should be in their own files with separate header files. Details are below.

Create a third class called Manager. The manager file can contain the main function. The Manager class should contain member functions that read a text file, called telephone.dat, line by line, performing appropriate actions at each line, until the end of the file is reached. You should make no assumptions about the length of the file.

Each line of the file has the following format:

A Jimbo Jones 43215678 56
A Gladys Skinner 7628372 56 P P23435

The action for each line will depend upon the first character (the directive).
• If the first character is A then there are two possibilities.
o The customer is an ordinary customer. In this case the fields are firstName, lastName, telephoneNo and numberOfCalls. A Customer object should be created and initialised with the values from this line.
o The customer is a pensioner. In this case, we have a field P which purely signifies that we are dealing with a pensioner, followed by the pension number. A Pensioner object should be created with the four Customer fields and also the pension number.
In either case, the resulting object should be added to an array of ten Customer pointers called ‘store’. This array should be a private data member of the Manager class.
• If the first character is D then the Customer or Pensioner object most recently added to the store should be deleted. The way that the store should be handled is to create a second private data member called ‘top’ which is originally set to zero. Each time you add a Customer object you add it at the point signified by top. Top is then incremented. Thus, the first Customer is put in position zero and top is incremented to 1. When we delete a Customer, we use top to determine which object to remove.
• If the first character is O then all of the elements in the array should be printed to a file (called CustomerOutput.dat). The output should be appended to the file – not overwrite what is already there. The deleted elements should, of course, not figure in this output. The output should contain all of the information for the Customer. Furthermore a telephone charge should be calculated as the number of calls at 45c each. If the Customer is a pensioner then the pension number should be output and a discount of 10% provided. Both the discount and the new price should be displayed. Note: that the methods for calculating the charge should be defined in the Customer class and overridden in the Pensioner class. Polymorphism should be used rather than any attempt to explicitly determine what type of object is being dealt with.
• If the line contains only white space, it should be ignored and the program should proceed to the next line.
• If the directive contains any character other than those above an error message should be give and the program should continue.

The output to the file should be provided in both of two ways:
• A method called print should be provided in both the Customer and Pensioner class
• The << operator should be overridden in both classes.

This is my question i know about header files ,cpp files but what code should i enter to complete the demands of the ques

Recommended Answers

All 5 Replies

Give the assignment a try, and we'll probably help you @_@

We won't do your homework for you.

i have started with my assig
and need ur help
i have made a 3 classes a ,b,c ,and a is base class,,,,,,,

#include "c.h"
#include <iostream>
# include <fstream>
using namespace std;
c :: c()
	ifstream input; ("def.txt");
    ch = input.get();
	input >> ch;
	if (ch ='A')
		a* z=new a();

problem is that the txt file format is like this:
A john
A jone P 123
B ame
if line is started with A anand having p than 2nd lineshould be printed,,,,,,,,,otherwise first and if first character is not A than third should be printed,,,,,,,,,,,,

Forget about writing code for now. Using pencil and paper figure out the relationship between the three classes and attributes of the three classes. Then try to write code. Often, if your paperwork is detailed enough the code is almost written.

DON'T use variable names or class names like a, b, c unless you are writing an example to illustrate a point or you work for Microsoft.

DO learn how to use code tags when posting code to this board---read the watermark in background of the Message box where you post the code or in the stcky notes/announcements at the top of the board.

commented: Sage advice indeed. +22
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.