At the conclusion of this programming assignment, participants should be able to:
* Analyze a basic set of requirements for a problem
* Compose C language programs
* Compile a program using Microsoft Visual Studio 2012
* Execute a program
* Create basic test cases for a program
* Apply arrays, strings, and pointers
* Summarize differences between array notation and pointer notation
* Apply pointer arithmetic
* Apply basic string handling library functions
II. Prerequisites:
Before starting this programming assignment, participants should be able to:
* Access Microsoft Visual Studio 2012 Integrated Development Environment (IDE)
* Design and develop a small or medium sized program in any language
* Apply sequential, conditional, and iterative constructs
* Design and implement user-defined functions
III. Overview & Requirements:
For each of the following problems create a separate Microsoft VS 2012 project. Within each project you must have at least one header file (.h) and two source files (.c). Before you turn in this assignment, be sure to place each project folder into a single _pa1 folder.
1. Write a C program that sorts strings into descending or ascending order (determined by the user of the program). For this program you must declare an array of pointers to the strings, and perform the sorting without using strcpy ( ). Hence, you must manipulate the pointers to the strings only! Below is a pseudocode algorithm for bubble sort:
1. get values for n and the n list items (n represents the number of records in the file, list is an array of records)
2. set the marker U for the unsorted section at the end of the list (U is an integer index value)
3. while the unsorted section has more than one element do steps 4 through 8
4. set the current element marker C at the second element of the list (C is an integer index value)
5. while C has not passed U do steps 6 and 7
6. if the item at position C is less than the item to its left then exchange these two items
7. move C to the right one position
8. move U left one position
9. stop
You must develop your own program driver to illustrate that your sorting algorithm works!
2. Write a C program that recursively determines if a string is a palindrome. Before your program makes the palindrome determination, you must remove all punctuation characters from the string. Recall a palindrome is a sequence of characters that can be read the same way in either direction. “Madam I’m Adam!” is an example of a palindrome (recall punctuation is removed). Once again, you must develop your own program driver to illustrate that your program works. You may use any library functions you wish.
3. Write a C program that encrypts and decrypts strings using the Caesar Shift Cipher. The shift value must be an integer, but may be positive or negative. If the shift value is 4, then an ‘A’ becomes ‘E’. If the shift value is -4, then ‘A’ becomes ‘W’. Note, the plaintext messages are encrypted using alphabetic characters only. Also, all characters in the messages must first be converted to uppercase before encrypting or decrypting them. Develop your own program driver to illustrate that your program works. You may use any library functions you wish.