c++ book store sales analysis

Can someone help me solve this program please????
I dont know where to start



Description: This program will read a data file that contains book store sales for 12 months. Each month record will contain 6 category book sales (Math, CS, Physics, Chemistry, Biology, Geography). The file will be processed by the program and will produce a report.

The report contains the following parts:
1) The total, highest and lowest sales for each month among 6 category book sales
2) The total, highest and lowest sales for each category book among 12 month.
3) Sorting 12 months in descendent order of the total sale
4) Sorting 6 book categories in descendent order of the total sale
5) Search the sale by user inputting the month and book category

(See the attached sample input and output for example.)

Specifications:

1. All input data will be in an input file. The name of the data file that will be used for your program MUST BE sale.dat. You may need to create your own version of sale.dat to test your program before you turn it in. You must also submit a printout of the contents of this test file when you submit this project.
2. You need to use two dimensional array to store the book store sales
3. You need to write several functions in your program: For example: for finding highest, lowest, and total, sorting, and searching etc.
4. You need to do input validation for valid month and book category for searching

Requirements for Submission:

You must submit your C++ source code, which is .cpp file through myClass, and hand in
1. Design your algorithm using flow chart
2. A printed copy of your source code.
3. Your set of sample input data files
4. Your set of sample screen outputs corresponding to each input data file.
5. (optional)Program report: state clearly if your program doesn’t work well. What’s the problem? Or anything you want me to know, for example, you get the help from other students. You can not copy others’ work. It is individual program assignment!


Sample Run

Sample Input File sale.dat contains:


50 61 32 43 51 45
108 121 82 97 88 75
51 65 37 44 56 47
48 66 39 40 55 36
50 60 36 49 51 42
49 60 36 49 53 56
46 69 36 38 49 37
110 112 78 92 83 80
58 69 38 42 51 44
53 66 38 41 50 42
52 63 31 40 52 48
50 63 38 39 49 40

Sample Output:

Month Math CS Phy Chem Bio Geo Total High Low

Jan 50 61 32 43 51 45 282 61 32
Feb 108 121 82 97 88 75 571 121 75
Mar 51 65 37 44 56 47 300 65 37
Apr 48 66 39 40 55 36 284 66 36
May 50 60 36 49 51 42 288 60 36
Jun 49 60 36 49 53 56 303 60 36
Jul 46 69 36 38 49 37 275 69 36
Aug 110 112 78 92 83 80 555 112 78
Sep. 58 69 38 42 51 44 302 69 38
Oct 53 66 38 41 50 42 290 66 38
Nov 52 63 31 40 52 48 286 63 31
Dec 50 63 38 39 49 40 279 63 38

Total 725 875 521 614 688 592
High 110 121 82 97 88 80
Low 46 60 31 38 49 36



Sorting month in descending order of total sale
February 571
Aug 555
Jun 303
Sep 302
Mar 300
Oct 290
May 288
Nov 286
Apr 284
Jan 282
Dec 279
Jul 275

Sorting book category in descending order of total sale
CS 875
Math 725
Bio 688
Chem 614
Geo 592
Phy 521



Please Input Month and book category you want to search ( -1 for exit)
Month: Feb
Category: CS
The total sale is 121

Please Input Month and book category you want to search ( -1 for exit)
Month: Nov
Category: Geo
The total sale is 48

Please Input test score you want to search
-1
Bye!
Press any key to continue

Last edited on
You'll have to make more of an effort than that. Try outlining the program, identifying routines and data structures that you'll need, and go from there.

We're happy to help, but most of us aren't willing to start you from scratch.
this is what i have so far

//Returns a two dimension array where the columns are the different subjects and rows are the months.
array<Int32^,2>^ getSalesData(String^ filePath) {
array<Int32^,2>^ salesTotals = gcnew array<Int32^,2>(12,6);
try {
StreamReader^ din = File::OpenText(filePath);

String^ readString;
int count = 0;
array<String^>^ stringArray;
array<Char>^ delimeter = gcnew array<Char>{'\t'};
while((readString = din->ReadLine()) != nullptr)
{
stringArray = readString->Split(delimeter,StringSplitOptions::None);
salesTotals[count,0] = Convert::ToInt32(stringArray[0]);
salesTotals[count,1] = Convert::ToInt32(stringArray[1]);
salesTotals[count,2] = Convert::ToInt32(stringArray[2]);
salesTotals[count,3] = Convert::ToInt32(stringArray[3]);
salesTotals[count,4] = Convert::ToInt32(stringArray[4]);
salesTotals[count,5] = Convert::ToInt32(stringArray[5]);
count++;
}

}
catch(Exception^ e)
{
Console::WriteLine(e->Message);
}
return salesTotals;

}
Topic archived. No new replies allowed.