IT虾米网

IOS计算器的实现详解

itxm 2018年06月23日 手机开发 407 0
// 
//  main.m 
//  Calcultor 
 
/* 
            计算器的简单实现 
               1.加法 
               2.减法 
               3.乘法 
               4.除法 
            实现两个数的运算 
 */ 
#import <Foundation/Foundation.h> 
#import "Calcultor.h" 
#import "Menu.h" 
 
int main(int argc, const char * argv[]) 
{ 
    Calcultor * cal = [[Calcultor alloc]init]; 
     
    //[cal setNumber1:10]; 
     
    //[cal setNumber2:10]; 
     
    //[cal setResult:0]; 
     
    //[cal setCalcultorOperator:'+']; 
     
 
//     [cal initWithNumber1:10 andInitWithNumber2:10 andInitWithCalcultorOperator:'+']; 
    //[cal counter]; 
    //NSLog(@"%@",cal); 
    double number1; 
    double number2; 
 //   double result; 
    char operator; 
 
    NSLog(@"请输入一个算式例如A+B:\n"); 
    scanf("%lf",&number1); 
    scanf("%c",&operator); 
    scanf("%lf",&number2); 
    [cal setNumber1:number1]; 
    [cal setNumber2:number2]; 
  //[cal setCalcultorOperator:operator]; 
 //   [cal counter:operator]; 
     
    NSLog(@"您计算的结果是=%.lf",[cal counter:operator]); 
     
     
//     
//    Menu * menu = [[Menu alloc]init]; 
//     
//    [menu showMenu]; 
     
    return 0; 
} 
#import <Foundation/Foundation.h> 
#import "Calcultor.h" 
 
@interface Menu : NSObject 
 
{ 
    Calcultor *  _cal; 
} 
/**显示菜单选项*/ 
-(void)showMenu:(Calcultor *)cal; 
 
@end 

#import "Menu.h" 
 
@implementation Menu 
 
/**显示菜单选项*/ 
-(void)showMenu:(Calcultor *)cal; 
{ 
     
//    NSLog(@"菜单"); 
//    NSLog(@"1.计算 + - * /"); 
//    NSLog(@"2.计算一个数的平方"); 
//    NSLog(@"请输入您的的选项:"); 
//    int selectNumber; 
//    scanf("%d",&selectNumber); 
//    switch () { 
//        case : 
//            break; 
//             
//        default: 
//            break; 
//    } 
 
} 
@end 

#import <Foundation/Foundation.h> 
 
@interface Calcultor : NSObject 
{ 
    @public 
    /**用来记录操作数1*/ 
    double _number1; 
     
    /**用来记录操作数2*/ 
    double _number2; 
     
    /**用来记录结果*/ 
     
    double _result; 
     
    /**用来记录操作符*/ 
    char   _calcultorOperator; 
} 
//@property声明 
@property double number1; 
@property double number2; 
@property double result; 
@property char calcultorOperator; 
 
/**加法*/ 
-(double)add; 
 
/**减法*/ 
-(double)subtract; 
 
/**乘法*/ 
-(double)multiply; 
 
/**除法*/ 
-(double)divide; 
 
-(double)square; 
 
/**计算器的简单实现*/ 
-(double)counter:(char)calcultor; 
 
 
//-(void)initWithNumber1:(double)number1 andInitWithNumber2:(double)number2 andInitWithCalcultorOperator:(char)calcultor; 
 
@end 

#import "Calcultor.h" 
 
@implementation Calcultor 
-(id)init 
{ 
    if(self = [super init]) 
    { 
        _result = 0.0; 
    } 
    return self; 
} 
/**加法*/ 
- (double)add 
{ 
    return (_number1 + _number2); 
    //NSLog(@"%.1lf",_result); 
} 
 
/**减法*/ 
- (double)subtract 
{ 
    return _number1 - _number2; 
    //NSLog(@"%.1lf",_result); 
} 
 
/**乘法*/ 
- (double)multiply 
{ 
    return _number1 * _number2; 
    //NSLog(@"%.1lf",_result); 
} 
 
/**除法*/ 
- (double)divide 
 
{ 
    return _number1 / _number2; 
    //NSLog(@"%.1lf",_result); 
} 
 
 
-(double)square 
{ 
    return _number1 * _number1; 
} 
 
 
/**计算器的简单实现*/ 
-(double)counter:(char)calcultor 
{ 
    //char calcultor;//局部变量 
     
        switch (calcultor) { 
            case '+': 
                _result = [self add]; 
                break; 
            case '-': 
                _result = [self subtract]; 
                break; 
            case '*': 
                _result = [self multiply]; 
                break; 
            case '/': 
                _result = [self divide]; 
                break; 
            default: 
               break; 
        } 
    return _result; 
} 
 
 
//- (void)initWithNumber1:(double)number1 andInitWithNumber2:(double)number2 andInitWithCalcultorOperator:(char)calcultor 
//{ 
//    _number1 = number1; 
//    _number2 = number2; 
//    _calcultorOperator = calcultor; 
//} 
 
 
/**!!!调试用的!!!*/ 
-(NSString *)description 
{ 
    return [NSString stringWithFormat:@"操作数1:%.1lf 操作数2:%.1lf 结果 : %.1lf 操作符 : %c",_number1,_number2,_result,_calcultorOperator]; 
} 
@end 


发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

iOS数据持久化详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。