Having trouble with functions

Its not exactly pretty...
I need some guidance on functions.
Can I take:
int addNum (int x, int y);
int subNum (int x, int y);
int multNum (int x, int y);
int divNum (int x, int y);
int remNum (int x, int y);

and just create one process function? I tried this but it will not keep the values.

int getInteger();
void getData (int& x, int& y);
int addNum (int x, int y);
int subNum (int x, int y);
int multNum (int x, int y);
int divNum (int x, int y);
int remNum (int x, int y);
void displayData (int x, int y);

int main()
{
int x, y, sum, sub, mult, div, rem;
getData (x,y);
displayData (x, y);

return 0;
}

// Function Definitions

void getData (int& x, int& y) //Get integers from user
{
cout << "Please enter an integer: ";
x = getInteger();
cout << endl <<"Please enter an integer: ";
y = getInteger();

}
int getInteger() // Process cin as function
{
int number ;
cin >> number ;
return number ;
}

int addNum (int x, int y) //Add integers
{
int answer = x+y;
return answer;
}
int subNum (int x, int y) //Subtract integers
{
int answer = x-y;
return answer;
}
int multNum (int x, int y) //Multiply integers
{
int answer = x*y;
return answer;
}
int divNum (int x, int y) //Divide integers
{
int answer = x/y;
return answer;
}
int remNum (int x, int y) //Divide integers and return remainder
{
int answer = x % y;
return answer;
}

void displayData (int x, int y) //Print Results
{ cout << endl;
cout << " Output " <<endl<<endl;
cout << "~ ~ ~ ~ ~" <<endl<<endl;
cout << x <<" + "<< y << " = " << addNum(x,y) <<endl <<endl;
cout << x <<" - "<< y << " = " << subNum(x,y) <<endl <<endl;
cout << x <<" * "<< y << " = " << multNum(x,y) <<endl <<endl;
cout << x <<" / "<< y << " = " << divNum(x,y) <<endl <<endl;
cout << x <<" % "<< y << " = " << remNum(x,y) <<endl <<endl;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int plus( int a, int b ) { return a+b ; }
int minus( int a, int b ) { return a-b ; }
int multiplies( int a, int b ) { return a*b ; }
int divides( int a, int b ) { return a/b ; } // invariant: b != 0
int modulus( int a, int b ) { return a%b ; } // invariant: b != 0

void process( int a, int b, int& sum, int& difference, int& product, int& quotient, int& remainder )
{
    sum = plus(a,b) ;
    difference = minus(a,b) ;
    product = multiplies(a,b) ;

    if( b != 0 )
    {
        quotient = divides(a,b) ;
        remainder = modulus(a,b) ;
    }

    else quotient = remainder = 0 ;
}

int main()
{
    int sum, difference, product, quotient, remainder ;

    process( 23, 5, sum, difference, product, quotient, remainder ) ;

    // print results
}
Topic archived. No new replies allowed.