This is a C++ program the program is called File Filter A file filter reads an i
ID: 3823559 • Letter: T
Question
This is a C++ program
the program is called File Filter
A file filter reads an input file, transforms it in some way, and writes the results to an output
file. Write an abstract file filter class that defines a pure virtual function for transforming
a character. Create one derived class of your file filter class that performs encryption,
another that transforms a file to all uppercase, and another that creates an unchanged
copy of the original file. The class should have the following member function:
void doFilter(ifstream &in, ofstream &out)
This function should be called to perform the actual filtering. The member function for
transforming a single character should have the prototype:
char transform(char ch)
The encryption class should have a constructor that takes an integer as an argument
and uses it as the encryption key.
MODIFY your File Filter (p 966 #9) so that there are try-catch blocks around dangerous operations. Again, put group members in the comments
(p 966 #9): Starting Out with C++ (8th Edition)
help me pleaase!
Explanation / Answer
#include <iostream>
#include<string>
#include<fstream>
using namespace std;
class file_filter
{
virtual char transform(char c)=0;
};
class encrypt:public file_filter
{
int key;
public:
encrypt(int ekey)
{
key=ekey;
}
void doFilter(ifstream &in,ofstream &out)
{
char c;
while(in>>c)
{
c=transform(c);
out<<c;
}
}
char transform(char ch)
{
int num=((int)ch+3*key)%key;
return (char)(num+97);
}
};
class upper:public file_filter
{
public:
void doFilter(ifstream &in,ofstream &out)
{
char c;
while(in>>c)
{
c=transform(c);
out<<c;
}
in.close();
out.close();
}
char transform(char ch)
{
return toupper(ch);
}
};
class copy:public file_filter
{
public:
void doFilter(ifstream &in,ofstream &out)
{
char c;
while(in>>c)
{
c=transform(c);
out<<c;
}
in.close();
out.close();
}
char transform(char ch)
{
return ch;
}
};
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.