943,724 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 3490
  • C++ RSS
May 16th, 2004
0

Please Check The Errors'..Dont know what else to do

Expand Post »
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <iomanip.h>

//for logfile
struct log
{
long number;
char date[9];
char time[9];
char gate[2];
};

//for customers
struct customer
{
long number;
char initial[2];
char lname[20];
char snumber[7];
char sname[17];
char stype[17];
char suburb[17];
char state[4];
char postcode[5];
};

//constants for array sizes
const int MAXLOGS=50;
const int MAXCUST=20;


// function protoytpes
int searchProcessed(long[],long,int);//searches already processed records
int find (customer[],long,int); //searches customer array
void showHeadings(); //show headings
void drawline(); //draws line

int main ()
{
//declare array to hold logs
log logArray[MAXLOGS];

//declare infile stream and link to log.txt
ifstream in;
in.open("log.txt");

int numOfLogs = 0; // number of logs

//load-up array with logs
while(!in.eof())
{
in >> logArray[numOfLogs].number;
in >> logArray[numOfLogs].date;
in >> logArray[numOfLogs].time;
in >>logArray[numOfLogs].gate;
in >> ws;
numOfLogs++;
}
in.close();

//declare array of type customer
customer customerArray[MAXCUST];
//open the file
in.open("customer.txt");


int numberOfCustomers = 0; //number of customers

//load-up array with customers
while(!in.eof())
{
in >> customerArray[numberOfCustomers].number;
in >> customerArray[numberOfCustomers].initial;
in >> customerArray[numberOfCustomers].lname;
in >> customerArray[numberOfCustomers].snumber;
in >> customerArray[numberOfCustomers].sname;
in >> customerArray[numberOfCustomers].stype;
in >> customerArray[numberOfCustomers].suburb;
in >> customerArray[numberOfCustomers].state;
in >> customerArray[numberOfCustomers].postcode;
in >> ws;
numberOfCustomers++;

}
in.close();

//declare array of type long, to hold custNumbers of
//previously processed records
long processed[MAXLOGS];
//initialize to zero
for (int i=0;i<MAXLOGS;i++)
{
processed[i]=0;
}
int processedSize=0;//nothing in array yet

// required heading
cout << "\t\tThis is the HEADING of the statement\n" << endl;

//main loop to process records
//processing the log array from first to number of logs
for ( int z = 0; z < numOfLogs; z++ )
{
//if current customer number has not been previously processed
if (searchProcessed(processed,logArray[z].number,numOfLogs) < 0)
{
//add customer number into array of previously processed records
processed[processedSize++] = logArray[z].number;

// find the position of the customer in customer array
// by searching with current customer number from log array
int position = find(customerArray,logArray[z].number,numberOfCustomers);

//if customer is found
if (position >=0)
{
drawline(); //draw a line

cout << "\nEWAY BILL E-way Motorway\n"
<< " " << customerArray[position].number;
cout << "\n \n"<<customerArray[position].lname <<customerArray[position].initial;
cout << " \n"<< customerArray[position].snumber <<customerArray[position].sname <<customerArray[position].stype;
cout << " \n"<<customerArray[position].suburb <<customerArray[position].state <<customerArray[position].postcode;
cout << "E-way motor bill for: "<<customerArray[position].number << endl << endl;
} // end printcustomerstatement

double total = 0.0;//accumulator for totals
showHeadings(); //show headings
drawline(); //draw a line

//from current position of log array to number of logs
//trying to process every entry of customer in the log file
for (int l = z ;l<numOfLogs;l++)
{

//if found an entry matching current customer number
//(first entry is always processed).
//processSize is -1 because it has been incremented above
if(processed[processedSize-1] == logArray[l].number)
{
//display detail line
cout <<setw(8) << logArray[l].date
<<setw(9)<< logArray[l].time
<<setw(8)<< logArray[l].gate;

//checking for toll-gate code
//adding to total for correct amount
//"case of" not used because 'gate' is of type char[]
//not int.
if(! strcmp(logArray[l].gate,"A") )
{
cout <<setw(7)<< "$2.20";
total = total + 2.20;
}
else if(! strcmp(logArray[l].gate,"B") )
{
cout <<setw(7)<< "$2.80";
total = total + 2.80;
}
else if(! strcmp(logArray[l].gate,"C") )
{
cout <<setw(7)<< "$3.30";
total = total + 3.30;
}
else
{
cout <<setw(7)<< "$3.80";
total = total + 3.80;
}
cout << endl;

}

}

cout << endl << setw(8)<<"DATE" <<setw(9) <<"TIME"
<< setw(8) << "STATION"
<< setw(7) << "AMOUNT"
<<endl;


// Function tollCharge

cout << endl << endl;
cout << "Total charge usage of E-way for:" << customerArray[position].number <<" "
<< " $" << setiosflags(ios::fixed)<<setprecision(2)<< total <<endl<<endl;

cout<<"\nEnd OF E-Way Statement";
return 0;
}


// searches the array for number and returns position if found
// else returns -1
int searchProcessed(long processed[], long num,int size)

{
for (int i = 0; i < size;i++)
{
if (num == processed[i])
return i;
}
return -1;
}


//searches customer array for number and returns position if found
//else returns -1
int find (customer customerArray[],long num ,int size)
{
for (int i=0;i<size;i++)
{
if ( num == customerArray[i].number)
return i;

}
return -1;
}
;
}
}
Similar Threads
Reputation Points: 11
Solved Threads: 0
Newbie Poster
gerizzel is offline Offline
4 posts
since May 2004
May 16th, 2004
0

Re: Please Check The Errors'..Dont know what else to do

and what's wrong? (ie. does it not compile, or does it not work as you think it should?)
Reputation Points: 10
Solved Threads: 0
Newbie Poster
asqueella is offline Offline
9 posts
since Apr 2004
May 16th, 2004
0

Re: Please Check The Errors'..Dont know what else to do

it doesnt compile .. but there an error
Reputation Points: 11
Solved Threads: 0
Newbie Poster
gerizzel is offline Offline
4 posts
since May 2004
May 16th, 2004
0

Re: Please Check The Errors'..Dont know what else to do

Three Great Virtues Of A Programmer
What's the error you see? It's much easier to check if you provide the compiler/linker messages. Also please put your program into [ code] tag, so that the formatting is preserved.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
asqueella is offline Offline
9 posts
since Apr 2004
May 23rd, 2004
0

Re: Please Check The Errors'..Dont know what else to do

Also add what your program is supposed to do(a general idea) and put the compiler out put in [ c o d e ]
Reputation Points: 108
Solved Threads: 7
Posting Whiz in Training
FireNet is offline Offline
256 posts
since May 2004

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: How do I create a program using an Array ?
Next Thread in C++ Forum Timeline: Better code for TCheckListBox





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC