初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有问题的,不是很完美,可能还有一些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. Java学习笔记之:Struts2.0 环境搭建

    一.介绍 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. 二 ...

  2. 002 使用Appender扩展logger框架

    这个地方,在看公司的源代码的时候,写的知识点: 现在再看,竟然不是太懂,重新写一份新的文档,外加示例说明. 一:说明 1.log4j 环境的三个主要组件: logger(日志记录器):控制要启用或禁用 ...

  3. win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境

    win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...

  4. 再议js的传递和深复制

    病理 基本类型的传递就是按值传递,比如说 var a = 1; var b = a; b = 3; console.log(a,b);//1,3 很明显,a的值并未因为b的值改变而变化,这是因为a只是 ...

  5. Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记

    涉及关键词:requests库 requests.post方法 cookies登陆 version 1.5(附录):使用post方法登陆豆瓣,成功! 缺点:无法获得登陆成功后的cookie,要使用js ...

  6. 重装Win7后找回Ubuntu启动项并在Ubuntu中修复引导

    1. 输入$ sudo fdisk -l 查看磁盘信息,选择Linux的磁盘,如sda10 2. 输入$ sudo -i(此步用于得到root权限,方便以下操作.) 3. 输入$ mkdir /med ...

  7. 喜大普奔!Django官方文档终于出中文版了

    喜大普奔!Django官方文档终于出中文版了 文章来源:企鹅号 - Crossin的编程教室 昨天经 Sur 同学告知才发现,Django 官方文档居然支持中文了! 之所以让我觉得惊喜与意外,是因为: ...

  8. JAVAEE——宜立方商城10:使用freemarker实现网页静态化、ActiveMq同步生成静态网页、Sso单点登录系统分析

    1. 学习计划 1.使用freemarker实现网页静态化 2.ActiveMq同步生成静态网页 2. 网页静态化 可以使用Freemarker实现网页静态化. 2.1. 什么是freemarker ...

  9. nc工具学习

    0x00.命令详解 基本使用 想要连接到某处:nc  [-options] ip port 绑定端口等待连接:nc -l -p port ip 参数: -e prog 程序重定向,一旦连接,就执行 [ ...

  10. .NET Core改造工程直播

    [背景] 新项目需要跨平台,原来积累的.NET类库需要改造为.NET Core. [直播] 新增加的项目不支持排除文件 不支持定义条件编译常量,虽然在项目中能使用#if语法,但无地方定义DefineC ...