标签:c style class blog code http
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119 |
// // 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 |
界面
Objective C - 3 - 实现一个计算器,布布扣,bubuko.com
标签:c style class blog code http
原文地址:http://www.cnblogs.com/sskset/p/3758236.html