Posted: September 18th, 2017

# Introduction to Problem Solving and Algorithm Design

Final Project

Your final project will be to analyze, design, and document a simple program that utilizes a good design process and incorporates sequential, selection and repetitive programming statements as well as at least one function call and the use of at least one array.  The specific problem you need to solve for the final project is:

Design a program that will allow a user to Input a list of your family members along with their age and state where they reside. Determine and print the average age of your family and print the names of anyone who lives in Texas.

There are 4 components of your submission beyond the working program and its output, including:

• Program Description- A detailed, clear description of the program you are building.
• Analysis- Demonstrates your thought process and steps used to analyze the problem. Be sure to include the required input and output and how you will obtain the required output from the given input? Also, include your variable names and definitions. Be sure to describe the necessary formulas and sample calculations that might be needed. Talk about the functions you plan to use and how you will use arrays. Be sure to talk about the types of programming statements that will be used on why.
• Test plan – Prepare at least 5 sets of input data (Test data) along with their expected output for testing your program. Your test data can be presented in the form of a table as follows (note: feel free to adapt to your design)
• Pseudocode- Provide pseudocode of your overall design that fulfills the requirements of the project
• Documentation- Lessons learned were included documenting issues faced during this assignment and how these were overcome. Possible improvements were provided documenting weaknesses in the application and how to resolve those weaknesses or add additional useful functionality. A detailed accounting of the approach used to solve this problem was provided.

All of these components should be placed in word document for submission.

1. Family sizes vary, however you should design to be able to enter at least 50 Family members.
2. Your test cases should have at least 5 family members.
3. Be sure to separate some functionality into functions or submodules. Having all functionality in the main module is not a good design.
4. Your design should consider how to indicate the family member entry is complete.
5. Carefully consider the best data type for each of your variables. (e.g. when to use Float versus Integers versus Strings)

Example application test data:

 Test Case # Input Expected Output Pass/Fail 1 Fred, Age: 82, State: MD Mary, Age:75, State: OH Joe, Age: 45, State: TX Julie, Age: 47, State: TX Beth, Age: 9, State: TX Average Age: 51.6 Members who live in TX: Joe Julie Beth 2 Your input data Your expected output 3 Your input data Your expected output