[课堂实践与项目]IOS只能进行简单的加减乘除的没有优先级的计算器

 

//
//  LCViewController.m
//  calculator
//
//  Created by lichan on 13-12-3.
//  Copyright (c) 2013年 com.lichan. All rights reserved.
//

#import "LCViewController.h"

static int lastKey = -1;

@interface LCViewController ()

@end

@implementation LCViewController


#pragma mark numberButtonPressed method

- (IBAction)buttonPressed:(id)sender  //数字显示连接按钮
{
    
    UIButton *tempButton = (UIButton *)sender;
    
    NSString *tempNumber = [tempButton titleLabel].text;//得到button的title值,以便于在textField显示
     
    [_textField setText:[NSString stringWithFormat:@"%@%@",_textField.text,tempNumber]];  //textfield 上字符串的连接,以便于形成字符串

    self.temp = _textField.text;
    
   // NSLog(@"浮点型:%f",[self.temp floatValue]);
                       
}

- (IBAction)backButtonPressed:(id)sender {
    
    if (self.temp) {
        self.temp = [self.temp substringToIndex:self.temp.length-1];
        
        [_textField setText:self.temp];
        NSLog(@"new Temp:%@",self.temp);
    }
   
}



- (IBAction)opreatePressed:(id)sender  //操作符按钮
{
   [_textField setText:@""];
    if (!self.result)
    {
        self.result = self.temp;
        self.temp = nil;
    }
    
    self.num1 = [self.result floatValue];
    self.num2 = [self.temp floatValue];
    NSInteger opreateTag = [sender tag];
      switch (opreateTag) {
        case 1:
        {
            lastKey = 1;
            [self plusOperatorSymbol];
            break;
        }
        case 2:
        {
            lastKey = 2;
            [self subOperatorSymbol];
            break;
        }
        case 3:
        {
           
            lastKey = 3;
            [self multiOperatorSymbol];
            break;
        }
        case 4:
        {
            lastKey = 4;
            [self divOperatorSymbol];
            break;
        }
        case 5:
        {
            
            if (lastKey == 1)
            {
                [self plusOperatorSymbol];
             
            }else if(lastKey == 2)
            {
                [self subOperatorSymbol];
            
            }else if(lastKey == 3)
            {
                [self multiOperatorSymbol];

            }else if(lastKey == 4)
            {
                lastKey = 4;
                
                [self divOperatorSymbol];
            }

            
       [_textField setText:self.result];
              break;
        }
 
        case 6:
        {
            self.result = nil;
            self.temp = nil;
            
               break;

        }
            
        default:
            break;
     }
    
}


#pragma mark 操作符号 method

- (void)plusOperatorSymbol
{

    
    if (self.temp != nil)
    {
        float resultNum = _num1 + _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }
    

}

- (void)subOperatorSymbol
{

    if (self.temp != nil)
    {
        float resultNum = _num1 - _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }

}

- (void)multiOperatorSymbol
{

    if (self.temp != nil)
    {
        float resultNum = _num1 * _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }
    
}

- (void)divOperatorSymbol
{

    if (self.temp != nil)
    {
        float resultNum = _num1 / _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }
    
}

#pragma mark 系统method

- (void)dealloc
{
    [_textField release];
    
   [_result release];
   [_numberString release];
   [_temp release];
    
    
    [super dealloc];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    

	// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


 


最简单的优先级

.h

 

//
//  LCViewController.h
//  calculator
//
//  Created by lichan on 13-12-3.
//  Copyright (c) 2013年 com.lichan. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface LCViewController : UIViewController
@property (retain, nonatomic) IBOutlet UITextField *textField;

@property (copy,nonatomic)NSString *numberString;

@property (copy,nonatomic)NSString *result;

@property (copy,nonatomic)NSString *temp;

@property (nonatomic) float num1;
@property (nonatomic) float num2;

- (IBAction)buttonPressed:(id)sender;


- (IBAction)backButtonPressed:(id)sender;


-(IBAction)opreatePressed:(id)sender;

@end


.m文件

 

 

//
//  LCViewController.m
//  calculator
//
//  Created by lichan on 13-12-3.
//  Copyright (c) 2013年 com.lichan. All rights reserved.
//

#import "LCViewController.h"

static int lastKey = -1;

@interface LCViewController ()

@end

@implementation LCViewController


#pragma mark numberButtonPressed method

- (IBAction)buttonPressed:(id)sender  //数字显示连接按钮
{
    
    UIButton *tempButton = (UIButton *)sender;
    
    NSString *tempNumber = [tempButton titleLabel].text;//得到button的title值,以便于在textField显示
     
    [_textField setText:[NSString stringWithFormat:@"%@%@",_textField.text,tempNumber]];  //textfield 上字符串的连接,以便于形成字符串

    self.temp = _textField.text;
    
   // NSLog(@"浮点型:%f",[self.temp floatValue]);
                       
}

- (IBAction)backButtonPressed:(id)sender {
    
    if (self.temp) {
        self.temp = [self.temp substringToIndex:self.temp.length-1];
        
        [_textField setText:self.temp];
        NSLog(@"new Temp:%@",self.temp);
    }
   
}



- (IBAction)opreatePressed:(id)sender  //操作符按钮
{
   [_textField setText:@""];
    if (!self.result)
    {
        self.result = self.temp;
        self.temp = nil;
    }
    
    self.num1 = [self.result floatValue];
    self.num2 = [self.temp floatValue];
    NSInteger opreateTag = [sender tag];
      switch (opreateTag) {
        case 1:
        {
            lastKey = 1;
            [self plusOperatorSymbol];
            break;
        }
        case 2:
        {
            lastKey = 2;
            [self subOperatorSymbol];
            break;
        }
        case 3:
        {
           
            lastKey = 3;
            [self multiOperatorSymbol];
            break;
        }
        case 4:
        {
            lastKey = 4;
            [self divOperatorSymbol];
            break;
        }
        case 5:
        {
            
            if (lastKey == 1)
            {
                [self plusOperatorSymbol];
             
            }else if(lastKey == 2)
            {
                [self subOperatorSymbol];
            
            }else if(lastKey == 3)
            {
                [self multiOperatorSymbol];

            }else if(lastKey == 4)
            {
                lastKey = 4;
                
                [self divOperatorSymbol];
            }

            
       [_textField setText:self.result];
              break;
        }
 
        case 6:
        {
            self.result = nil;
            self.temp = nil;
            
               break;

        }
            
        default:
            break;
     }
    
}


#pragma mark 操作符号 method

- (void)plusOperatorSymbol
{

    
    if (self.temp != nil)
    {
        float resultNum = _num1 + _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }
    

}

- (void)subOperatorSymbol
{

    if (self.temp != nil)
    {
        float resultNum = _num1 - _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }

}

- (void)multiOperatorSymbol
{

    if (self.temp != nil)
    {
        float resultNum = _num1 * _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }
    
}

- (void)divOperatorSymbol
{

    if (self.temp != nil)
    {
        float resultNum = _num1 / _num2;
        
        self.result  = [NSString stringWithFormat:@"%f",resultNum];
        
        self.temp = nil;
    }
    
}

#pragma mark 系统method

- (void)dealloc
{
    [_textField release];
    
   [_result release];
   [_numberString release];
   [_temp release];
    
    
    [super dealloc];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    

	// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


 

 

posted on 2013-12-05 10:53  love so much  阅读(374)  评论(0编辑  收藏  举报

导航