CS 341, Fall 2024                  Iyengar           Individual Programming Project # 1

                                    Due: Midnight Sunday 9/29/24

 

Creating Histogram

 

Input:

A text file named “Values.dat” with string with three values per line, up to 20 values in the file. The values represent – item_name, price, inventory, profitability, for items. Hence create an Item class and use an array of items to store the objects represented by each line.

 

Output:

A histogram displayed based on the selection made on the user interface – that enables a selection of price or inventory or profitability and ascending or descending. Thus, the user can view the items (names) from lowest price to highest price or vice-versa. Alternately – the user can view the items (names) from lowest inventory to highest inventory or vice-versa. Similarly, for profitability.

 

The user should be able to choose multiple options (and view the histograms) until – an exit option is chosen.

 

Questions and Collaboration: Any questions about the problem – email, inquiry in class or discussion with instructor. You are free to discuss the problem-solving part. Do not view or use code developed by others.

 

Requirement:

You must implement your own data management and sorting routines (not use Java libraries). For display purposes you can use a simple horizontal histogram using normalized values using ‘*’s.

 

Assume all values to be integers – price range ($) 1 – 20; inventory range (#) – 100 – 1000; and profitability (%) – 10 – 50.

 

Your application must work for an unknown number of items in the input file (up to 100).

 

Example:

 

Input:              Apple              4 500 20

                        Orange            6 300 30

                        Banana            8 900 20

 

Output:

User selection – Price, Ascending

 

                        Items displayed by ascending order of price ($)

 

                        Apple              (4)       ****

                        Orange            (6)       ******

                        Banana            (8)       ********

                                               

 

            User selection – Profitability, Descending

 

                        Items displayed by descending order of profitability (%)

 

                        Orange            (30)     ***

                        Apple              (20)     **

                        Banana            (20)     **

 

           

            User selection – Inventory, Ascending

 

                        Items displayed by ascending order of inventory (#)

 

                        Orange            (300)   ***

                        Apple              (500)   ****

                        Banana            (900)   *********

 

            User selection: Exit

 

                        Thanks for using our handy-dandy item management system!

 

 

We will use aspects of this assignment in the next one – so you can plan your code accordingly for reuse.