EECS 280 Preparedness Diagnostic Project

This project will help determine if you should take an introductory programming course (EECS 183/ENGR 101/ENGR 151) or EECS 280. The project covers material that students entering EECS 280 should know.

If you receive the full 50 points possible, you can request an override into EECS 280. If your score is less than 50 points, you need to enroll in an introductory programming course (EECS 183, ENGR 101, or ENGR 151).

Overview of files

arrays.h contains only function declarations (AKA prototypes). Download arrays.h.

arrays.cpp contains function definitions (AKA implementations) listed in arrays.h. Write your code in arrays.cpp.


This problem involves a decryption algorithm to enable you to decode messages and images and make them readable/viewable to people who are supposed to see what they contain. You will be supplied with a file that has encrypted messages/images. You will need to write a C++ program to decode the messages/images and print them out (cout them). This will require skills in manipulating characters, the use of functions, and arrays.

Approach to What should you do first

The first part of this project consists of writing several functions according to specifications. All the requirements for the functions are within the given arrays.h file. You are to implement these functions as given. Do not alter any of the prototypes; if you do, your code will not compile in the autograder. The implementation code must be in a file named: arrays.cpp. The best approach is to implement one function and test it. Make sure your first function works perfectly before moving onto the next function. Implement the second function and test it. Implementation your functions in arrays.cpp.

Notice that many of the functions in array.h come in pairs, one for a 1-dimensional, the second for a 2-dimensional array. These follow the same format as the above example. Implement the 1D array function; treat the 2D array as an array of arrays and call the 1D function within the implementation for the 2D array.


Test each function individually before attempting the code to solve the overall problem.

It is good practice to write the test suite before you implement a function. This way, once you have written code for a function, you can test it immediately. It is always good to know if you are correct or not —— without using a submit to the autograder, since the number of autograder submissions is limited. It is also a very good way to cut coding time by a significant amount.

For testing to be beneficial, you must know expected output/return values.


Sample code:

char arr[SIZE] = {'a', 'b', 'c', 'd', 'e', 'f'};
printArray(arr, 6);

Sample output:


Test as many cases as are needed to cover all possibilities. For printArray, it either prints the correct values or it doesn’t. Multiple test sets are not needed.


Submit arrays.cpp to the autograder

You may submit up to 3 times. Your final grade is the score on your last submission.