calling a decimal function

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Nov 2004
Posts: 4
Reputation: Guppy25 is an unknown quantity at this point 
Solved Threads: 0
Guppy25 Guppy25 is offline Offline
Newbie Poster

calling a decimal function

 
0
  #1
Feb 6th, 2005
Ok, so i changed the "/" to a '/' but i can't get my calculate decimal function for work. I want to call a private function calculateDecimalValue() that computes a floating decimal of the fraction inside the enterFractionValue() function after the num and den are filled. I'm not understanding how to get it inside the enterFractionValue() function. I got the slash to work but the decimal in displayDecimal is just junk. Thanks again, Here's the code i have:

class Fraction
{
private:
double num, den;
double decimal;
static char slash;

void calculateDecimalValue(float decimal);

public:
void enterFractionValue();
void displayFraction();
static void displaySlash();

};
//implementation part-to be named-fraction.cpp
char Fraction::slash='/';

void Fraction::displaySlash()
{
cout<<slash<<endl;
}

void Fraction::enterFractionValue()
{
cout <<"Please enter a numerator "<<endl;
cin >>num;
cin.ignore(80,'\n');
cout <<"The numerator is "<<num<<endl;

cout <<"Please enter a denominator "<<endl;
cin >>den;
cin.ignore(80,'\n');

while (den == 0)
{
cout<<"Enter a number greater than zero."<<endl;
cin >>den;
cin.ignore(80,'\n');
}
cout <<"The denominator is "<<den<<endl;

}
void Fraction::calculateDecimalValue(float decimal)
{
decimal = num/den;
cout<<decimal<<endl;
}

void Fraction::displayFraction()
{
int input;

cout<<"Enter the number 1 to see fraction in fraction format or "<<endl;
cout<<"the number 2 to see it in decimal form"<<endl;
cin>>input;
cin.ignore(80,'\n');
while (input != 1 && input !=2)
{
cout<<"Your entry must be a 1 or a 2, please try again."<<endl;
cin>>input;
cin.ignore(80,'\n');
}
if (input == 1)

cout<<"The fraction in traditional form is "<<num <<slash<<den<<endl;

if (input == 2)

cout<<"The fraction in decimal form is " <<decimal<<endl;

}
//main function to be named testfraction.cpp
#include <iostream.h>
#include "fraction.h"
#include "fraction.cpp"
int main()
{
Fraction oneFraction;
oneFraction.enterFractionValue();
oneFraction.displayFraction();

cout << "Press Enter to continue";
getchar();
return 0;
}
Last edited by Guppy25; Feb 6th, 2005 at 10:38 am. Reason: better title
Reply With Quote Quick reply to this message  
Join Date: Dec 2004
Posts: 60
Reputation: murschech is an unknown quantity at this point 
Solved Threads: 1
murschech murschech is offline Offline
Junior Poster in Training

Re: calling a decimal function

 
0
  #2
Feb 6th, 2005
You don't need a private function here. Also I don't think it's a good idea to make the numerator and denominator doubles. For one thing, they may not print out properly, i.e., you may have a fraction 3.0/4.0 where you really want 3/4.

Attached is a simple fraction program. (It really should be improved by reducing to lowest terms.)
Reply With Quote Quick reply to this message  
Join Date: Dec 2004
Posts: 60
Reputation: murschech is an unknown quantity at this point 
Solved Threads: 1
murschech murschech is offline Offline
Junior Poster in Training

Re: calling a decimal function

 
0
  #3
Feb 6th, 2005
Originally Posted by Guppy25
Ok, so i changed the "/" to a '/' but i can't get my calculate decimal function for work. I want to call a private function calculateDecimalValue() that computes a floating decimal of the fraction inside the enterFractionValue() function after the num and den are filled. I'm not understanding how to get it inside the enterFractionValue() function. I got the slash to work but the decimal in displayDecimal is just junk. Thanks again, Here's the code i have:

class Fraction
{
private:
double num, den;
double decimal;
static char slash;

void calculateDecimalValue(float decimal);

public:
void enterFractionValue();
void displayFraction();
static void displaySlash();

};
//implementation part-to be named-fraction.cpp
char Fraction::slash='/';

void Fraction::displaySlash()
{
cout<<slash<<endl;
}

void Fraction::enterFractionValue()
{
cout <<"Please enter a numerator "<<endl;
cin >>num;
cin.ignore(80,'\n');
cout <<"The numerator is "<<num<<endl;

cout <<"Please enter a denominator "<<endl;
cin >>den;
cin.ignore(80,'\n');

while (den == 0)
{
cout<<"Enter a number greater than zero."<<endl;
cin >>den;
cin.ignore(80,'\n');
}
cout <<"The denominator is "<<den<<endl;

}
void Fraction::calculateDecimalValue(float decimal)
{
decimal = num/den;
cout<<decimal<<endl;
}

void Fraction::displayFraction()
{
int input;

cout<<"Enter the number 1 to see fraction in fraction format or "<<endl;
cout<<"the number 2 to see it in decimal form"<<endl;
cin>>input;
cin.ignore(80,'\n');
while (input != 1 && input !=2)
{
cout<<"Your entry must be a 1 or a 2, please try again."<<endl;
cin>>input;
cin.ignore(80,'\n');
}
if (input == 1)

cout<<"The fraction in traditional form is "<<num <<slash<<den<<endl;

if (input == 2)

cout<<"The fraction in decimal form is " <<decimal<<endl;

}
//main function to be named testfraction.cpp
#include <iostream.h>
#include "fraction.h"
#include "fraction.cpp"
int main()
{
Fraction oneFraction;
oneFraction.enterFractionValue();
oneFraction.displayFraction();

cout << "Press Enter to continue";
getchar();
return 0;
}
You don't need a private function.. Here's a simple fraction class. I hope this works. The last time I tried attaching a file I didn't succeed.)
Attached Files
File Type: cpp fraction.cpp (713 Bytes, 44 views)
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC