评估简单表达式的值(简易计算器)

[b]Calculator.h[/b]
 //实现Calculator类
@interface Calculator : NSObject
{
    double accumulator;
}
//累加方法
-(void) setAccumulator: (double) value;
-(void) clear;
-(double) accumulator;
//算数方法
-(void) add: (double) value;
-(void) subtract: (double) value;
-(void) multiply: (double) value;
-(void) divide: (double) value;
@end

[b]Calculator.m[/b]
#import "Calculator.h"

@implementation Calculator
-(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{
    accumulator /= value;
}
@end

[b]main.m[/b]
#import "Calculator.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
 double value1, value2;
        char operator;
        Calculator *deskCalc = [[Calculator alloc] init];
        
        NSLog(@"Enter your expression.");
        scanf("%lf %c %lf", &value1, &operator, &value2);
        
        [deskCalc setAccumulator:value1];
        if (operator == '+')
            [deskCalc add:value2];
        else if(operator =='-')
            [deskCalc subtract:value2];
        else if(operator == '*')
            [deskCalc multiply:value2];
        else if(operator == '/')
             if(value2 == 0)
                 NSLog(@"Division by Zero");
             else
                 [deskCalc divide:value2];
        else
            NSLog(@"Unkown operator.");
        NSLog(@"%.2f",[deskCalc accumulator]);
        }
         return 0;
        }

 此计算器总共有三个界面分别为Cacluator.h、Cacluato.rm、main.m三个界面。在Cacluator。h中声明成员变量,描述类的对象属性。在Cacluator。m中用于方法的实现。主函数部分(main。m)实现整个表达式的完整表达及结果的得出。

猜你喜欢

转载自1395014506.iteye.com/blog/2231470
今日推荐