CptS 122 – Data Structures
Programming Assignment 1: Fun with Arrays,
Strings, and Pointers
Assigned:
Due:
I. Learner
Objectives:
At the conclusion
of this programming assignment, participants should be able to:
II.
Prerequisites:
Before starting
this programming assignment, participants should be able to:
For each of the
following problems create a separate Microsoft VS 2008 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 <your last name>_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 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.
IV. Submitting Assignments:
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: