Your task is to design an algorithm and write a C++ program to displa on the screen a histogram(or bar chart) that could be used to chart the results of this assignment! Your program should: 1. Accept from the keyboard the course number (eg COIT11133). Accept from the keyboard a series of integers in the range 1 to 40 and count how many of each value are entered. That is record how many 1's, how many 2's, how many 3's etc. Any value greater than 40 should be listed in a separate error line, and not included in the histogram. A value of 0 or less should terminate the series. [login to view URL] a histogram conforming exactly to the format below, including your ID and full name (hard-coded), the course number entered by the user, the erroneous entries, and the drawing of axes and labelling of the axes. The following histogram is the result of entering the following sequence of numbers: for example: 13 13 13 13 13 13 13 13 13 13 13 13 14 14 14 14 12 12 12 12 12 12 12 48 21 17 15 17 25 26 28 27 26 29 27 29 29 27 27 26 30 31 32 30 33 33 32 30 31 32 35 37 36 35 34 38 38 39 38 37 36 35 39 38 42 42 32 32 33 33 40 0 This data should result in the following output: for example Program Author: Q12345678 Kim Smith Course: COIT11133 Erroneous entries: 48 42 42 10 + M# # C | MM M O | MM M U | M --+----+----+----+----+ 10 20 30 40 V A L U E [login to view URL] a value has a count of more than 10, the complete column of 10 M's is displayed, but the top M is to be replaced with a # symbol to signify that the column extends beyond the top of the diagram. Method: [login to view URL] will need to accumulate the counts for each number into an array. [login to view URL] are a variety of algorithms that can be used; however, it is strongly recommended to declare a two-dimensional array to represent the output page, and then build each of the components (x-axis, y-axis, numeric labels on axes, titles for axes and the bars of the histogram itself) into it in turn. [login to view URL] testing, you are strongly advised to test each function individually, and to initially test and debug by entering small quantities of data from the keyboard. In order to obtain full marks: (a) check for invalid (but integer numeric) data from the user; and (b)allow the user to repeat the process any number of times.
## Deliverables
Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
## Deadline information
asap