Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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;
}

};

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote