1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

Help

Discussion in 'C' started by SparkyCH, Nov 23, 2006.

  1. SparkyCH

    SparkyCH New Member

    What i have here is a currency class which is a sub class. I have hit a wall and do not know how to do the following empty functions and constructors. Please help. thanks

    Code:
    Currency::Currency():_dollars(0),_cents(0){}
    
    Currency::Currency(const Currency& curr)
    {
    	
    	_dollars = curr._dollars;
    	_cents = curr._cents;
    
    }
    
    Currency::Currency(int dollars, int cents):_dollars(dollars),_cents(cents){}
    
    Currency::Currency(float curr)
    {
    	
    	
    	
    }
    
    Currency::Currency(const string& curr)
    {
    	
    	
    	
    }
    
    int Currency::getDollars() const
    {
    	
    	return _dollars;	
    	
    }
    
    int Currency::getCents() const
    {
    	
    	return _cents;	
    	
    }
    
    void Currency::setDollars(int dollars)
    {
    	
    	this->_dollars = dollars;	
    	
    }
    
    void Currency::setCents(int cents)
    {
    	
    	this->_cents = cents;	
    	
    }
    // This function converts the internal currency representation to a floating point number
    float Currency::toFloat() const
    {
    	
    	
    	
    	return 0;
    }
    
    string Currency::toString() const
    {
    	
    	Currency curr;
    	string returning_string;
    	string assignStringDollars, assignStringCents ;
    	ostringstream dollarStream, centStream;
    
    	dollarStream << curr.getDollars();
    	centStream << curr.getCents();
    
    	assignStringDollars = dollarStream.str();
    	assignStringCents = centStream.str();
    
    	returning_string = assignStringDollars + "." + assignStringCents;
    
    	return returning_string;	
    	
    
    }
    //This function converts a floating point number to the internal representation of the currency class
    void Currency::fromFloat(float curr)
    {
    	
    	
    	
    }
    
    int Currency::fromString(const string& curr)
    {
    	Tokeniser tok(curr, ".");
    	char *garbage;
    
    	_dollars = strtol(tok.nextToken().c_str(), &garbage, 10);
    	if (garbage != NULL && strlen(garbage) > 0)
    	{
    		return -1;
    	}
    
    	_cents = strtol(tok.nextToken().c_str(), &garbage, 10);
    	if (garbage != NULL && strlen(garbage) > 0)
    	{
    		return -1;
    	}
    
    	return 0;
    }
    
    Currency& Currency::operator =(const Currency& obj)
    {
    	if (*this != obj)
    	{
    		_dollars = obj.getDollars();
    		_cents = obj.getCents();
    	}
    	
    	return *this;
    }
    
    bool Currency::operator <(const Currency& obj) const
    {
    	if (_dollars < obj.getDollars())
    	{
    		return true;
    	}
    	if (_dollars > obj.getDollars())
    	{
    		return false;
    	}
    	if (_cents < obj.getCents())
    	{
    		return true;
    	}
    
        return false;
    }
    
    bool Currency::operator ==(const Currency& obj) const
    {
    	if (_dollars == obj.getDollars() && _cents == obj.getCents())
    	{
    		return true;
    	}
    
    	return false;
    }
    
    bool Currency::operator !=(const Currency& obj) const
    {
    	return !(*this == obj);
    }
    
    ostream& operator <<(ostream& out, const Currency& obj)
    {
    	out << obj.getDollars() << "." << obj.getCents();
    	return out;	
    	
    }
     
  2. SparkyCH

    SparkyCH New Member

    I got the first two but no clue about the toflaot and fromfloat please help
    Code:
    Currency::Currency(float curr)
    {
    	
    	_dollars = (int)curr;  
    	_cents = (int)((curr - _dollars) * 100); 	
    	
    }
    
    Currency::Currency(const string& curr)
    {
    	
    	 double f = atof(curr.c_str());
    	_dollars = (int)f;
    	_cents = (int)((f - _dollars) * 100);
    }
     

Share This Page