iOS:制作一个简易的计算器

   初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有问题的,不是很完美,可能还有一些bug,再接再厉。

  1 //
  2 //  ViewController.m
  3 //  计算器
  4 //
  5 //  Created by ma c on 15/8/25.
  6 //  Copyright (c) 2015年 bjsxt. All rights reserved.
  7 //
  8 
  9 #import "ViewController.h"
 10 
 11 @interface ViewController ()
 12 @property (weak, nonatomic) IBOutlet UITextField *ResultField;
 13 @property(nonatomic,assign)CGFloat temp;
 14 @property(nonatomic,assign)CGFloat num1;
 15 @property(nonatomic,assign)CGFloat num2;
 16 @property(nonatomic,strong)NSMutableString *string;
 17 @property(nonatomic,strong)NSArray *arr;
 18 @end
 19 @implementation ViewController
 20 - (IBAction)buttonClear:(UIButton *)sender
 21 {
 22     [_string setString:@""];         //重新开始计算,文本框置空
 23     self.ResultField.text = _string;
 24 }
 25 - (IBAction)button7:(UIButton *)sender
 26 {
 27     [_string appendString:@"7"];
 28     self.ResultField.text = _string;
 29 }
 30 - (IBAction)button8:(UIButton *)sender
 31 {
 32     [_string appendString:@"8"];
 33     self.ResultField.text = _string;
 34 }
 35 - (IBAction)button9:(UIButton *)sender
 36 {
 37     [_string appendString:@"9"];
 38     self.ResultField.text = _string;
 39 }
 40 - (IBAction)button4:(UIButton *)sender
 41 {
 42     [_string appendString:@"4"];
 43     self.ResultField.text = _string;
 44 }
 45 - (IBAction)button5:(UIButton *)sender
 46 {
 47     [_string appendString:@"5"];
 48     self.ResultField.text = _string;
 49 }
 50 - (IBAction)button6:(UIButton *)sender
 51 {
 52     [_string appendString:@"6"];
 53     self.ResultField.text = _string;
 54 }
 55 - (IBAction)button1:(UIButton *)sender
 56 {
 57     [_string appendString:@"1"];
 58     self.ResultField.text = _string;
 59 }
 60 - (IBAction)button3:(UIButton *)sender
 61 {
 62     [_string appendString:@"3"];
 63     self.ResultField.text = _string;
 64 }
 65 - (IBAction)button2:(UIButton *)sender
 66 {
 67     [_string appendString:@"2"];
 68     self.ResultField.text = _string;
 69 }
 70 - (IBAction)button0:(UIButton *)sender
 71 {
 72     [_string appendString:@"0"];
 73     self.ResultField.text = _string;
 74 }
 75 
 76 - (IBAction)buttonPoint:(UIButton *)sender
 77 {
 78     [_string appendString:@"."];
 79     self.ResultField.text = _string;
 80 }
 81 
 82 //触发算数运算事件
 83 - (IBAction)buttonDiv:(UIButton *)sender
 84 {
 85     [_string appendString:@"/"];
 86     self.ResultField.text = _string;
 87 }
 88 
 89 - (IBAction)buttonMul:(UIButton *)sender
 90 {
 91     [_string appendString:@"*"];
 92     self.ResultField.text = _string;
 93 }
 94 
 95 - (IBAction)buttonSub:(UIButton *)sender
 96 {
 97     [_string appendString:@"-"];
 98     self.ResultField.text = _string;
 99 }
100 
101 - (IBAction)buttonAdd:(UIButton *)sender
102 {
103     [_string appendString:@"+"];
104     self.ResultField.text = _string;
105 }
106 
107 //做结果运算操作
108 - (IBAction)buttonEqual:(UIButton *)sender
109 {
110 
111     for(int i=0; i<[_string length]; i++)
112     {
113         
114         self.arr = [[NSArray alloc]init];
115         
116         //只输入一个数,不做运算
117         if([_string length] == 1)
118         {
119             self.temp = [_string doubleValue];
120             break;
121         }
122         
123         
124         //做加法运算
125         if([_string characterAtIndex:i] == '+')
126         {
127             self.arr = [_string componentsSeparatedByString:@"+"];
128             
129             self.num1 = [self.arr[0] doubleValue];
130             self.num2 = [self.arr[1] doubleValue];
131             self.temp = self.num1 + self.num2;
132             break;
133         }
134         
135 
136         //做减法运算
137         if([_string characterAtIndex:(i+1)] == '-')
138         {
139             self.arr = [_string componentsSeparatedByString:@"-"];
140            
141             if([self.arr count] == 2)
142             {
143                 self.num1 = [self.arr[0] doubleValue];
144                 self.num2 = [self.arr[1] doubleValue];
145                 self.temp = self.num1 - self.num2;
146             }
147             else
148             {
149                 self.num1 = [self.arr[1] doubleValue];
150                 self.num2 = [self.arr[2] doubleValue];
151                 self.temp = -(self.num1 + self.num2);
152             }
153             break;
154         }
155         
156         
157         //做除法运算
158         if([_string characterAtIndex:i] == '/')
159         {
160             self.arr = [_string componentsSeparatedByString:@"/"];
161             self.num1 = [self.arr[0] doubleValue];
162             self.num2 = [self.arr[1] doubleValue];
163             self.temp = self.num1 / self.num2;
164             break;
165         }
166         
167         //做乘法运算
168         if([_string characterAtIndex:i] == '*')
169         {
170             self.arr = [_string componentsSeparatedByString:@"*"];
171             self.num1 = [self.arr[0] doubleValue];
172             self.num2 = [self.arr[1] doubleValue];
173             self.temp = self.num1 * self.num2;
174             break;
175         }
176         
177     }
178     
179     //输出结果
180     [_string setString:[NSString stringWithFormat:@"%.2f",self.temp]];
181     self.ResultField.text = _string;
182 }
183 
184 - (void)viewDidLoad {
185     [super viewDidLoad];
186 
187     //创建一个可变的字符串
188     _string = [NSMutableString stringWithCapacity:20];
189 }
190 
191 - (void)didReceiveMemoryWarning {
192     [super didReceiveMemoryWarning];
193     // Dispose of any resources that can be recreated.
194 }
195 
196 @end
原文地址:https://www.cnblogs.com/XYQ-208910/p/4761733.html