logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

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 TO CANDIDATES
ANSWER ALL QUESTIONS

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

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

743 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

849 Answers

Hire Me
expert
Husnain SaeedComputer science

860 Answers

Hire Me
expert
Atharva PatilComputer science

835 Answers

Hire Me
June
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30