Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Using C++ with header file,source files, and resource files such as indata.dat and outdata.dat Write a program that performs character processing on 10 characters read

Using C++ with header file,source files, and resource files such as indata.dat and outdata.dat Write a program that performs character processing on 10 characters read in from a file, and writes the results to output files. Do NOT use loops or arrays to solve this problem. NOTE: You may NOT use the standard library functions found in . Your program should define the following functions: * (2 pts) FILE * open_input_file (void) Opens "input.dat" for reading. * (2 pts) char read_character (FILE *infile) Reads one character from the input file. * (2 pts) int determine_ascii_value (char character) Returns the ASCII value of the character passed into the function. * (4 pts) int is_line (char character) Determines if the character is a newline, if the character is a newline a 1 is returned otherwise a 0 is returned. Make sure that you #define two constants NEWLINE and NOT_NEWLINE as 1 and 0, respectively. Return the #defined constant. * (4 pts) int number_lines (char character, int current_number_lines) Determines if the character passed into the function indicates the end of a line (use is_line ( )), if so the function adds 1 to the current_number_lines and returns the value; otherwise it returns the current_number_lines without any modification. * (4 pts) int is_vowel (char character) Determines if the character is a vowel (note: the character may be lower or upper case), if the character is a vowel a 2 is returned otherwise a 0 is returned. Make sure that you #define two constants VOWEL and NOT_VOWEL as 2 and 0, respectively. Return the #defined constant. * (4 pts) int number_vowels (char character, int current_number_vowels) Determines if the character passed into the function is a vowel (use is_vowel ( )), if so the function adds 1 to the current_number_vowels and returns the value; otherwise it returns the current_number_vowels without any modification. * (4 pts) int is_digit (char character) Determines if the character is a digit (i.e. '0' - '9'), if the character is a digit a 3 is returned otherwise a 0 is returned. Make sure that you #define two constants DIGIT and NOT_DIGIT as 3 and 0, respectively. Return the #defined constant. * (4 pts) int number_digits (char character, int current_number_digits) Determines if the character passed into the function is a digit (use is_digit ( )), if so the function adds 1 to the current_number_digits and returns the value; otherwise it returns the current_number_digits without any modification. * (4 pts) int is_alpha (char character) Determines if the character is an alpha character (i.e. 'a' - 'z', 'A' - 'Z'), if the character is an alpha character a 4 is returned otherwise a 0 is returned. Make sure that you #define two constants ALPHA and NOT_ALPHA as 4 and 0, respectively. Return the #defined constant. * (4 pts) int number_alphas (char character, int current_number_alphas) Determines if the character passed into the function is an alpha character (use is_alpha ( )), if so the function adds 1 to the current_number_alphas and returns the value; otherwise it returns the current_number_alphas without any modification. * (4 pts) int is_lower (char character) - Determines if the character is a lowercase character, if the character is a lowercase character a 5 is returned otherwise a 0 is returned. Make sure that you #define two constants LOWER and NOT_LOWER as 5 and 0, respectively. Return the #defined constant. * (4 pts) int number_lowers (char character, int current_number_lowers) Determines if the character passed into the function is a lowercase character (use is_lower ( )), if so the function adds 1 to the current_number_lowers and returns the value; otherwise it returns the current_number_lowers without any modification. * (4 pts) int is_upper (char character) - Determines if the character is an uppercase character, if the character is an uppercase character a 6 is returned otherwise a 0 is returned. Make sure that you #define two constants UPPER and NOT_UPPER as 6 and 0, respectively. Return the #defined constant. * (4 pts) int number_uppers (char character, int current_number_uppers) Determines if the character passed into the function is a uppercase character (use is_upper ( )), if so the function adds 1 to the current_number_uppers and returns the value; otherwise it returns the current_number_uppers without any modification. * (4 pts) int is_space (char character) - Determines if the character is a whitespace character (i.e. space ' ', form feed '\f', new-line ' ', carriage return ' ', horizontal tab '\t', and vertical tab '\v'), if the character is a whitespace character a 7 is returned otherwise a 0 is returned. Make sure that you #define two constants WHITESPACE and NOT_WHITESPACE as 7 and 0, respectively. Return the #defined constant. * (4 pts) int number_spaces (char character, int current_number_spaces) Determines if the character passed into the function is a space character (use is_space ( )), if so the function adds 1 to the current_number_spaces and returns the value; otherwise it returns the current_number_spaces without any modification. * (4 pts) int is_alnum (char character) - Determines if the character is an alpha or digit character, if the character is an alpha or digit character a 8 is returned otherwise a 0 is returned. Make sure that you #define two constants ALNUM and NOT_ALNUM as 8 and 0, respectively. Return the #defined constant. * (4 pts) int number_alnums (char character, int current_number_alnums) Determines if the character passed into the function is an alphanumeric character (use is_alnum ( )), if so the function adds 1 to the current_number_alnums and returns the value; otherwise it returns the current_number_alnums without any modification. * (4 pts) int is_punct (char character) - Determines if the character is a punctuation character (i.e. '.', '!', ',', etc.) if the character is a punctuation character an 9 is returned otherwise a 0 is returned. Make sure that you #define two constants PUNCT and NOT_PUNCT as 9 and 0, respectively. Return the #defined constant. * (4 pts) int number_puncts (char character, int current_number_puncts) Determines if the character passed into the function is a punctuation character (use is_punct ( )), if so the function adds 1 to the current_number_puncts and returns the value; otherwise it returns the current_number_puncts without any modification. * (3 pts) void print_int (FILE *outfile, int number) Prints an integer to an output file. * (3 pts) void print_stats (FILE *outfile, char header[ ], int number) Prints a line like the following: Number Vowels: 45 where "Number of vowels" is the string represented by the variable header and 45 is represented by number. bullet (10 pts) A main function that does the following: bullet Opens an input file input.dat for reading; bullet Opens an output file output_stats.dat for writing all data generated by print_stats ( ); bullet Opens an output file output_ascii.dat for writing all ascii values of each character; bullet Checks to see if the files were opened successfully bullet Reads one character at a time from the input file (input.dat), until all 10 characters have been read; For each character that is read in, its corresponding ASCII value should be printed to the output file, output_ascii.dat; Hint: use the print_int ( ) function to print the ASCII values; bullet Prints the number of lines in the file to output_stats.dat; bullet Prints the number of vowels in the file to output_stats.dat; bullet Prints the number of digits in the file to output_stats.dat; bullet Prints the number of alpha characters in the file to output_stats.dat; bullet Prints the number of lowercase characters in the file to output_stats.dat; bullet Prints the number of uppercase characters in the file to output_stats.dat; bullet Prints the number of space characters in the file to output_stats.dat; bullet Prints the number of alphanumeric characters in the file to output_stats.dat; bullet Prints the number of punctuation characters in the file to output_stats.dat; bullet Closes all opened files;

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

The Accidental Data Scientist

Authors: Amy Affelt

1st Edition

1573877077, 9781573877077

More Books

Students also viewed these Databases questions