Hi folks...hope you guys can help me and fast....i'm working on a project for school. i'm using the Dev C++ complier...i'm at my wits ends on this project. i've attached it below along with the errors i keep getting and can't figure out. PLEASE SOMEONE HELP...MY PROJECT IS DUE BY 11:59 PM EASTER STANDARD TIME. i really apprectiate it. thnx.

Code:
#include <iostream.h> 
#include <fstream> 
#include <stdlib.h> 
#include <string> 
#include <ctime> 
#include <iomanip> 

const int max = 50; 

//class for the input file 
class product 
{ 
 public: 
         product();//constructor 
         //copy constructor 
         product(const product&); 
         //string get();//for print function to access the members 
         //float get(); 
         //char get(); 
         void get(float&, char&, string&); 
         void set(int, string, float, char); 
         friend bool operator==(product, product); //overloading operator == 
         int product::get(int, product); 

 private: 
         int product_num; 
         string name; 
         float price; 
         char tax; 
 }; 
class sList 
{ 
 public: 
         void MakeEmpty (); 
         bool IsFull (); 
         bool IsEmpty (); 
         int LengthIs (); 
         bool IsThere (int, int& location) const; 
         void Insert (product); 
         void Delete (); 
         void ResetList (); 
         product get (int&); 
private: 
         int length; 
         product info[max]; 
         int currentPos; 
         friend void BinSearch(/*in*/ int, /*out*/ bool&, /*out*/ int&); 
}; 

int main() 
{ 
 //declarations 

 ifstream in; 
 ofstream out; 
 int times, pnum;//times is the quantity and pnum holds product id from input file 
 int item; //holds product id from keyboard 
 float pr;// holds price from input file 
 string n;//holds name from input file 
 bool found; 
 int place;//holds index for where the product is 
 char ta; //holds tax from input file 
 sList list; //declares variable of class slist 
 product inventory;//declares variable of class product 
 time_t rawtime; 
 float subtotal = 0;//holds subtotal 
 float totTax = 0;//holds total tax value 

 //initializing list 
  list.MakeEmpty(); 

 //opening file 
 in.open("Invent.in"); 
 while(!in) 
 { 
  cout << "Inventory file did not open. Please try again."; 
  return 1; 
 } 
  //opening output file 
  out.open("Receipts.out"); 


//priming reading 
in >> pnum >> n >> pr >> ta; 
while(!in.eof()) 

{ 
 inventory.set (pnum, n, pr, ta); 
 list.Insert(inventory); 
 in >> pnum >> n >> pr >> ta; 

} 
int cus_no = 0; 
do 
{ 
 cus_no++; 
cout << "Please start processing the order in the form of productNumber"; 
cout << "and the number of times for each product and enter 0 at the end of the"; 
cout << "order." << endl; 

cin >> item >> times; 
//check for improper times value 
while((times > 100) || (times <= 0)) 
 cout << "Error, times is out of range.  Please enter a number between 1 and 100"; 

do{ 
if(item !=0) 

{ 
   product temp; //holds temp value for product class 
  BinSearch(item, found, place); 
  if(found == true) 
  { 
   temp = list.get(place);//places the whole product into temp 
   //float tprice = temp.getprice(); 
   //char t_tax = temp.get(tax); 
   //string tname = temp.get(name); 
   float price; 
   char tax; 
   string name; 
   temp.get(price, tax, name); 
   time(&rawtime);//gets time in seconds 
   out << ctime(&rawtime)<<endl; //converts seconds into a string 
   if(tax == 'T') 
   { 
    float tvalue = 0;//holds value for tax 
    tvalue = price * .075; 
    float actualPrice = 0; // price after tax is added 
    actualPrice = price + tvalue; 
    totTax +=tvalue; 
    
   out<< "Customer "<<cus_no<<endl; 
   out << name << "            " <<times<<" @ "<< price; 
   out << (price * times) <<tax<<"X" <<endl; 

   } 
   else 
   { 
    out<< "Customer "<<cus_no<<endl; 
     out << name << "           " <<times<<" @ "<< price; 
    out << (price * times) <<endl; 
    } 
   } 
   else 
    out <<"********"<<setw(5)<<setfill('o')<<item<<" not in inventory****"<<setfill(' '); 

  char repeat; 
  cout << "Is there another item to process? Enter the product id or 0 for the end of the order."; 
  cin >>item; 
   }while(item); 
 } 
 else 
 { 
  out << "Subtotal "<<"      " <<subtotal<<endl; 
  out <<"Tax"<<"          "<<totTax<<endl; 
  float total = 0; 
  total = subtotal + totTax; 
  out << "Total" <<"        "<<total<<endl; 
 } 
 } 
 char response; 
 cout <<"Is there another cusotmer to be processed? Enter Y for yes and N for no"<<endl; 
 cin >>response; 
 if(response == 'N') 
 cout << "Have a nice day!"<<endl; 
 }while(response == 'Y'); 
 } 
 return 0; 
 } 

//******************************************************** 
void sList::Insert(product inventory) 
{ 
int index, product_num; 
  if(length < max && !IsThere(product_num, index)) 
  { 

    info[length] = inventory ; 
    length++ ; 
  } 
   else 
    cout<<endl<<"List is full or contains the product number-operation aborted"; 
    } 

//*************************************************************** 
sList::sList ( ) 
{ 
        length = 0; 
        currentPos = 0; 
} 
//*************************************************************** 
void sList::MakeEmpty ( ) 
{ 
        length  =  0 ; 
        currentPos = 0; 
} 
//****************************************************************** 
int sList::LengthIs ( ) 
{ 
 return  length ; 
} 
//***************************************************** 
bool  sList::IsFull ( ) 
{ 
        return ( length == max ) ; 
} 
//****************************************************************** 
bool sList::IsThere (int pro_id, int& location ) const 
{ 
  bool found; 
  //binary search is called 

  BinSearch(pro_id, found, location); 

 return found; 
} 



//******************************************************************** 
/*void sList::Delete (  ) 
{ 
        int location; 
         if(IsThere(product_num, location)) 
        { 
        // move last element into position where item was located 

            info [location] = info [length - 1 ] ; 
            length-- ; 
        } 


} */ 
//************************************************************************** 
bool sList::IsEmpty() 
{ 
   return (length == 0); 
} 
//**************************************************************************** 
void sList::ResetList ( ) 
{ 
        currentPos  =  0; 
} 
//**************************************************************************** 
product sList::get (int& location) 
{ 
       product temp; 
       temp=info[location]; 
       return temp; 
} 
//**************************************************************** 
product::product(const product& copyInven) 
{  product inventory; 
product_num = inventory.product_num; 
   name = inventory.name; 
   price = inventory.price; 
   tax = inventory.tax; 
} 
//********************************************************************** 
void product::set (int pid, string nam,  float cost, char t) 
{ 
 product_num = pid; 
 name = nam; 
 price = cost; 
 tax = t; 
} 

//********************************************************************** 
bool operator==(product anotherItem, product inventory) 
{ 
 if(inventory.product_num == anotherItem.product_num) 
  return true; 
  else 
     return false; 
} 
//*************************************************************** 
/*bool operator<(product anotherItem) 
{ 
 if(inventory.product_num < anotherItem.product_num) 
  return true; 
  else      
   return false; 
} */ 
//**************************************************************** 
/*bool operator>(product anotherItem, product inventory) 
{ 
 if (inventory.product_num > anotherItem.product_num) 
 return true; 
 else 
  return false; 
} */ 
//***************************************************************** 
void sList::BinSearch(/*in*/ int pro_id, /*out*/ bool& found, /*out*/ int& position) 
{ 
int first = 0; //lower bound 
int last = length -1; //upper bound 
int mid; //middle index 
sList list; 

found = true; 
product temp; //declares an object of class product for get functions 
int t_pid, product_num;//holds temp value for product id for comparing purposes 
while(last >= first && !found) 
{ 
 mid = (first + last) / 2; 
 temp = list.get(position); 
 t_pid =temp.get(product_num, temp); 
 if (t_pid < pro_id) 
   last = mid - 1; 
 else if(t_pid > pro_id) 
       first = mid + 1; 
 else 
  //Assert: t_pid == pro_id 
    found = false; 
} 
if (!found) 
   position = mid; 
} 
//*************************************************************************** 
/*string product::get()*/ 
/*{ 
 string n; 
   n = temp.name; 
   return n; 
} 
//************************************************************************** 
float product::get() 
{ 
 float p; 
 p = temp.price; 
 return p; 
} 
//************************************************************************** 
char product::get() 
{ 
 char t; 
 t=temp.tax; 
 return t; 
}*/ 
//******************************* 
void product::get(float& price, char& tax, string& name) 
{  product temp; 
 price = temp.price; 
 tax = temp.tax; 
 name = temp.name; 
} 
//************************************************************* 
int product::get(int product_num, product temp) 
{ 
 int t_pid; 
 t_pid =temp.product_num; 
 return t_pid; 
}
Here are the errors i'm getting while compiling in Dev C++:

154 parse error before `else'
162 parse error before `}'
164 syntax error before `<'
165 syntax error before `>'
189 definition of implicitly-declared `sList::sList()'
189 redefinition of `sList::sList()'
50 `sList::sList()' previously defined here
296 no `void sList::BinSearch(int, bool &, int &)' member function declared in class `sList'

SOMEBODY PLEASE HELP!!!