944,092 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 6022
  • C++ RSS
Feb 6th, 2005
0

calling a decimal function

Expand Post »
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
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Guppy25 is offline Offline
4 posts
since Nov 2004
Feb 6th, 2005
0

Re: calling a decimal function

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.)
Reputation Points: 21
Solved Threads: 1
Junior Poster in Training
murschech is offline Offline
60 posts
since Dec 2004
Feb 6th, 2005
0

Re: calling a decimal function

Quote 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, 64 views)
Reputation Points: 21
Solved Threads: 1
Junior Poster in Training
murschech is offline Offline
60 posts
since Dec 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: visual studio c++ and linux?
Next Thread in C++ Forum Timeline: GET! GOT! GOTCHA! I still don't Get it...





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


Follow us on Twitter


© 2011 DaniWeb® LLC