计算器的代码实现

-(void)viewDidLoad

{

//初始化字符串

self.num1 = [[NSMutableString alloc]init];

self.num2 = [[NSMutableString alloc]init];

self.tempStr = [[NSMutableString alloc]init];

}

//监听数字按钮0-9和点,点的tag为10

//判断输入数字前有几个0,只取一个零,小数点只取一个

-(IBAction)numbers:(id)sender

{

//处理0的问题

//以零开头,下次输入的非0,则清空0

//如果以0.开头,则不清空

if ([self.tempStr hasPrefix:@"0"] && [sender tag] > 0 && [sender tag] <10 && ![self.tempStr hasPrefix:@"0."])

{

self.tempStr = [NSMutableString stringWithString:@""];

}

else if ([self.tempStr hasPrefix:@"0"] && [sender tag] == 0 && ![self.tempStr hasPrefix:@"0."])

{

//如果是以0开头,但是不是以0.开头,则直接返回

return;

}

//处理小数点的问题

//如果小数点是第一输入的数字

if ([sender tag] == 10 && self.tempStr.length == 0)

{

self.tempStr = [NSMutableString stringWithString:@"0"];

}

//每输入一次,拼接一次字符串

if([sender tag] == 10 )//取小数点

{

//小数点只允许输入一次

//遍历字符串tempStr,如果有小数点,则直接return

for (int i = 0; i < self.tempStr.length ; i++)

{

char c = [self.tempStr characterAtIndex:i];

if (c == ‘.‘)

{

return;

}

}

[self.tempStr appendString:@"."];

}

else

{

[self.tempStr appendFormat:@"%ld",[sender tag]];

}

_show.text = self.tempStr;

}

//删除按钮

-(IBAction)deleteNums:(id)sender

{

if (_show.text.length == 1)//删除显示屏中所有的数字

{

_show.text = @"0";

//清空tempStr

self.tempStr = [NSMutableString stringWithString:@""];

return;

}

//将显示屏中的现有数字赋值给字符串

//    NSMutableString *str = [[NSMutableString alloc]init];

self.tempStr =[NSMutableString stringWithFormat:@"%@", _show.text] ;

[self.tempStr deleteCharactersInRange:NSMakeRange(self.tempStr.length-1, 1)];

_show.text = self.tempStr;

}

//监听加减乘除 calculate "=" 11    "+" 12      "-" 13    "*" 14    "/" 15  正负为16  %为17

-(IBAction)calculate:(id)sender

{

//清空tempStr

self.tempStr = [NSMutableString stringWithString:@""];

if(0 == _count)//如果是第一次输入

{

_cal = [NSNumber numberWithLong:[sender tag]];

self.num1 = [NSMutableString stringWithFormat:@"%@",_show.text];

}

else//不是第一次输入,则计算

{

self.num2 = [NSMutableString stringWithFormat:@"%@", _show.text];

int calculate = [_cal intValue];

switch (calculate) {

case 12://将加后的结果显示

_show.text =[NSString stringWithFormat:@"%.2f",([self.num1 doubleValue] + [self.num2 intValue])];

break;

case 13://将减后的结果显示

_show.text =[NSString stringWithFormat:@"%.2f",([self.num1 doubleValue] - [self.num2 intValue])];

break;

case 14://将乘后的结果显示

_show.text =[NSString stringWithFormat:@"%.2f",([self.num1 doubleValue] * [self.num2 intValue])];

break;

case 15://将除后的结果显示

_show.text =[NSString stringWithFormat:@"%.2f",([self.num1 doubleValue] / [self.num2 intValue])];

break;

default:

break;

}

self.num1 = [NSMutableString stringWithFormat:@"%@", _show.text];

_cal = [NSNumber numberWithLong:[sender tag]];

}

_count = @1;

if ([sender tag] == 16 || [sender tag] == 17)//单目运算正负和%

{

switch ([sender tag]) {

case 16://将乘负后的结果显示

_show.text =[NSString stringWithFormat:@"%.2f",([self.num1 doubleValue] *(-1))];

break;

case 17://将取百分后的结果显示

_show.text =[NSString stringWithFormat:@"%.2f",([self.num1 doubleValue] / 100)];

break;

default:

break;

}

self.num1 = [NSMutableString stringWithFormat:@"%@", _show.text];

}

}

时间: 2024-08-12 10:02:03

计算器的代码实现的相关文章

Javascript 实现简单计算器实例代码

Javascript 实现简单计算器实例代码 这篇文章主要介绍了Javascript 实现简单计算器实例代码的相关资料,需要的朋友可以参考下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

初学者如何做一个简单的计算器,代码分享

先新建一个类 startCalculator 声明如下 #import <Foundation/Foundation.h> @interface StartCalculator : NSObject //声明两个要计算的变量 @property float opValue1; @property float opValue2; //声明一个运算符 @property char op; //普通方法 //- (float) gzyWorkAdd; // //- (float) gzyWorkSu

计算器界面代码重构

计算器界面代码重构什么是软件开发过程中的重构?重构(Refactoring)——以改善代码质量为目的代码重写 使其软件的设计和架构更加合理 提高软件的扩展性和维护性 代码实现与代码重构不同——代码实现 按照设计编程实现,重心在于功能实现——代码重构 以提高代码质量为目的软件架构设计 区别: 代码实现时不考虑架构的好坏,只考虑功能的实现 代码重构时不能影响已实现的功能,只考虑架构的改善 QCalculatorUI.h #ifndef _QCALCULATORUI_H_ #define _QCALC

python之路-利用索引切片功能做一个简易的两个未知数的加法计算器,代码如下:

python之路-利用索引切片功能做一个简易的两个未知数的加法计算器,代码如下: #content = input('请输入内容:'),如用户输入:5 +9或 5 + 9 等,然后进行分割再进行计算. content = input('>>>').strip() #content 等于所输入的内容,strip:删除字符串左右两边的空格. index = content.find('+') ''' content内容中的两边的空格都删除了,但中间还有,现在我们只需要定位已知内容是加法,两边

自己写的计算器(加减乘除)代码

首先是Calculator计算器类 package test; public class Calculator { public int addition(int number1, int number2) { return number1+number2; } public int subtraction(int number1, int number2) { return number1-number2; } public int multiplication(int number1, in

第九课、计算器界面代码重构

一.重构的概念 1.重构是以改善代码质量为目的代码重写 (1).使其软件的设计和架构更加合理 (2).提高软件的扩展性和维护性 2.代码实现和代码重构的不同 (1).代码实现:按照设计编程实现,重在实现功能 (2).代码重构:以提高代码质量为目的软件架构优化 (3).区别 A.代码实现时不考虑架构的好坏,只考虑功能的实现 B.代码重构时不影响已实现的功能,只考虑架构的改善 3.软件开发的过程 (1).从工程的角度对软件开发中的活动进行定义和管理 4.什么样的代码需要重构 (1).当发现项目中重复

Java实现GUI计算器【代码】

这几天用java写了一个计算器程序,开始写的时候原本只是想实现一下GUI(这个是直接读三个字母还是什么"固椅"的发音)界面,熟悉一下Java GUI 编程,为Java期末大作业练练手,本以为代码不会很长,结果写完下来发现到了惊人的千行数量级,我分析了一下,主要是在实现监听器的时候花了很大篇幅,主体程序应该会短不少.整个程序分为三个.java文件,分别为 Calculator.java EvaluateExpression.java Arith.java ,程序已放到Github上去了(

Python实现的复杂的计算器的代码

用Python实现复杂的计算器,可以按照"()".乘除.加减的优先级进行混合运算.主旨是对正则表达式进行学习. 设计思路: 1.在计算式中搜索最后一个"(",再搜索和它匹配的")",截取两个括号间的表达式cul. 2.乘除的优先级高,循环搜索cul内的乘除号,进行计算后进行加减计算,得到结果ans. 3.用ans替换"(cul)",重新搜索括号,知道将输入的公式简化成没有括号的四则运算. 4.对最后的四则运算计算结果.流程图如

关于栈实现综合计算器的代码实现和讲解

1.先思考下面的表达式怎么实现 先思考下面的表达式如何计算,虽然可以直接计算,但是怎么实现的呢? 请输入一个表达式 计算式:[7*2*2-5+1-5+3-3] 我们可以用栈来实现,怎么实现?先看一个复杂的实现方式:中缀表达式实现 2.什么是中缀表达式? 中缀表达式就是人们生活中的计算方法,比如上面的表达式,我们怎么算?7*2*2-5+1-5+3-3,在计算机中也是这样,我们先看如何实现它 3.中缀表达式计算器代码实现和讲解 3.1先定义一个栈(自定义) //先创建一个栈,直接使用前面创建好 //

简易计算器(代码+封装+策略模式)

具体设计思路:1.先创建一个Windows窗体.2.添加所需控件,修改相应的属性值.3.对控件编写代码,使之实现相应的功能.4.设计出一个四则运算雏形后再根据需求完善代码.5.进行测试分析.6.对程序进行PSP耗时分析. 运行结果: 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Sys