简易计算器制作

来源:互联网 发布:英语单词软件 编辑:程序博客网 时间:2024/04/28 02:48
@interface EricAppDelegate (){    UIView *_containView;    UILabel *_label;    UIButton *_butt;    NSMutableString *str;}@property(assign,nonatomic)double num1,num2,num3,num4;@end@implementation EricAppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    _containView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];    _containView.backgroundColor = [UIColor orangeColor];    [self.window addSubview:_containView];    [_containView release];    // Override point for customization after application launch.    [self calculator];            self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];    return YES;}//计算器- (void)calculator{    NSArray *arr = [NSArray arrayWithObjects:@"7",@"8", @"9",@"/",@"4",@"5",@"6",@"*",@"1",@"2",@"3",@"-",@".",@"0",@"=",@"+",nil];    str = [[NSMutableString alloc] initWithFormat:@""];    int n = 0;    for (int i = 0; i < 4; i ++) {        for (int j = 0; j < 4; j++){            _butt = [UIButton buttonWithType:UIButtonTypeSystem];            _butt.frame = CGRectMake(3 + j *80, 270 + i *75, 75, 70);            _butt.backgroundColor = [UIColor grayColor];            _butt.layer.cornerRadius = 20;            _butt.titleLabel.font = [UIFont systemFontOfSize:35];            [_butt setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];            [_butt setTitle:arr[n++ ] forState:UIControlStateNormal];            _butt.tag = 100 + n;            [_containView addSubview:_butt];        }    }    //显示窗口    _label = [[UILabel alloc] initWithFrame:CGRectMake(3, 80, 313, 100)];    _label.layer.cornerRadius = 5;    _label.layer.masksToBounds= YES;    _label.textAlignment= NSTextAlignmentRight;    _label.textColor = [UIColor blackColor];    _label.font = [UIFont systemFontOfSize:30];    _label.backgroundColor = [UIColor greenColor];    [_containView addSubview:_label];    [_label release];    //清除按钮    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];    button.frame = CGRectMake(243, 193, 75, 70);    button.backgroundColor = [UIColor grayColor];    button.layer.cornerRadius = 20;    button.titleLabel.font = [UIFont systemFontOfSize:25];    [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];    [button setTitle:@"C" forState:UIControlStateNormal];    [button addTarget:self action:@selector(clear:) forControlEvents:UIControlEventTouchUpInside];    [_containView addSubview:button];    //回删按钮    UIButton *goButton = [UIButton buttonWithType:UIButtonTypeSystem];    goButton.frame = CGRectMake(163, 193, 75, 70);    goButton.backgroundColor = [UIColor grayColor];    goButton.layer.cornerRadius = 20;    goButton.titleLabel.font = [UIFont systemFontOfSize:25];    [goButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];    [goButton setTitle:@"Dele" forState:UIControlStateNormal];    [goButton addTarget:self action:@selector(delete:) forControlEvents:UIControlEventTouchUpInside];    [_containView addSubview:goButton];        //数字按钮    NSArray *arra = [NSArray arrayWithObjects:(UIButton *) [_containView viewWithTag:101],(UIButton *) [_containView viewWithTag:102],(UIButton *) [_containView viewWithTag:103],(UIButton *) [_containView viewWithTag:105],(UIButton *) [_containView viewWithTag:106],(UIButton *) [_containView viewWithTag:107],(UIButton *) [_containView viewWithTag:109],(UIButton *) [_containView viewWithTag:110],(UIButton *) [_containView viewWithTag:111],(UIButton *) [_containView viewWithTag:114], nil];    for (int i = 0; i < 10; i++) {        [arra[i] addTarget:self action:@selector(number:) forControlEvents:UIControlEventTouchUpInside];    }    //运算符按钮    NSArray *array = [NSArray arrayWithObjects:(UIButton *) [_containView viewWithTag:104],(UIButton *) [_containView viewWithTag:108],(UIButton *) [_containView viewWithTag:112],(UIButton *) [_containView viewWithTag:116], nil];    for (int i = 0; i < 4; i++) {        [array[i] addTarget:self action:@selector(operator:) forControlEvents:UIControlEventTouchUpInside];    }  //运算结果    UIButton *but =(UIButton *) [_containView viewWithTag:115];    [but addTarget:self action:@selector(cal:) forControlEvents:UIControlEventTouchUpInside];    self.num1= [str doubleValue];    //点运算    UIButton *butt =(UIButton *) [_containView viewWithTag:113];    [butt addTarget:self action:@selector(number:) forControlEvents:UIControlEventTouchUpInside];    [str setString:@""];}- (void)clear:(UIButton *)clear{       _label.text = @"0";    [str setString:@""];    self.num3=0;}- (void)delete:(UIButton *)del{    if ([str length] !=0) {        [str deleteCharactersInRange:NSMakeRange([str length] - 1, 1)];    }    _label.text = str;}//计算操作-(void)number:(UIButton *)but    {        //保证是符号时在输入数字时隐藏        if ([but.currentTitle hasPrefix:@"+"]||[but.currentTitle hasPrefix:@"-"]||[but.currentTitle hasPrefix:@"*"]||[but.currentTitle hasPrefix:@"/"])//判断是否为运算符        {            _label.text = @" ";           [str setString:@""];//字符串清零        }else{            //判断第一次输入的是否是.  , 若是,则添加个0,            if ([str isEqualToString:@""] &&[but.currentTitle isEqualToString:@"."]) {                [str appendFormat:@"0%@",but.currentTitle];            }else{                [str  appendFormat: @"%@",but.currentTitle];            };        }        _label.text =str;        self.num1 = [str doubleValue];    }- (void)operator:(UIButton *)but{    [str setString:@""];      if ([but.currentTitle hasPrefix:@"+"]){          self.num2 = self.num1;          self.num4 = 1;          }    if ([but.currentTitle hasPrefix:@"-"]){        self.num2 = self.num1;        self.num4 = 2;    }    if ([but.currentTitle hasPrefix:@"*"]){        self.num2 = self.num1;        self.num4 = 3;    }    if ([but.currentTitle hasPrefix:@"/"]){        self.num2 = self.num1;        self.num4 = 4;    }}- (void)cal:(id)sender{    if (self.num4 ==1) {      self.num3=  self.num1 + self.num2;        _label.text = [NSString stringWithFormat:@"%g",self.num3];        self.num1 = self.num3;        [str setString:@""];    }    if (self.num4 ==2) {        self.num3=  self.num2 - self.num1;        _label.text = [NSString stringWithFormat:@"%g",self.num3];        self.num1 = self.num3;        [str setString:@""];    }    if (self.num4 ==3) {        self.num3=  self.num1 * self.num2;        _label.text = [NSString stringWithFormat:@"%g",self.num3];        self.num1 = self.num3;        [str setString:@""];    }    if (self.num4 ==4) {        self.num3=  self.num2 / self.num1;        _label.text = [NSString stringWithFormat:@"%g",self.num3];        self.num1 = self.num3;        [str setString:@""];    }    }

0 0
原创粉丝点击