Lab 5 of 7: Arrays and Strings – (45 points)

Lab 5 of 7: Arrays and Strings – (45 points)

L A B O V E R V I E W

Scenario/Summary
You will code, build, and execute two programs requiring arrays and ArrayLists. The first program will determine statistics for a video game tournament. The second program will alphabetize a list of last names.
Deliverables
Submit the following to this week’s Dropbox:
A zipped Visual Studio project folder for each programming exercise. Refer to the Deliverables section of the Week 1 iLab page for detailed instructions on how to zip a project folder.
A single MS Word file named YourLastName_Lab1_ex1.docx containing the following items:
The source code for each program in the lab: Your source code should use proper indentation, include meaningful comments, and be error free. Start each with a specification that includes your name, the lab and exercise number, and a description of what the program accomplishes, similar to this: /* Specification: First Name Last Name Lab 1 Exercise # This program does X */
Labeled screenshot(s) of the output windows for each program, showing that each program produces correct results
NOTE: A screenshot of a window can be created by first clicking on it to activate it. Next, press the key or key combination your specific computer uses to do a “print screen” (typically the Prnt Scrn or Prnt key in combination with the ctrl or FN key). Then, click the MS Word “paste” option to paste the screenshot into the MS Word file.
Objectives and Grading
Lab Objectives:
To be able to explain the need for arrays in a program
To be able to determine the appropriate array data type to use in a given program
To be able to write a program that implements arrays
To be able to explain the way memory is allocated for arrays in a program
To be able to explain the fact that arrays are objects in C#
To be able to write a program that implements an ArrayList
Your lab grade will be based upon:
the formatting of your source code;
the use of meaningful identifiers;
the extent of internal documentationl; and
the degree to which an exercise’s specifications are met.
Preparation:

If you are using the Citrix remote lab, follow the login instructions located in the iLab tab in Course Home.
iLab Steps

Part A: Tournament Stats
Requirements
Your mission: Write a program to determine statistics for a video game tournament. The user will input names and scores of all tournament players. The program will calculate the average score and display the players who scored below average.

The program will implement these functions:
Main(): Declares variables for the number of players and average score, and two arrays of size 100: one to store player names and the other to store their respective scores. Calls the following functions in sequence, passing necessary parameters by reference:
InputData( ): Gets player names and scores from the user and stores them into the two arrays for an unknown number of players up to 100.
DisplayPlayerData(): Displays each player’s name and score.
CalculateAverageScore( ): Calculates the average score and returns it by value.
DisplayBelowAverage( ): Displays the names and scores of players who scored below average.
Sample output:

Enter Player Name (Q to quit): Bob

Enter score for Bob: 3245

Enter Player Name (Q to quit): Sue

Enter score for Sue: 1098

Enter Player Name (Q to quit): Dave

Enter score for Dave: 8219

Enter Player Name (Q to quit): Pat

Enter score for Pat: 3217

Enter Player Name (Q to quit): Q
Name Score

Bob 3245

Sue 1098

Dave 8219

Pat 3217
Average Score: 3944.75
Players who scored below average

Name Score

Bob 3245

Sue 1098

Pat 3217

Press any key to continue . . .
Tips
Best practices: Don’t try to write too much at a time! First, write an outline in comments based on the requirements and the pseudocode. Then, implement each function one at a time. Start each by writing a shell that just accepts data and perhaps prints it out for testing purposes. Test by calling the function from Main(). Then, add more functionality. Keep working incrementally, compiling and testing as you go. Set breakpoints and use the debugger at each phase to make sure your logic is working correctly. Then, use the same approach to implement each of the other functions.
Pseudocode
Main Function
Declare player and score arrays, and variables for number of players and average score.
Call the InputData( ) function, passing arrays and number of players variable by reference
Call the DisplayPlayerData( ) function, passing arrays and number of players variable by reference
Call the CalculateAverageScore( ) function, passing arrays and number of players by reference. Store returned value in average variable.
Display the average score
Call the DisplayBelowAverage( ) function, passing arrays and number of players variable by reference, passing average variable by value

InputData function
Loop while the number of players is less than the length of the array
Prompt for the player’s name
If the user entered Q, break out of the loop
Prompt the user for the player’s score
Add 1 to the number of players

DisplayPlayerData function
Loop to display the name and score of each player

CalculateAverageScore function
Loop to add up the scores
Divide by the number of players to calculate the average score
Return the average score to main

DisplayBelowAverage function
Loop to display the names and scores of all players who scored below the average score
END OF PART A

Part B: Alphabetical Order
Requirements
Your mission: Write a program to alphabetize a list of last names. The user will input an undetermined number of last names. The program will display the number of names entered and alphabetized lists of the names in ascending (A-Z) and descending (Z-A) order.

Your program will store the names in an ArrayList object. It will use various ArrayList properties and methods to implement the program requirements.
Sample output:

Enter a last name: Roberts
Keep going? (Y/N): y
Enter a last name: DeLay
Keep going? (Y/N): y
Enter a last name: Foreman
Keep going? (Y/N): y
Enter a last name: Ganguly
Keep going? (Y/N): n
4 last names entered

Names in Ascending Order

DeLay
Foreman
Ganguly
Names in Descending Order

Roberts
Ganguly
Foreman
DeLay
Tips
Best practices: Don’t try to write too much at a time! First, write an outline in comments based on the requirements and the pseudocode. Then, work on instantiating an ArrayList object, followed by implementing the loop that will get user input. As always, keep things simple and implement incrementally. Review the list of ArrayList methods and properties in the textbook and experiment with the ones you think you’ll need.
Pseudocode
Main function
Instantiate ArrayList object
Loop to get last names, until user wants to quit
Add each last name to the ArrayList
Display the count of the last names Sort the ArrayList Loop to display the names Reverse the order of the ArrayList Loop to display the names
END OF LAB

CIS170 Week 5 Lab in C#
CIS170A Week 5 Lab in C#
CIS170B Week 5 Lab in C#
CIS170C Week 5 Lab in C#
iqra javaid

Use the order calculator below and get started! Contact our live support team for any assistance or inquiry.

[order_calculator]