zoukankan      html  css  js  c++  java
  • [课堂实践与项目]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
    


  • 相关阅读:
    jstack使用教程
    频繁fullgc排查
    ubuntu添加ubuntu make
    Spring属性编辑器详解
    mysql 查看触发器,删除触发器
    mongodb启动不了:提示错误信息为 child process failed, exited with error number 100
    RedHat7 防火墙设置以及端口设置
    linux 设置静态IP方法
    linux 安装mongo
    mongo 介绍
  • 原文地址:https://www.cnblogs.com/riasky/p/3459054.html
Copyright © 2011-2022 走看看