#include <iomanip>
#include <iostream>
#include <fstream>
using namespace std;
# define ARSIZE 30
int buildArrays( int[], int[], int[], double[] );
void printArrays( int[], int[], int[], double[], int );
void sortArrays( int[], int[], int[], double[], int );
string familyName( int);
int main()
{
int family[ARSIZE], item[ARSIZE], quantity[ARSIZE];
double price[ARSIZE], amount[ARSIZE];
int sale, sort;
float garageSale[ARSIZE];
sale=buildArrays(family,item,quantity,price);
printArrays(family,item,quantity,price,sale);
system ("pause");
return 0;
}
/***************************************************************
Function: buildArrays
Use: read the file of data and fill the four arrays.
Arguments: 1t takes three integer array and one double array
Returns: It returns the number of valid sales.
***************************************************************/
int buildArrays( int family[], int item[], int quantity[], double price[] )
{
ifstream inFile;
int holdVal,storeVal=0, numSales;
double holdNum;
inFile.open( "data7.txt" );
if ( inFile.fail() )
{
cout << "input file did not open";
exit(0);
}
inFile >> holdVal;
while (!inFile.eof())
{
family[storeVal] = holdVal;
inFile >> holdVal;
item[storeVal] = holdVal;
inFile >> holdVal;
quantity[storeVal] = holdVal;
inFile >> holdNum;
price[storeVal] = holdNum;
storeVal ++;
inFile >> holdVal;
}
numSales = storeVal;
inFile.close();
return storeVal;
}
/***************************************************************
Function: printArrays
Use: display the information for the garage sale.
For each sale, display the family name, item ID number,
sale price for one item, quantity sold, and the amount of the sale.
Arguments: 1t takes an arguments of the four arrays and the number of elements in the arrays
also one argument to calculate the sale amount.
Returns: nothing, just print out the the display of the family name, item ID number,
sale price for one item, quantity sold, and the amount of the sale.
***************************************************************/
void printArrays( int family[], int item[], int quantity[], double price[], int numSales )
{
cout << " Annual Garage Sale " << endl;
cout << endl;
cout << "------------------------------------------------------------------------------" << endl;
cout << "Family Item Id # Sale Price Quantity Sold Sale Amount" << endl;
for(int i=0;i<numSales;i++)
{
int send;
string name;
double saleamount ;
saleamount = price[i] * quantity[i];
name = familyName(family[i]);
cout <<left <<setw(10)<<name <<setw(15) <<right <<item[i]<<" "<<price[i]<< " " <<fixed <<showpoint<<setprecision(2)<<right<<quantity[i] <<setw(15)<<saleamount << endl;
}
}
/***************************************************************
Function: sortArrays
Use: sort the arrays in ASCENDING order based on the family code.
Arguments: 1t takes an arguments of the four arrays and the number of elements in the arrays
Returns: nothing just sort the arrays in ASCENDING order based on the family code.
***************************************************************/
void sortArrays( int family[], int item[], int quantity[], double price[], int numSales )
{
int temp, topsub, lastsub, worksub, smallsub;
double hold;
for (topsub=0;topsub < lastsub; topsub ++ )
{
for (worksub = topsub, smallsub = topsub; worksub<=lastsub; worksub++)
{
if (family[worksub] < family[smallsub])
smallsub = worksub;
}
temp = family[topsub];
family[topsub]= family[smallsub];
family[smallsub] = temp;
temp = item[topsub];
item[topsub]= item[smallsub];
item[smallsub] = temp;
temp = quantity[topsub];
quantity[topsub]= quantity[smallsub];
quantity[smallsub] = temp;
hold = price[topsub];
price[topsub]= price[smallsub];
price[smallsub] = hold;
}
}
/***************************************************************
Function: familyName
Use: find a family name
Arguments: arguments a family code
Returns: name of the family that corresponds with the integer code
***************************************************************/
string familyName( int familyCode )
{
string name;
switch (familyCode)
{
case 0:
name = "Drake";
break;
case 1:
name = "Spencer";
break;
case 2:
name = "Morgan";
break;
case 3:
name = "Corinthos";
break;
case 4:
name = "Webber";
break;
case 5:
name = "Quartermaine";
break;
case 6:
name = "Davis";
break;
default:
name = "invalid";
}
return name;
}
|