Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The VP of Manufacturing, Silas Grump, calls you down to his large office with a desk on a slightly raised platform. He looks down at

The VP of Manufacturing, Silas Grump, calls you down to his large office with a desk on a slightly raised platform. He looks down at you and says, "I heard you can program a little, kid. They sure do pay you computer guru types a lotta bucks!" Then he says, "But, what can you do for me? I need a program that when I type in a part number, it will come back with a report on the console like,

There are 11 of Part Number P-33195 in inventory. It is a class C part. The cost is $24.00. The value of that inventory is $264.00.

Or, if I type in a part that aint on file, it should tell me that and Id like to be able to insert it into the list. I want it to put it exactly into the right spot, so it stays in order.

Then, it should keep on asking for more part numbers, until I say I don't want any more. You know all that info is on the parts.txt file.

After Im all done and say I dont want to search for any more part numbers, Id like a little report telling how many searches, how many were successful and how many new part numbers I added. And, it should write the file out again, so the additions are saved. Simple request for a hotshot programmer, aint it?

Back in your office you look up the file and find out it contains part number, part class, part on hand balance and part cost.

You also note that it is not in order. For sorting, you decide to use a shell sort, because every change to the order of parts needs to be reflected in all the other vectors. You couldnt do that if you used the sort function from You know you need to copy the file to the directory where your .cpp file will be. You quickly define the problem and decide that you will need parallel vectors or a vector of structs to hold the data and functions to read in the data, sort the vectors, search for the part and then print out the report.

Search for three part numbers that are on the file and then search for and add the following part numbers:

P-10022 C 123 45.00

P-31977 A 12 156.00

P-32344 D 88 12.00

Functions required (Some of the prototypes will be different if you use a vector of structs):

// fills vectors

bool get_data (vector & part_number, vector & part_class, vector & part_ohb, vector & part_cost);

// Does a binary search

int bin_search(string key, const vector& part_number);

// Asks user for a part number to search for

string get_target();

// gets remaining info to add a part number

void get_more_data(char& class_in,int& part_ohb_in,double& part_cost_in);

// Inserts part number data into vectors into the proper location // See book for information on how to write this

void insert_data (vector & part_number, vector & part_class, vector & part_ohb, vector & part_cost, string part_in, char class_in, int part_ohb_in, double part_cost_in);

// Displays info on part number

void display (const vector & part_number, const vector & part_class, const vector & part_ohb, const vector & part_cost, int finder);

// sorts vectors (Calls swapper)

void sort (vector & part_number, vector & part_class, vector & part_ohb, vector & part_cost);

// prints search stats

void print_stats(int searches, int good, int bad);

// writes out file when program ends, so additions are saved to file

void put_data (const vector & part_number, const vector & part_class, const vector & part_ohb, const vector & part_cost);

// templated swap function Swaps two items in a vector of any type // Put this BEFORE main() Called from sort function

template

void swapper (CType& a, CType & b)

{

CType temp; temp = a;

a = b;

b= temp;

}

The parts.txt file is the following:

P-39457 A 16 102.14 P-11702 B 21 24.74 P-11754 B 27 15.23 P-12009 D 3 12.80 P-12131 A 48 24.17 P-12385 B 41 27.33 P-12652 E 18 28.33 P-12677 D 15 26.59 P-12746 A 6 111.57 P-12746 C 25 14.83 P-12797 D 18 29.07 P-12856 A 33 120.96 P-13192 C 65 76.98 P-13289 C 45 36.61 P-13682 D 14 25.56 P-13713 A 10 35.12 P-14175 B 41 9.21 P-14226 D 14 28.95 P-14455 D 26 26.39 P-14493 A 29 22.09 P-14518 D 9 5.56 P-14613 A 49 74.66 P-14702 A 38 92.06 P-14748 C 24 24.80 P-38806 C 42 31.39 P-38870 A 29 127.19 P-38880 B 26 110.57 P-39014 A 30 111.33 P-39319 B 26 3.38 P-39499 B 32 37.50 P-39819 B 13 18.71 P-40002 B 9 86.81 P-40021 C 45 27.28 P-40100 B 9 40.04 P-40426 D 32 11.67 P-40784 B 4 106.76 P-41213 C 23 16.53 P-41254 D 5 11.13 P-41316 C 17 33.99 P-41359 A 44 132.94 P-43521 C 25 26.27 P-14976 C 45 22.16 P-15122 B 47 17.96 P-15825 E 27 25.76 P-15902 C 22 26.10 P-15944 D 33 15.94 P-16100 A 40 94.38 P-16283 A 44 108.99 P-16414 C 43 5.12 P-16420 D 12 25.72 P-16467 B 28 72.51 P-16803 D 44 13.61 P-17160 D 23 11.61 P-17243 A 7 69.19 P-17248 D 42 10.50 P-17295 C 2 9.26 P-17344 C 42 36.05 P-17345 B 3 33.14 P-17550 B 23 6.75 P-17644 B 24 2.62 P-17668 D 15 8.86 P-17788 F 34 9.84 P-17833 B 14 25.95 P-17871 C 4 11.70 P-18158 D 25 22.26 P-18553 A 39 5.31 P-18638 C 35 31.64 P-18827 A 26 99.28 P-19041 B 45 63.99 P-19152 A 28 133.91 P-19378 C 44 26.01 P-19505 B 7 54.98 P-19780 A 33 44.66 P-19798 D 17 22.09 P-19842 D 38 5.01 P-19943 D 30 17.46 P-19965 C 34 17.07 P-20097 A 2 26.46 P-20120 B 2 72.45 P-20126 D 6 7.17 P-20143 B 43 38.61 P-20206 B 17 39.00 P-20353 D 8 8.40 P-20486 A 20 186.81 P-20491 B 32 43.20 P-20864 C 27 33.88 P-20884 C 33 27.90 P-21071 A 28 146.96 P-21092 A 43 83.53 P-21282 C 37 10.50 P-21326 F 18 12.09 P-21499 D 30 20.19 P-21599 B 42 41.83 P-22018 B 47 46.58 P-22025 E 25 18.95 P-22083 A 45 3.64 P-22123 F 14 11.51 P-22204 A 46 100.85 P-22254 C 2 7.98 P-22391 B 47 6.69 P-22526 C 37 9.14 P-22547 C 15 32.88 P-22554 A 50 41.31 P-22604 A 10 125.74 P-22757 B 12 47.19 P-22844 D 10 0.50 P-23038 A 29 2.33 P-23102 A 11 56.07 P-23146 D 6 16.89 P-23379 D 43 19.29 P-23506 C 40 14.41 P-23975 D 5 6.84 P-24183 D 13 10.63 P-24253 A 40 120.22 P-24286 B 23 54.52 P-24383 C 44 9.01 P-24613 B 50 57.98 P-24675 E 21 14.22 P-24692 D 33 29.45 P-24724 B 45 6.45 P-24910 A 23 14.27 P-24991 D 34 28.48 P-35349 A 46 80.95 P-35432 A 36 69.73 P-35797 A 4 94.76 P-35809 B 30 30.69 P-35867 D 35 20.86 P-35936 B 22 31.21 P-35961 F 32 0.57 P-36143 D 29 9.53 P-36145 A 5 83.35 P-11196 B 39 59.04 P-11226 C 29 24.46 P-11245 D 45 0.93 P-11273 C 38 21.48 P-11281 B 40 66.47 P-11376 D 50 27.03 P-24992 C 123 45.00 P-13725 A 23 61.46 P-13726 B 12 51.08 P-13754 D 27 4.56 P-13947 C 34 27.71 P-13982 C 17 10.47 P-13987 D 17 27.24 P-13999 B 12 33.01 P-14036 A 41 67.24 P-14124 B 7 69.20 P-25157 A 32 84.01 P-25366 A 37 32.37 P-25405 D 2 8.61 P-25482 A 13 71.09 P-25513 B 15 76.05 P-25549 C 8 4.78 P-25564 D 24 13.30 P-25594 C 16 32.59 P-25602 B 39 15.05 P-25606 C 42 16.95 P-25648 C 3 25.89 P-25746 A 35 90.57 P-25895 D 39 26.89 P-25923 C 2 26.08 P-26188 C 48 32.37 P-26298 A 40 76.50 P-26377 C 21 21.78 P-26382 C 39 15.99 P-26408 F 9 0.37 P-26574 A 38 7.96 P-26576 C 13 23.59 P-26853 A 10 118.43 P-26868 A 2 125.05 P-27191 C 34 20.39 P-27225 C 34 14.28 P-27345 A 28 195.43 P-27417 C 42 1.61 P-27586 B 16 24.21 P-27648 D 10 1.39 P-27785 B 46 26.75 P-27812 C 5 18.37 P-27850 A 46 181.07 P-27873 B 13 102.37 P-27945 D 42 10.44 P-27969 C 2 12.52 P-28009 A 2 60.77 P-27987 C 49 5.37 P-28061 A 35 117.29 P-28309 B 28 34.06 P-28509 D 26 12.95 P-28510 D 13 16.13 P-28518 C 1 22.53 P-28690 A 45 19.34 P-28943 A 21 121.80 P-29044 D 14 6.17 P-29059 D 9 29.82 P-29096 A 49 106.39 P-11191 A 10 34.29 P-29182 A 11 26.83 P-29183 E 46 29.59 P-29185 A 28 73.08 P-29279 C 42 12.55 P-29518 A 17 147.52 P-29549 F 10 7.95 P-29637 B 18 87.18 P-29722 C 25 20.74 P-30037 C 37 22.19 P-30383 A 31 124.74 P-30538 B 1 2.86 P-30591 A 9 40.47 P-30643 A 7 81.94 P-10659 B 17 88.97 P-31007 A 3 11.77 P-31071 B 46 0.36 P-31136 A 29 89.83 P-31429 C 43 5.85 P-31497 A 38 28.12 P-31585 C 8 44.39 P-31701 B 35 51.74 P-31722 A 31 191.32 P-31739 B 24 71.54 P-31744 C 45 15.03 P-31763 A 13 130.56 P-31859 D 24 29.54 P-31969 C 20 17.44 P-32291 A 37 188.37 P-32382 C 44 29.54 P-32417 C 11 27.06 P-32467 C 15 2.73 P-32556 A 44 31.13 P-32599 B 43 66.23 P-32890 A 11 95.99 P-32901 D 32 4.44 P-33017 D 33 5.70 P-33066 C 25 30.27 P-33140 A 32 26.49 P-33143 B 45 44.69 P-33155 D 10 15.25 P-33195 C 11 24.63 P-33224 D 15 8.96 P-33382 C 46 3.44 P-33481 D 20 17.22 P-33491 C 32 24.65 P-33593 C 3 3.52 P-33597 A 2 28.85 P-33643 C 21 5.09 P-34050 B 16 18.99 P-34099 D 49 0.70 P-34106 A 24 63.59 P-34490 F 4 1.65 P-34503 C 7 8.64 P-34512 B 2 69.17 P-34554 A 33 11.27 P-34627 B 22 73.36 P-34670 B 39 112.66 P-34689 B 29 16.06 P-34711 C 1 23.09 P-34743 D 22 25.21 P-34826 B 16 111.01 P-34883 B 49 45.64 P-34991 B 10 41.79 P-34997 A 12 156.00 P-43582 B 3 13.18 P-41383 C 2 2.62 P-41644 D 43 3.40 P-41740 A 25 186.21 P-41754 D 4 20.07 P-41828 D 45 26.95 P-41936 A 11 59.17 P-42059 A 12 78.86 P-42117 C 19 3.07 P-42217 D 45 16.88 P-42259 B 29 73.98 P-42329 A 43 93.94 P-42381 A 37 188.53 P-42634 F 16 7.67 P-42788 C 38 21.88 P-14786 D 22 5.55 P-35146 B 6 62.55 P-11646 D 42 23.58 P-36728 A 15 120.47 P-36826 C 19 18.52 P-36830 B 41 25.29 P-36895 C 11 31.64 P-37009 D 8 23.64 P-37402 C 49 26.02 P-37494 C 1 28.88 P-37504 C 11 13.09 P-37542 B 39 26.43 P-37674 B 17 31.02 P-38033 A 12 70.61 P-38087 B 29 37.76 P-38108 C 44 23.04 P-38247 A 15 128.48 P-38388 C 37 20.84 P-38434 D 49 7.31 P-38460 C 47 28.68 P-38684 B 13 20.30 P-38757 A 30 191.64 P-42792 C 36 17.68 P-42936 A 18 129.79 P-43179 A 47 35.60 P-43264 B 31 103.81 P-43367 B 5 32.39 P-43378 A 46 6.38 P-43622 A 10 155.36 P-43672 A 38 17.97

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Fundamentals Study Guide

Authors: Dr. Sergio Pisano

1st Edition

B09K1WW84J, 979-8985115307

More Books

Students also viewed these Databases questions