-
October 8th, 2010, 10:05 PM
#1
Problems with Functions in Class
I have created class menu and class number. I would like that my functions in class do sum, subtract, multiply, and divide. I've done sum, but I have problems with other functions. When I do difference, it is actually sum my numbers, and result of multiplication and division is 0 all the time. Could somebody help me with this problem.
-
October 8th, 2010, 10:07 PM
#2
Re: Problems with Functions in Class
This is one of my classes
#include "StdAfx.h"
#include <iostream>
#include <string>
using namespace std;
classMenu::classMenu( void ) {
userMenuSelection = Quit;
}
classMenu::~classMenu( void ) {
cout << "Destructor ~Menu invoked." << endl;
}
MenuChoices classMenu::Get( ) {
return userMenuSelection;
}
void classMenu::Set( MenuChoices newValue ) {
userMenuSelection = newValue;
}
void classMenu:isplay( ) {
cout << "1: Quit" << endl;
cout << "2: Sum"<< endl;
cout << "3: Difference" << endl;
cout << "4: Product" << endl;
cout << "5: Quotient" << endl;
}
void classMenu::QueryUser( ) {
int selection;
cout << "Enter Menu Selection: ";
cin >> selection;
switch (selection){
case 1: userMenuSelection = Quit;
break;
case 2: userMenuSelection = Sum;
break;
case 3: userMenuSelection = Difference;
break;
case 4: userMenuSelection = Product;
break;
case 5: userMenuSelection = Quotient;
break;
default: userMenuSelection = Quit;
}
cout << endl;
}
bool classMenu::Continue( ) {
return userMenuSelection != Quit;
}
void classMenu::ProcessCommand( ) {
int numA;
int numB;
Number numberA;
Number numberB;
Number numberC(0);
if ( userMenuSelection != Quit ){
cout << "Enter an integer value: ";
cin >> numA;
numberA.Set(numA);
cout << "Enter an integer value: ";
cin >> numB;
numberB.Set(numB);
cout << endl;
switch ( userMenuSelection ) {
case Sum: numberC.Add(numberA);
numberC.Add(numberB);
cout << numberA.Get() << " + " << numberB.Get() << " = "// This part is work
<< numberC.Get() << endl;
break;
case Difference: numberC.Subtract(numberA);
numberC.Subtract(numberB);
cout << numberA.Get() << " - " << numberB.Get() << " = " // this part does not work //properly
<< numberC.Get() << endl;
break;
// The rest part does not work at all. Multiplication and Division
case Product: numberC.Multiply(numberA);
numberC.Multiply(numberB);
cout << numberA.Get() << " * " << numberB.Get() << " = "
<< numberC.Get() << endl;
break;
case Quotient: numberC.Divide(numberA);
numberC.Divide(numberB);
cout << numberA.Get() << " / " << numberB.Get() << " = "
<< numberC.Get() << endl;
break;
default: cout << "Warning: error state encountered." << endl;
}
cout << endl;
}
}
-
October 8th, 2010, 10:08 PM
#3
Re: Problems with Functions in Class
This is another class
#include "StdAfx.h"
#include <string>
#include <iostream>
using namespace std;
Number::Number( void ) {
cout << "Default constructor invoked: Number( void )." << endl;
number = 0;
}
Number::Number( int integerValue ) {
cout << "Non-Default constructor invoked: Number( int )." << endl;
number = integerValue;
}
Number::~Number( void ) {
cout << "Destructor ~Number invoked." << endl;
}
int Number::Get( ) {
return number;
}
void Number::Set( int integerValue ) {
number = integerValue;
}
void Number::Output( ) {
cout << number << endl;
cout << endl;
}
void Number::Add( Number otherNumber ) {
number = number + otherNumber.Get();
}
void Number::Subtract( Number otherNumber ) {
number = number - otherNumber.Get();
}
int Subtract(Number numA, Number numB){
int answer;
answer = numA.Get() - numB.Get();
return answer;
}
void Number::Multiply(Number otherNumber) {
number = number * otherNumber.Get();
}
void Number:ivide(Number otherNumber) {
number = number / otherNumber.Get();
}
-
October 9th, 2010, 05:00 AM
#4
Re: Problems with Functions in Class
Don't you want to edit your posts adding Code tags around code snippets? See Announcement: Before you post....
Victor Nijegorodov
-
October 11th, 2010, 09:35 PM
#5
Re: Problems with Functions in Class
I reformat my class
Code:
#include "StdAfx.h"
#include <iostream>
#include <string>
using namespace std;
classMenu::classMenu( void ) {
userMenuSelection = Quit;
}
classMenu::~classMenu( void ) {
cout << "Destructor ~Menu invoked." << endl;
}
MenuChoices classMenu::Get( ) {
return userMenuSelection;
}
void classMenu::Set( MenuChoices newValue ) {
userMenuSelection = newValue;
}
void classMenu:isplay( ) {
cout << "1: Quit" << endl;
cout << "2: Sum"<< endl;
cout << "3: Difference" << endl;
cout << "4: Product" << endl;
cout << "5: Quotient" << endl;
}
void classMenu::QueryUser( ) {
int selection;
cout << "Enter Menu Selection: ";
cin >> selection;
switch (selection){
case 1: userMenuSelection = Quit;
break;
case 2: userMenuSelection = Sum;
break;
case 3: userMenuSelection = Difference;
break;
case 4: userMenuSelection = Product;
break;
case 5: userMenuSelection = Quotient;
break;
default: userMenuSelection = Quit;
}
cout << endl;
}
bool classMenu::Continue( ) {
return userMenuSelection != Quit;
}
void classMenu::ProcessCommand( ) {
int numA;
int numB;
Number numberA;
Number numberB;
Number numberC(0);
if ( userMenuSelection != Quit ){
cout << "Enter an integer value: ";
cin >> numA;
numberA.Set(numA);
cout << "Enter an integer value: ";
cin >> numB;
numberB.Set(numB);
cout << endl;
switch ( userMenuSelection ) {
case Sum: numberC.Add(numberA);
numberC.Add(numberB);
cout << numberA.Get() << " + " << numberB.Get() << " = "// This part is work
<< numberC.Get() << endl;
break;
case Difference: numberC.Subtract(numberA);
numberC.Subtract(numberB);
cout << numberA.Get() << " - " << numberB.Get() << " = " // this part does not work //properly
<< numberC.Get() << endl;
break;
// The rest part does not work at all. Multiplication and Division
case Product: numberC.Multiply(numberA);
numberC.Multiply(numberB);
cout << numberA.Get() << " * " << numberB.Get() << " = "
<< numberC.Get() << endl;
break;
case Quotient: numberC.Divide(numberA);
numberC.Divide(numberB);
cout << numberA.Get() << " / " << numberB.Get() << " = "
<< numberC.Get() << endl;
break;
default: cout << "Warning: error state encountered." << endl;
}
cout << endl;
}
}
-
October 11th, 2010, 09:36 PM
#6
Re: Problems with Functions in Class
This is another class
Code:
#include "StdAfx.h"
#include <string>
#include <iostream>
using namespace std;
Number::Number( void ) {
cout << "Default constructor invoked: Number( void )." << endl;
number = 0;
}
Number::Number( int integerValue ) {
cout << "Non-Default constructor invoked: Number( int )." << endl;
number = integerValue;
}
Number::~Number( void ) {
cout << "Destructor ~Number invoked." << endl;
}
int Number::Get( ) {
return number;
}
void Number::Set( int integerValue ) {
number = integerValue;
}
void Number::Output( ) {
cout << number << endl;
cout << endl;
}
void Number::Add( Number otherNumber ) {
number = number + otherNumber.Get();
}
void Number::Subtract( Number otherNumber ) {
number = number - otherNumber.Get();
}
int Subtract(Number numA, Number numB){
int answer;
answer = numA.Get() - numB.Get();
return answer;
}
void Number::Multiply(Number otherNumber) {
number = number * otherNumber.Get();
}
void Number:ivide(Number otherNumber) {
number = number / otherNumber.Get();
}
-
October 12th, 2010, 12:56 AM
#7
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|