zoukankan      html  css  js  c++  java
  • Objective C

    代码

    //
    //  CalculatorViewController.m
    //  Calculator
    //
    //  Created by sskset on 5/28/14.
    //  Copyright (c) 2014 shanke. All rights reserved.
    //
    
    #import "CalculatorViewController.h"
    
    @interface CalculatorViewController ()
    @property (weak, nonatomic) IBOutlet UITextField *resultText;
    @property (nonatomic) BOOL isProcessing;
    @property (nonatomic) NSMutableArray *numberStack;
    @property (nonatomic) NSMutableArray *operandStack;
    @end
    
    @implementation CalculatorViewController
    
    -(NSMutableArray *)operandStack
    {
        if(!_operandStack)
            _operandStack = [[NSMutableArray alloc] init];
        return _operandStack;
    }
    
    -(NSMutableArray *)numberStack
    {
        if(!_numberStack)
            _numberStack = [[NSMutableArray alloc] init];
        
        return _numberStack;
    }
    
    - (IBAction)operandPressed:(UIButton *)sender {
        
        if([self isAvailableToCalculate])
        {
            [self doCalculate];
        }
        else
        {
            [self.numberStack addObject:self.resultText.text];
        }
        
        [self.operandStack addObject:sender.titleLabel.text];
        self.isProcessing = NO;
    }
    
    - (IBAction)numberPressed:(UIButton *)sender {
        
        if (self.isProcessing) {
            self.resultText.text =
            [self.resultText.text stringByAppendingString:sender.titleLabel.text];
        }
        else{
            self.resultText.text = sender.titleLabel.text;
            self.isProcessing = YES;
        }
    }
    
    - (IBAction)resetPressed:(id)sender {
        
        self.isProcessing = NO;
        
        [self.numberStack removeAllObjects];
        [self.operandStack removeAllObjects];
        
        self.resultText.text = @"0";
    }
    
    -(void)doCalculate
    {
        NSString *operand = [self.operandStack lastObject];
        
        if(operand)
        {
            NSString *outObject = [self.numberStack lastObject];
            int outputInteger = outObject ? [outObject intValue] : 0;
            [self.numberStack removeLastObject];
            
            int resultInteger = 0;
            
            if ([operand isEqualToString:@"+"])
            {
                resultInteger =  [self.resultText.text intValue] + outputInteger;
            }
            else if ([operand isEqualToString:@"-"])
            {
                resultInteger = outputInteger - [self.resultText.text intValue];
            }
            else if ([operand isEqualToString:@"*"])
            {
                resultInteger = outputInteger * [self.resultText.text intValue];
            }
            else
            {
                resultInteger = [self.resultText.text intValue] == 0 ? 0 : outputInteger / [self.resultText.text intValue];
            }
            
            [self.operandStack removeLastObject];
            
            NSString *resultString = [NSString stringWithFormat:@"%d", resultInteger];
            self.resultText.text = resultString;
            [self.numberStack addObject:resultString];
        }
    }
    
    -(BOOL)isAvailableToCalculate
    {
        return [self.operandStack lastObject] != nil;
    }
    
    - (IBAction)enterPressed:(id)sender
    {
        [self doCalculate];
    }
    
    @end
    

    界面

  • 相关阅读:
    解决前端从url路径上拿到的中文乱码
    仪表盘双层结构图
    element ui 按钮显示
    vue在手机上运行,打包之后显示
    echarts使用遇到的一些问题总结,比如颜色改变,文字位置调整
    微信小程序地图移动到指定的位置
    微信小程序多边形地图显示
    button取消边框
    代码审计小记 (一)
    [root-me](web-client)write up 一个大坑怎么填啊
  • 原文地址:https://www.cnblogs.com/sskset/p/3758236.html
Copyright © 2011-2022 走看看