I am looking for feedback on my solution to the invalid operator please.
#import <Foundation/Foundation.h>
@interface Calculator : NSObject
// accumulator methods
-(void) setAccumulator: (double) value;
-(void) clear;
-(double) accumulator;
// arithmetic methods
-(void) add: (double) value;
-(void) subtract: (double) value;
-(void) multiply: (double) value;
-(void) divide: (double) value;
@end
@implementation Calculator
{
double accumulator;
}
-(void) setAccumulator: (double) value;
{
accumulator = value;
}
-(void) clear
{
accumulator = 0;
}
-(double) accumulator
{
return accumulator;
}
-(void) add: (double) value
{
accumulator += value;
}
-(void) subtract: (double) value
{
accumulator -= value;
}
-(void) multiply: (double) value
{
accumulator *= value;
}
-(void) divide: (double) value
{
if (value == 0){
printf("Error - Divide by Zero ");
accumulator = 0;
}
else
accumulator /= value;
}
@end
int main (int argc, char * argv[])
{
@autoreleasepool {
double value1, value2;
char operator;
bool test = YES;
Calculator *deskCalc = [[Calculator alloc]init];
printf("Type in your expression: ");
scanf("%lf %c %lf", &value1, &operator, &value2);
[deskCalc setAccumulator: value1];
switch (operator){
case '+':
[deskCalc add: value2];
test = YES;
break;
case '-':
[deskCalc subtract: value2];
test = YES;
break;
case '*':
[deskCalc multiply: value2];
test = YES;
break;
case '/':
[deskCalc divide: value2];
test = YES;
break;
default:
printf(" Unknown operator.");
test = NO;
break;
}
if (test == YES)
printf("%.2f", [deskCalc accumulator]);
[deskCalc release];
if (test == NO)
{
printf("");
}
}
return 0;
}