![Page 1: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/1.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition
Chapter 10: Applications of Arrays and the class
vector
![Page 2: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/2.jpg)
Objectives
In this chapter, you will:
• Explore how to sort an array using the bubble sort, selection sort, and insertion sort algorithms
• Learn how to implement the binary search algorithm
• Become familiar with the vector type
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2
![Page 3: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/3.jpg)
List Processing
• List: a collection of values of the same type
• Basic list operations:– Search the list for a given item– Sort the list– Insert an item in the list– Delete an item from the list– Print the list
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 3
![Page 4: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/4.jpg)
Searching
• Sequential search algorithm
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 4
![Page 5: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/5.jpg)
Searching (cont'd.)
• List with 1000 elements– Search item is the second item
• Sequential search makes two key comparisons
– Search item is the 900th item• Sequential search makes 900 key comparisons
– Search item is not in the list• Sequential search makes 1000 key comparisons
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 5
![Page 6: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/6.jpg)
Searching (cont'd.)
• Sequential search– Not very efficient for large lists– On average, number of key comparisons
equal to half the size of the list– Does not assume that the list is sorted
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 6
![Page 7: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/7.jpg)
Bubble Sort
• list[0]...list[n - 1] – List of n elements, indexed 0 to n - 1
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 7
![Page 8: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/8.jpg)
Bubble Sort (cont'd.)
• Series of n - 1 iterations– Successive elements list[index] and list[index + 1] of list are compared
– If list[index] > list[index + 1]• Elements list[index] and list[index + 1]
are swapped
• Smaller elements move toward the top
• Larger elements move toward the bottom
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 8
![Page 9: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/9.jpg)
Bubble Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 9
![Page 10: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/10.jpg)
Bubble Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 10
![Page 11: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/11.jpg)
Bubble Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 11
![Page 12: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/12.jpg)
Bubble Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 12
![Page 13: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/13.jpg)
Bubble Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 13
![Page 14: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/14.jpg)
Bubble Sort (cont'd.)
• List of length n– Exactly n(n - 1) / 2 key comparisons– On average n(n - 1) / 4 item assignments
• n = 1000– 500,000 key comparisons– 250,000 item assignments
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 14
![Page 15: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/15.jpg)
Selection Sort• Rearrange the list by selecting an element
in the list and moving it to its proper position
• Finds the location of the smallest element in the unsorted portion of the list – Moves it to the top of the unsorted portion of
the list
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 15
![Page 16: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/16.jpg)
Selection Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 16
![Page 17: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/17.jpg)
Selection Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 17
![Page 18: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/18.jpg)
Selection Sort (cont'd.)
• In the unsorted portion of the list:– Find the location of the smallest element– Move the smallest element to the beginning of
the unsorted list
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 18
![Page 19: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/19.jpg)
Selection Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 19
![Page 20: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/20.jpg)
Selection Sort (cont'd.)
• List of length n– Exactly n(n - 1) / 2 key comparisons– 3(n - 1) item assignments
• n = 1000– 500,000 key comparisons– 3000 item assignments
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 20
![Page 21: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/21.jpg)
Insertion Sort
• Sorts the list by moving each element to its proper place
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 21
![Page 22: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/22.jpg)
Insertion Sort (cont'd.)
• Consider the element list[4]– First element of unsorted list– list[4] < list[3]
• Move list[4] to proper location• At list[2]
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 22
![Page 23: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/23.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 23
Insertion Sort (cont'd.)
![Page 24: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/24.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 24
Insertion Sort (cont'd.)
![Page 25: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/25.jpg)
Insertion Sort (cont'd.)
• During the sorting phase– Array containing the list is divided into two
sublists: sorted and unsorted
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 25
![Page 26: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/26.jpg)
Insertion Sort (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 26
![Page 27: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/27.jpg)
Insertion Sort (cont'd.)
• List of length n– About (n2 + 3n – 4) / 4 key comparisons– About n(n – 1) / 4 item assignments
• n = 1000– 250,000 key comparisons– 250,000 item assignments
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 27
![Page 28: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/28.jpg)
Binary Search• Much faster than a sequential search
• List must be sorted
• “Divide and conquer”
• Compare search item with middle element– Less than middle: search only upper half of
list– More than middle: search only lower half of
list
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 28
![Page 29: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/29.jpg)
Binary Search (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 29
![Page 30: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/30.jpg)
Binary Search (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 30
![Page 31: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/31.jpg)
Binary Search (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 31
![Page 32: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/32.jpg)
Performance of Binary Search
• L is a sorted list of size 1024– Every iteration of the while loop cuts the size
of the search list by half– At most, 11 iterations to determine whether x is
in L– Binary search will make 22 comparisons at most
• L has1048576 elements– Binary search makes 42 item comparisons at
most
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 32
![Page 33: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/33.jpg)
Performance of Binary Search (cont'd.)
• List of length n– Maximum number comparisons 2log2n + 2
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 33
![Page 34: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/34.jpg)
vector type (class)
• Only a fixed number of elements can be stored in an array
• Inserting and removing elements causes shifting
• vector type implements a list– vector container – vector– vector object– object
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 34
![Page 35: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/35.jpg)
vector type (class) (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 35
![Page 36: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/36.jpg)
vector type (class) (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 36
![Page 37: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/37.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 37
vector type (class) (cont'd.)
![Page 38: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/38.jpg)
vector type (class) (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 38
![Page 39: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/39.jpg)
Programming Example: Election Results
• Presidential election for the student council of your local university
• Write a program to analyze the data and report the winner
• Four major divisions labeled as Region 1, Region 2, Region 3, and Region 4– Each division has several department
– Each department manages its own voting process and directly reports the results to the election committee
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 39
![Page 40: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/40.jpg)
Programming Example: Election Results (cont'd.)
• Desired output:
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 40
• Voting is reported in the following form:
![Page 41: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/41.jpg)
Programming Example: Election Results (cont'd.)
• Assume that six candidates are running– Program can be modified to accommodate
any number of candidates
• Data is provided in two files:– candData.txt consists of the names of
candidates– voteData.txt each line consists of voting
results• One entry per line
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 41
![Page 42: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/42.jpg)
Programming Example: Input and Output
• Input: Two files, one containing the candidates’ names and the other containing the voting data
• Output: election results in a tabular form and the winner
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 42
![Page 43: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/43.jpg)
Programming Example: Problem Analysis
• Program must organize the voting data by region
• Program must calculate total number of votes received by each candidate as well as the total votes cast in the election
• Names of the candidates must appear in alphabetical order
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 43
![Page 44: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/44.jpg)
Programming Example: Problem Analysis (cont'd.)
• Data type of a candidate’s name and number of votes are different– Separate arrays
• Use a two-dimensional array to hold the next four columns of the output
• One-dimensional array to hold the total votes received by each candidate
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 44
![Page 45: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/45.jpg)
Programming Example: Problem Analysis (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 45
![Page 46: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/46.jpg)
Programming Example: Algorithm Design
• Read the candidates’ names into the array candidatesName
• Sort the array candidatesName• Initialize the arrays votesByRegion and totalVotes
• Process the voting data• Calculate the total votes received by each
candidate• Output the results
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 46
![Page 47: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/47.jpg)
Programming Example: Function getCandidatesName()
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 47
![Page 48: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/48.jpg)
Programming Example: Function sortCandidateName()
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 48
![Page 49: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/49.jpg)
Programming Example: Function initialize()
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 49
![Page 50: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/50.jpg)
Programming Example: Process Voting Data
• Get a candidateName, regionNumber, and numberOfVotesForTheCandidate
• Find the row number in the array candidatesName that corresponds to this candidate– This gives the corresponding row number in the
array votesByRegion for this candidate
• Find the column in the array votesByRegion that corresponds to the regionNumber
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 50
![Page 51: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/51.jpg)
Programming Example: Process Voting Data (cont'd.)
• Update the appropriate entry in the array votesByRegion by adding the numberOfVotesForTheCandidate
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 51
![Page 52: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/52.jpg)
Programming Example: Function binSearch()
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 52
![Page 53: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/53.jpg)
Programming Example: Function processVotes()
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 53
![Page 54: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/54.jpg)
Programming Example: Function addRegionsVote()
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 54
![Page 55: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/55.jpg)
Programming Example: Function printHeading()
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 55
![Page 56: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/56.jpg)
Programming Example: Function printResults()
• Initialize sumVotes, largestVotes, and winLoc to 0
• For each row in each array:
• Output the final lines of output
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 56
![Page 57: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/57.jpg)
Programming Example: Main Algorithm
• Declare the variables
• Open the input file candData.txt• If the input file does not exist, exit the
program
• Read the data from the file candData.txt into the array candidatesName
• Sort the array candidatesName• Close the file candData.txt and clear the
input streamC++ Programming: From Problem Analysis to Program Design, Fifth Edition 57
![Page 58: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/58.jpg)
Programming Example: Main Algorithm (cont'd.)
• Open the input file voteData.txt• If the input file does not exist, exit the
program
• Initialize the arrays votesByRegion and totalVotes
• Process the voting data and store the results in the array votesByRegion
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 58
![Page 59: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/59.jpg)
Programming Example: Main Algorithm (cont'd.)
• Calculate the number of total votes received by each candidate and store the results in the array totalVotes
• Print the heading
• Print the results
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 59
![Page 60: C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 10: Applications of Arrays and the class vector](https://reader035.vdocuments.us/reader035/viewer/2022062511/5518d062550346b31f8b5c6f/html5/thumbnails/60.jpg)
Summary
• List– Set of elements of the same type
• Sorting algorithms– Bubble sort– Selection sort– Insertion sort
• Binary search– Compare performance to sequential search
• vector type
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 60