OC实现简单的计算器

<p>//注:只能实现简单的加减乘除,不可以连续运算</p><p>#define kButton_Color [UIColor cyanColor]//定义键的背景颜色宏,便于更改颜色</p>@interface YJAppDelegate ()
{
    UIView *_containter;
    UIButton *_numberButton;
    UILabel *_label;
    CGFloat num1,operators ,result,digital;
    NSMutableString *_string;
    NSString *_symbolText;
}
@end<pre name="code" class="objc">_containter = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
    _containter.backgroundColor = [UIColor grayColor];
    [self.window addSubview:_containter];
    [_containter release];
    //设置数字
    NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil];
    int n = 0;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            _numberButton = [UIButton buttonWithType:UIButtonTypeSystem];
            _numberButton.frame = CGRectMake( (j * 80), 180 + (i * 80), 78, 78);
            [_numberButton setTitle:[array objectAtIndex:n++] forState:UIControlStateNormal];
            _numberButton.backgroundColor = kButton_Color;
            _numberButton.titleLabel.font = [UIFont systemFontOfSize:22];
            _numberButton.layer.cornerRadius = 30;
            [_numberButton addTarget:self action:@selector(number:) forControlEvents:UIControlEventTouchUpInside];
            [_containter addSubview:_numberButton];
        }
    }
    //设置返回键
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeSystem];
    backButton.frame = CGRectMake(240, 180, 78, 78);
    [backButton setTitle:@"Back" forState:UIControlStateNormal];
    backButton.backgroundColor = kButton_Color;
    backButton.titleLabel.font = [UIFont systemFontOfSize:22];
    backButton.layer.cornerRadius = 30;
    [backButton addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside
     ];
    [_containter addSubview:backButton];
    //设置符号键
    NSArray *array2 = [NSArray arrayWithObjects:@"+",@"-",@"*",@"/", nil];
    for (int i = 0; i < 4; i++) {
        UIButton *symbolButton = [UIButton buttonWithType:UIButtonTypeSystem];
        symbolButton.frame = CGRectMake(240, 260+ (i * 80), 78, 78);
        [symbolButton setTitle:[array2 objectAtIndex:i] forState:UIControlStateNormal];
        symbolButton.backgroundColor = kButton_Color;
        symbolButton.titleLabel.font = [UIFont systemFontOfSize:22];
        symbolButton.layer.cornerRadius = 30;
        [symbolButton addTarget:self action:@selector(symbol:) forControlEvents:UIControlEventTouchUpInside];
        [_containter addSubview:symbolButton];
    }
    //设置0和.
    NSArray *array3 = [NSArray arrayWithObjects:@"0",@".", nil];
    for (int i = 0; i < 2; i++) {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
        button.frame = CGRectMake( 80 + (i * 80), 420, 78, 78);
        button.backgroundColor = kButton_Color;
        button.titleLabel.font = [UIFont systemFontOfSize:22];
        button.layer.cornerRadius = 30;
        [button setTitle:[array3 objectAtIndex:i] forState:UIControlStateNormal];
        [button addTarget:self action:@selector(button:) forControlEvents:UIControlEventTouchUpInside];
        [_containter addSubview:button];
    }
    //设置归零键
    UIButton *acButton = [UIButton buttonWithType:UIButtonTypeSystem];
    acButton.frame = CGRectMake(0, 420, 78, 78);
    acButton.backgroundColor = kButton_Color;
    acButton.layer.cornerRadius = 30;
    acButton.titleLabel.font = [UIFont systemFontOfSize:22];
    [acButton setTitle:@"AC" forState:UIControlStateNormal];
    [acButton addTarget:self action:@selector(ac:) forControlEvents:UIControlEventTouchUpInside];
    [_containter addSubview:acButton];
    //设置等号键
    UIButton *equalButton = [UIButton buttonWithType:UIButtonTypeSystem];
    equalButton.frame = CGRectMake(0, 500, 240, 68);
    equalButton.backgroundColor = kButton_Color;
    equalButton.titleLabel.font = [UIFont systemFontOfSize:22];
    equalButton.layer.cornerRadius = 30;
    [equalButton setTitle:@"=" forState:UIControlStateNormal];
    [equalButton addTarget:self action:@selector(equal:) forControlEvents:UIControlEventTouchUpInside];
    [_containter addSubview:equalButton];
    //设置显示窗口
    _label = [[UILabel alloc]initWithFrame:CGRectMake(10, 80, 300, 60)];
    _label.backgroundColor = [UIColor whiteColor];
    _label.textColor = [UIColor blueColor];
    _label.layer.cornerRadius = 3;

    _label.textAlignment = NSTextAlignmentLeft;
    _label.font = [UIFont systemFontOfSize:20];
    [_containter addSubview:_label];
    [_label release];
    //设置显示的文字为字符串
    _string = [[NSMutableString alloc ]init];
//配置数字键触发
- (void)number:(UIButton *)number
{
    [_string appendString:[number currentTitle]];
    _label.text = [NSString stringWithString:_string];
    num1 = [_label.text doubleValue];

}
//配置0和.的触发
- (void)button:(UIButton *)button
{
    [_string appendString:[button currentTitle]];
    _label.text = [NSString stringWithString:_string];
    num1 = [_label.text doubleValue];

}
//配置运算符键的触发
- (void)symbol:(UIButton *)symbol
{

    [_string setString:@""];
    [_string appendString:[symbol currentTitle]];
    _label.text = [NSString stringWithString:_string];

     if ([_string hasPrefix:@"+"]) {
         digital = num1;//存储第一次输入的数字
         operators = 1;//存储输入的运算符
         [_string setString:@""];//输入运算符后将界面清空
    } else if ([_string hasPrefix:@"-"]) {
        digital = num1;
        operators = 2;
//        [_string setString:@""];
    } else if ([_string hasPrefix:@"*"]) {
        digital = num1;
        operators = 3;
        [_string setString:@""];
    } else if ([_string hasSuffix:@"/"]) {
        digital = num1;
        operators = 4;
        [_string setString:@""];
    }

}
//配置等号键的触发
- (void)equal:(UIButton *)equal
{
    if (operators == 1) {
        result = digital + [_label.text doubleValue];//[_label.text doubleValue]为第二次输入的数字
        _label.text = [NSString stringWithFormat:@"%g",result];//显示结果
        [_string setString:@""];//将结果清空
    } else if (operators == 2) {
        result = digital - ( -[_label.text doubleValue] );
        _label.text = [NSString stringWithFormat:@"%g",result];
         [_string setString:@""];
    } else if (operators == 3) {
        result = digital * [_label.text doubleValue];
        _label.text = [NSString stringWithFormat:@"%g",result];
         [_string setString:@""];
    }  else if (operators == 4) {
        result = digital / [_label.text doubleValue];
        _label.text = [NSString stringWithFormat:@"%g",result];
         [_string setString:@""];
    }
}
//配置归零键的触发
- (void)ac:(UIButton *)ac
{
    [_string setString:@""];
    result = 0;
    operators = 0;
    _label.text = @"0";
}
//配置返回键的触发
- (void)back:(UIButton *)back
{
   if (![_label.text isEqual:@""])
   {
       [_string deleteCharactersInRange:NSMakeRange([_string length] - 1, 1)];//删除最后一个字符
       _label.text = [NSString stringWithString:_string];//显示删除了的字符串
       num1 = [_label.text floatValue];//将删除了的数字接收
   }

}

OC实现简单的计算器

时间: 2024-10-02 20:37:50

OC实现简单的计算器的相关文章

IOS 开发笔记-基础 UI(1)-简单的计算器

(1)UI是App的根基:一个App应该是先有UI界面,然后在UI的基础上增加实用功能 (2)UI相对简单易学:UI普遍是学习过程中最简单的一块,能快速拥有成就感和学习兴趣 (3)UI至关重要:开发中的绝大部分时间都在处理UI 谨记一条IOS软件开发定律:万物皆对象,UI界面上的每一个元素都是一个对象 IOS,android 软件开发过程 UIKit框架是跟UI有关系的,标签,文本,按钮,进度条,开关等控件,都是封装在UIKit框架内部的,UIKit框架中提供了丰富多彩的可视化组件元素,利用UI

JS实现一个简单的计算器

使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除.效果如上: 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择框的值. 提示:document.getElementById( id名 ).value 获取或设置 id名的值. 第三步: 获取通过下拉框来选择的值来改变加减乘除的运算法则. 提示:使用switch判断运算法则. 第四步:  通过 = 按钮来调用创建的函数,得到结果. 注意: 使用parseInt

留念 C语言第一课简单的计算器制作

学C语言这么久了.  /* 留念 C语言第一课简单的计算器制作 */ #include<stdio.h>  #include<stdlib.h> #include<conio.h>void displayMenu();void add();void sub();void multiply();void divide();void yushu();void jiecheng();void leijia();void jiechengleijia();int main(in

最简单的计算器脚本

看过老男孩的视频,感触颇深啊,老师的思想真不是一般人可以想到的,来看看老男孩老师的超简单的计算器脚本吧 #!/bin/sh echo $(($1)) 大家都知道$(())中间小括号里面的内容可以被外面括号当作运算来输出,但是知道以上的方式的人有多少呢??? 脚本应用 [[email protected] scripts]# cat 1.sh  #!/bin/sh echo $(($1)) [[email protected] scripts]# sh 1.sh 10*10 100 [[email

利用树莓派实现简单的计算器

在实验板上实现一个简单的计算器,要求在实验板的命令行运行程序,输入两个100以内的数字以及运算符 (+,-,*,/),然后计算结果并在数码管上显示计算结果. 电路设计如下: 实物连接: 代码如下: #include <wiringPi.h> #include <stdio.h> #include <stdlib.h> #define DIGIT1 9 #define DIGIT2 13 #define DIGIT3 12 #define DIGIT4 8 #define

VS2012中使用MFC制作简单的计算器

用MFC来制作一个简单的计算器,来加深对MFC学习的理解,这个计算器是建立在对话框的基础上,下面来简单介绍下如何制作属于你自己的计算器 1.首先,点击VS2012,启动VS软件,然后建立如下图所示的应用程序,在图的下面输入项目名 2.建立基于对话框的标准程序,如下图所示,其余设置采用系统设置,点击完成 3.如下图,软件会生成下面的对话框,还有相应的库,代码,资源文件等 4.对上面的对话框进行编辑,如下图中所示,最后编辑的样子如下,其中1,5,6是Edit 控件,2,7是静态控件,3是buttio

教学项目之-通过Python实现简单的计算器

教学项目之-通过Python实现简单的计算器 计算器开发需求 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2

使用JS完成一个简单的计算器功能

使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElementById("id").value = 1: 取值:var = document.getElementById("id").value: 任务 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择框的值. 提示:document.getElement

Swift之旅:1.概述-用Swift实现一个简单的计算器

学习所用到的资源: 斯坦福大学公开课:iOS 8开发 网易空开课地址链接:斯坦福大学公开课:IOS8开发 github上字幕链接:字幕 百度网盘资源下载链接:百度网盘 1.详解IOS编程的四个层 ①cocoa touch层 这是我们最长用到的层,里面最长用到的当然是最基础的控件 ②媒体层(Media) ③核心服务层 ④核心操作系统层 2.新建一个Swift的IOS工程 ①打开Xcode,按照图示新建一个工程 ②选择Application 然后 单击Sigle View Application.