Please help with this c program Part 1 A frequency table lis
Please help with this c++ program:
Part 1
A frequency table lists words and the number of times each word appears in a text file. Write a program that creates a frequency table for a file whose name is entered by the user. You may want to use the function ispunct(), in header file ctype.h, to check for punctuation so you can strip it off the end of a word. Use exceptions to handle file errors. Try to make a class to read and write files.
Part 2
Write a function \"PalindromeTester\" that uses the reverse algorithm on a copy of a string, then compares the original and the reversed string to determine whether the original string is a palindrome or not.
The string library provides functions like begin and end to obtain iterators that point to characters in a string.
The function will allow strings to contain uppercase and lowercase letters and punctuations. Before testing if the original string is a palindrome, the function should eliminate any punctuation. For simplicity, assume the only punctuations characters can be the period \".\", comma\",\", exclamation point \"!\", semicolon \";\", apostrophe \"\'\", and parenthesis \"()\".
You need to use the copy_if algorithm and a back_inserter to make a copy of the original string.
So the string \"Madam, I\'m Adam\" is palindrome regardless of the case and the punctuation
Please upload the following:
The class .cpp file
The main program
The class .h file
Output File
Solution
1)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
int total[26] = {0};
ifstream infile(\"input.txt\");
if (!infile)
{
cout << \"Error opening input file\" << endl;
return 0;
}
char c;
while (infile.get(c)) // read characters one at a time
{
if (isalpha(c)) // check it is a-z or A-Z
{
c = toupper(c); // make it always A-Z
// char A-Z has ascii code 65 to 90
// Subtract \'A\' to get
int index = c - \'A\'; // index in range 0 to 25;
total[index]++; // increment corresponding total
}
}
for (int i=0; i<26; i++) // Print the results
{
cout << \" \" << char(i+\'A\') << \" occurs \"
<< setw(5) << total[i] << \" times\" << endl;
}
return 0;
}
2)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Text.RegularExpressions;
namespace Challenge_232_PalindromeTester
{
class Program
{
static void Main(string[] args)
{
string pattern = \"[^A-Za-z0-9]+\";
const string file = \"file.txt\";
string text = Reading(file);
text = Filter(text, pattern);
Print(text);
Console.ReadKey();
}
static string Reading(string file)
{
string text = File.ReadAllText(file, Encoding.GetEncoding(1257));
return text;
}
static string Filter(string text,string pattern)
{
text= (Regex.Replace(text, pattern, \"\")).ToLower();
return text;
}
static bool Check (string textf, string text)
{
if (textf.Equals(text))
return true;
else
return false;
}
static string Reverse(string text)
{
char[] temp = text.ToCharArray();
Array.Reverse(temp);
return new string(temp);
}
static void Print(string text)
{
string temp = Reverse(text);
if (Check(text, temp))
Console.WriteLine(\"Polyndrometester\");
else
Console.WriteLine(\"Not a polyndrometester\");
}
}
}



