OBJECTIVES
This assignment has you work with inheritance and polymorphism. The algorithms in this assignment are simple. This assignment is more about arranging code when using multiple classes.
INSTRUCTIONS
Programs such as Microsoft Word allow you to create a document in one format, but save the document in multiple formats – PDF, HTML, etc. We are going to do something similar and write a document writer that can convert an input file into different formats.
In your program, you will read a data file that is in text format, and then write it out in one of two output formats. The code will use inheritance and polymorphism in order to minimize the amount of duplicate code.
Input Files
Sample input files have been provided – data1.txt, data2.txt, and data3.txt. The file format for each data file is as follows:
The first line is the title of the text
The second line is the author of the text
The remaining lines are the content. There will be at least one content line in a data file.
Output Formats
You will be creating two output formats. Each of the formats will have three sections
A header which displays the author and title
The content
The footer which displays the date and time the file was written.
Here is a sample input file, data1.txt:
The Cow
Ogden Nash
The cow is of the bovine ilk;
One end is moo, the other, milk.
Regular Output Format
The first output format is regular format. Here is the input file data1.txt transformed to the regular format:
Title: The Cow
Author: Ogden Nash
The cow is of the bovine ilk;
One end is moo, the other, milk.
Output on Sun Mar 30 19:25:33 2014
Notice in the header, the title and author have labels and there is one blank line before the content. Also notice there is one blank line between the content and footer, which has the date.
Large Text Output Format
The second output format is the large text format. It has the same header and footer as the regular format, but the content has been transformed into all uppercase letters:
Title: The Cow
Author: Ogden Nash
THE COW IS OF THE BOVINE ILK;
ONE END IS MOO, THE OTHER, MILK.
Output on Sun Mar 30 19:26:45 2014
All the characters – letters, punctuation, line breaks – of the content are preserved. It is just the letters that have been made uppercase.
Class Hierarchy
You will be writing code for 3 classes plus a main file. The three classes are
DocumentWriter
Place the specification in DocumentWriter.h and the implementation in DocumentWriter.cpp
This class has three member variables
A title which is a string
An author which is a string
A content which is a string.
You may be tempted to make content an array because there are multiple lines in the data files. Notice, the input file description only says that there will be at least one line in the file, but it doesn’t say the largest number of lines. You have no information that you can use to determine the size of an array, so just concatenate all the content lines into one giant string.
The class has a constructor which has arguments for each member variable
The class has a member function getDate() which returns the current date and time as string (see notes later in this file)
The class defines three pure virtual functions
void writeHeader(ofstream &)
void writeContent(ofstream &)
void writeFooter(ofstream &)
These should be pure virtual functions. They will not have an implementation in DocumentWriter.cpp
The argument is a ofstream object that has already been opened for writing.
TextWriter
Place the specification in TextWriter.h and the implementation in TextWriter.cpp
TextWriter is a subclass of DocumentWriter.
TextWriter is responsible for writing out data in the regular format described above.
The class has a constructor which has arguments for each member variable.
The class should provide an implementation for the writeHeader fucntion
It should write out the title, the author, and a blank line
The class should provide an implementation for the writeContent function
It should write out the content followed by a blank line
The class should provide an implementation for the writeFooter function
It should use the getDate function to write out the complete line needed for the footer
CS 340 Milestone One Guidelines and Rubric Overview: For this assignment, you will implement the fundamental operations of create, read, update,
Retail Transaction Programming Project Project Requirements: Develop a program to emulate a purchase transaction at a retail store. This
7COM1028 Secure Systems Programming Referral Coursework: Secure
Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip
CS 340 Final Project Guidelines and Rubric Overview The final project will encompass developing a web service using a software stack and impleme