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(i.e loops) as well as at least three functions and the use of at least three parallel arrays. Your program must collect all the information from the user, then do the calculations and display of the total counts. 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 his Classmate's studentID along with their Student Major (where 1=Mathematics, 2=Comp.Science, 3=other) and Age. You must first collect all the information from the user ( three parallel arrays). Then, count the number of each Major and calculate the average age of the classmates. Finally display all the information collected (with each student information on a separate line). After the list is printed then display these counts of each of the Majors, and the average age.
Optional data items:
Student Name –Collect and Display +1pts
Student City or Residence – Collect and Display +1pts
Student Marital Status (Married,Single) – Collect and Count each and Display +2pts
Gender (Male, Female) –Collect and Count each and Display +2pts
There are 4 components of your submission including:
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 and processes that might be needed.
Design – choose 1 of the following two design tools…..
o Program Design- A detailed, clear description of the program you are building. It should show the flow and logic of your program.(this is the outline approach)
o Flowchart – Provide a flowchart for your design. You can use Excel, Word, Powerpoint, Visio or any software you have available that will allow to draw shapes and connectors
o Pseudocode- Provide pseudocode of your overall design that fulfills the requirements of the project
Test plan - Prepare at least 1 set 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 and must contain at least 10 classmates.
C-code – submit a separate .c or .txt file.
- Make sure you code is documented with header and in-line comments and is neatly (i.e. indented properly) written
All of these components (except the C-code) should be placed in word (or other acceptable) document for submission.
OPTIONAL: You may choose to do the Pseudo-code instead of the C-code but it is only worth 15pts (meaning the highest possible grade will be a 90). And you must do the Program Design or Flowchart for the Design section.
Additional details about the program you need to consider:
1. Class sizes vary, however you should design to be able to enter at most 40 Classmates, but be flexible enough to handle less than 40. It will be easier if you loop on studentID (which should be an Integer array)
2. Your test case should have at least 10 classmates.
3. Be sure to separate some functionality into functions. Having all functionality in the main module is not a good design.
4. Your design should consider how to indicate the classmate 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 versus Boolean)
6. Strings in C are an array of characters, hence an array of Names will need to be two dimensions, one for the number of classmates, one for the length of the Names.
7. If you use one char for Gender the arrays can then be one dimension. But it may be easier to use an integer array and store a 1 or 2. OR a Boolean array.
Suggestion: Do you Analysis and Design first then implement in C in a stepwise fashion.
In others, implement the loop first, compile, and run. Then implement the next step (i.e. the prompts and input) then compile and run. Save your code at each step so you have something to fall back to.
See Submission requirements under Syllabus.
Test Plan: (20pts)
C-code: (25pts) OR Pseudo-code (15pts)
Documentation: (10pts) - Header and In-line comments, Indentation, Filename specs