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

 //
// ViewController.m
// 计算器
//
// Created by ma c on 15/8/25.
// Copyright (c) 2015年 bjsxt. All rights reserved.
// #import "ViewController.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *ResultField;
@property(nonatomic,assign)CGFloat temp;
@property(nonatomic,assign)CGFloat num1;
@property(nonatomic,assign)CGFloat num2;
@property(nonatomic,strong)NSMutableString *string;
@property(nonatomic,strong)NSArray *arr;
@end
@implementation ViewController
- (IBAction)buttonClear:(UIButton *)sender
{
[_string setString:@""]; //重新开始计算,文本框置空
self.ResultField.text = _string;
}
- (IBAction)button7:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button8:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button9:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button4:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button5:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button6:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button1:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button3:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button2:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
}
- (IBAction)button0:(UIButton *)sender
{
[_string appendString:@""];
self.ResultField.text = _string;
} - (IBAction)buttonPoint:(UIButton *)sender
{
[_string appendString:@"."];
self.ResultField.text = _string;
} //触发算数运算事件
- (IBAction)buttonDiv:(UIButton *)sender
{
[_string appendString:@"/"];
self.ResultField.text = _string;
} - (IBAction)buttonMul:(UIButton *)sender
{
[_string appendString:@"*"];
self.ResultField.text = _string;
} - (IBAction)buttonSub:(UIButton *)sender
{
[_string appendString:@"-"];
self.ResultField.text = _string;
} - (IBAction)buttonAdd:(UIButton *)sender
{
[_string appendString:@"+"];
self.ResultField.text = _string;
} //做结果运算操作
- (IBAction)buttonEqual:(UIButton *)sender
{ for(int i=; i<[_string length]; i++)
{ self.arr = [[NSArray alloc]init]; //只输入一个数,不做运算
if([_string length] == )
{
self.temp = [_string doubleValue];
break;
} //做加法运算
if([_string characterAtIndex:i] == '+')
{
self.arr = [_string componentsSeparatedByString:@"+"]; self.num1 = [self.arr[] doubleValue];
self.num2 = [self.arr[] doubleValue];
self.temp = self.num1 + self.num2;
break;
} //做减法运算
if([_string characterAtIndex:(i+)] == '-')
{
self.arr = [_string componentsSeparatedByString:@"-"]; if([self.arr count] == )
{
self.num1 = [self.arr[] doubleValue];
self.num2 = [self.arr[] doubleValue];
self.temp = self.num1 - self.num2;
}
else
{
self.num1 = [self.arr[] doubleValue];
self.num2 = [self.arr[] doubleValue];
self.temp = -(self.num1 + self.num2);
}
break;
} //做除法运算
if([_string characterAtIndex:i] == '/')
{
self.arr = [_string componentsSeparatedByString:@"/"];
self.num1 = [self.arr[] doubleValue];
self.num2 = [self.arr[] doubleValue];
self.temp = self.num1 / self.num2;
break;
} //做乘法运算
if([_string characterAtIndex:i] == '*')
{
self.arr = [_string componentsSeparatedByString:@"*"];
self.num1 = [self.arr[] doubleValue];
self.num2 = [self.arr[] doubleValue];
self.temp = self.num1 * self.num2;
break;
} } //输出结果
[_string setString:[NSString stringWithFormat:@"%.2f",self.temp]];
self.ResultField.text = _string;
} - (void)viewDidLoad {
[super viewDidLoad]; //创建一个可变的字符串
_string = [NSMutableString stringWithCapacity:];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

iOS:制作一个简易的计算器的更多相关文章

  1. 用XMLHttpRequest制作一个简易ajax

    概述 jquery退出历史舞台之后,我们怎么来发送ajax请求呢?可以用相关的库,也可以自己制作一个简易的ajax. 需要说明的是,我们使用的是XMLHttpRequest 2,它几乎兼容所有主流浏览 ...

  2. 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具

    查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...

  3. iOS学习——制作一个小型加法计算器

    一.项目要求:制作一个加法计算器.在第1个和第2个文本框中输入两个整数,然后点击“计算”按钮,可将计算结果显示在第3个文本框中. 二.开发步骤: 1.搭建UI界面 2.监听按钮的点击事件 3.获取文本 ...

  4. 使用Windows Form 制作一个简易资源管理器

    自制一个简易资源管理器----TreeView控件 第一步.新建project,进行基本设置:(Set as StartUp Project:View/Toolbox/TreeView) 第二步.开始 ...

  5. Opencv探索之路(二十):制作一个简易手动图像配准工具

    近日在做基于sift特征点的图像配准时遇到匹配失败的情况,失败的原因在于两幅图像分辨率相差有点大,而且这两幅图是不同时间段的同一场景的图片,所以基于sift点的匹配已经找不到匹配点了.然后老师叫我尝试 ...

  6. 制作一个简易计算器——基于Android Studio实现

    一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calcula ...

  7. 使用qt制作一个简单的计算器

    前言:今天使用qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下. 这里先跟大家说说使用到的函数: 一.槽连接函数 connect(信号发送者,发送的信号,信号接收者,信号接收者的 ...

  8. python 正则的使用 —— 编写一个简易的计算器

    在 Alex 的博客上看到的对正则这一章节作业是编写一个计算器,要求能计算出下面的算式. 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 + ...

  9. 使用jQuery制作一个简易的购物车结算流程

    因为今天下午时候在网上买了东西,在结算界面的时候突发奇想的也想自己动手做一个结算界面,当然了,只是一个最简易的结算界面,有商品数量的加减,有单价和小计,单个多个删除,全选和区县全选等等一些小功能,我在 ...

随机推荐

  1. Tomcat基于MSM+Memcached实现Session共享

    简述 上一篇文章,分别演示了session sticky 和 session cluster来实现会话保持的问题,但是它们缺点都不少,实际中用的很少,所以这篇文章我们还是通过Tomcat来演示一下实际 ...

  2. (转)看懂UML类图

    转自:http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关 ...

  3. Ionic Js十一:模态

    ionicModal 可以遮住用户主界面的内容框. 你可以在你的 index 文件或者是其他文件内嵌入以下代码(里面的代码可以根据你自己的业务场景相应的改变). <script id=" ...

  4. 基于Apollo实现.NET Core微服务统一配置(测试环境-单机)

    一.前言 注:此篇只是为测试环境下的快速入门.后续会给大家带来生产环境下得实战开发. 具体的大家可以去看官方推荐.非常的简单明了.以下介绍引用官方内容: Apollo(阿波罗)是携程框架部门研发的分布 ...

  5. 【基础知识】Dom基础

    [学习日记]Dom基础 1.   内容:使用JavaScript操作Dom进行DHTML开发 2.   目标:能共使用JavaScript操作Dom实现常见的DHTML效果 3.   DHTML= C ...

  6. 移动端meta标签

    现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置,如何阻止双击放大?user-scalable=no <!-- 禁止缩放 --> <meta name=”viewpor ...

  7. MySQL 语句分析

    公司使用的数据库是 MySQL 数据库,我对于 MySQL 的了解仅仅是上学的时候学过PHP略微了解. 我认为,作为一个后端程序员,除了在意功能能不能实现之外, 在实现功能之后,还要去想有没有更好的办 ...

  8. 【DFS好题】BZOJ1999- [Noip2007]Core树网的核(数据加强版)

    NOIP的数据好水,一开始有好几个错结果NOIP数据就水过了?? [题目大意] 求无根树的直径上一段不超过S长的链,使得偏心距最小.具体概念见原题. [思路] 首先明确几个性质: (1)对于树中的任意 ...

  9. 鸟哥的私房菜:Bash shell(一)-Bash shell功能简介

    Bash shell系列里,由变量谈起,先讲到环境变量的功能与修改的问题, 然后会继续提到历史指令的运用.接下来,就会谈一下『数据流重导向』这个重要概念, 最后就是管线命令的利用! 一  Bash s ...

  10. DOM事件绑定方式

    普通事件可以直接绑定 比如document.onmouseover=fn; 或者document.addEventListener("mouseover",fn,flase); a ...