Write a program that performs character processing

Assignment Help C/C++ Programming
Reference no: EM13967745

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 <ctype.h>.

Your program should define the following functions:

FILE * open_input_file (void) - Opens "input.dat" for reading.

char read_character (FILE *infile) - Reads one character from the input file.

intdetermine_ascii_value (char character) - Returns the ASCII value of the character passed into the function.

intis_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.

intnumber_lines (char character, intcurrent_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.

intis_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.

intnumber_vowels (char character, intcurrent_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.

intis_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.

intnumber_digits (char character, intcurrent_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.

intis_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.

intnumber_alphas (char character, intcurrent_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.

intis_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.

intnumber_lowers (char character, intcurrent_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.

intis_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.

intnumber_uppers (char character, intcurrent_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.

intis_space (char character) - Determines if the character is a whitespace character (i.e. space ' ', form feed '\f', new-line '\n', carriage return '\r', 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.

intnumber_spaces (char character, intcurrent_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.

intis_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.

intnumber_alnums (char character, intcurrent_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.

intis_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.

intnumber_puncts (char character, intcurrent_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.

void print_int (FILE *outfile, int number) - Prints an integer to an output file.

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.

A main function that does the following:
Opens an input file input.dat for reading;
Opens an output file output_stats.dat for writing all data generated by print_stats( );
Opens an output file output_ascii.dat for writing all ascii values of each character;
Checks to see if the files were opened successfully

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;

Prints the number of lines in the file to output_stats.dat;
Prints the number of vowels in the file to output_stats.dat;
Prints the number of digits in the file to output_stats.dat;
Prints the number of alpha characters in the file to output_stats.dat;
Prints the number of lowercase characters in the file to output_stats.dat;
Prints the number of uppercase characters in the file to output_stats.dat;
Prints the number of space characters in the file to output_stats.dat;
Prints the number of alphanumeric characters in the file to output_stats.dat;
Prints the number of punctuation characters in the file to output_stats.dat;
Closes all opened files;

Sample Execution:

The following sample session demonstrates how your program should work, although your program is only required to read in 10 characters.
Assuming input.dat stores the following characters:
CptS 121 is really fun!

Your program should write the following to output_ascii.dat:
67
112
116
83
32
49
50
49
32
105
115
32
114
101
97
108
108
121
32
102
117
110
33
10

Your program should write the following to output_stats.dat:
Number Lines: 1
Number Vowels: 4
Number Digits: 3
Number Alphas: 15
Number Lowers: 13
Number Uppers: 2
Number Spaces: 5 -- Including newline ('\n')
Number Alnums: 18
Number Puncts: 1

V. Submitting Assignments:

1. Using Blackboard Learn https://learn.wsu.edu/webapps/login/ submit your assignment to your TA through the link ending with "-LAB". Under the "Content" link navigate to the "Programming Assignment Submissions" folder and upload your solutions to the appropriate "Assignment" space. You must upload your solutions as <your last name>_pa3.zip by the due date and time.

2. Your .zip file should contain your one header file (a .h file), two C source files (which must be .c files), and project workspace. Delete the debug folders before you zip the project folder.

3. Your project must build properly. The most points an assignment can receive if it does not build properly is 65 out of 100.

V. Grading Guidelines:

This assignment is worth 100 points. Your assignment will be evaluated based on a successful compilation and adherence to the program requirements. We will grade according to the following criteria:

Proper program comments

• There should be a header block of documentation at the top of the file
• Each function should have a header block of documentation
• Each algorithmic step should be documented
• You should use proper indentation and spacing

Proper function definitions

Verified Expert

It was mentioned not to use an array or loop. So in solution it used a while loop also written the code ten times below.It is upto you to submit with loop or not. All the programs running properly.

Reference no: EM13967745

Questions Cloud

What reactions did the methods and movement : What reactions did the methods and movement as a whole evoke within the different sections of the nation?
What is the transient fault current if in this fault : What is the ac component of current in this generator the instant after the fault occurs? What is the total current (ac plus dc) flowing in the generator right after the fault occurs?
Process capability index : Calculate the process capability index for BHC. In this example, why should we use the process capability index, rather than the process capability ratio, to assess capability? Can you think of any reason why BHC might want a process mean higher th..
Which set of arguments is more compelling : What are the arguments for and against social responsibility on the part of businesses? Research the topic and discuss. In addition, which set of arguments is more compelling?
Write a program that performs character processing : 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.
Olive company is considering a project : Olive Company is considering a project that is estimated to cost $286,500 and provide annual net cash flows of $57,523 for the next five years.
How long does it take for a product to go through the entire : How long does it take for a product to go through the entire production line. What is the cycle time of each station. What is the bottleneck rate for the production line and what station is it. Compute w0 for production line. What is the takt time of..
Veras taxable income : Vera’s taxable income is in the 35% tax bracket. Assuming Vera is itemizing deductions, is it more valuable for her to get a $2000 deduction or a $1800 credit
Explain what it is how common the practice : One example of unethical activity is bribery. Explain what it is, how common the practice is, and where it is found. Justify your reasoning with at least 1 journal article.

Reviews

Write a Review

 

C/C++ Programming Questions & Answers

  Write a function - greatest common divisor

Write a function named "g_c_d" that takes two positive integer arguments and returns as its value the greatest common divisor of those two integers.

  Write a c program that will calculate the gross pay of a

write a c program that will calculate the gross pay of a set of employees.for each employee the program should prompt

  Determine which number is smaller and which is larger

The program should use the conditional operator to determine which number is the smaller and which is the larger.

  Declare an array of integers

Declare an array of 10 integers and initialize its elements to the following values: -10; -8; -6; -4; -2; 0; 2; 4; 6;8;10

  Evaluate the mathematical constant of p

Write a C++ program to evaluate the mathematical constant of PI - Guess a random number between 0.00 and 1.00 and assign this to x.

  Write the code to exchange the values of these two variables

Write the code to exchange the values of these two variables (so that after the swap xp points to what yp originally pointed to and vice-versa.

  Write programme that allows a user to enter distinct words

Write a programme that allows a user to enter three distinct words and returns them as a single string

  A password must have at least eight characters

A password must have at least eight characters. A password must consist of only letters and digits. A password should contain at least one uppercase letter. A password must contain at least two digits.

  Write c program to find smallest-largest values

Write a program c that will find the smallest, largest and average values in a collection of N numbers.Get the value of N before scanning each value in the collection of N numbers.

  Catch clauses are listed is important

write a program that can be used to demonstrate that the order in which catch clauses are listed is important

  What will be the value of xafter executing the above switch

If x = 3, then what will be the value of xafter executing the above switch statement?

  Binary tree, print right view of it

Given a Binary Tree, print Right view of it. Right view of a Binary Tree is set of nodes visible when tree is visited from Right side.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd