oc带顺序连算不带优先级计算器(作为备忘,完成度:95%)

OC 计算器(初级) @interface JXGAppDelegate () {     UILabel *_label;     NSMutableString *_string;     CGFloat _firstNumber;     CGFloat _secondNumber;     CGFloat _tempNumber;     CGFloat _result; } 阅读详情

#import "ViewController.h"


@interface ViewController ()

@property (weak, nonatomic) IBOutlet UILabel *res;

@property(nonatomic,assign)double op1;

@property(nonatomic,assign)double op2;

@property(nonatomic,assign)int op;

@property(nonatomic,assign)char sign;

@end


@implementation ViewController

- (IBAction)onClick:(UIButton*)sender {

    static BOOL p=NO;//判断是否第二个操作数

    static BOOL q=NO;//小数操作

    static int i=0;

    static double a=0;

    static double b=0;

    static double c=0;

    static double d=0;

    double r=0;

    switch(sender.tag)

    {

        case 1:

        case 2:

        case 3:

        case 4:

        case 5:

        case 6:

        case 7:

        case 8:

        case 9:

        case 0:

            if(NO==p)

            {

                if(YES==q)

                {

                    i++;

                    c=self.op1+(double)sender.tag/pow(10,i);

                    self.op1=c;

                    self.res.text=[NSString stringWithFormat:@"%g",self.op1];

                }else{

                    a=a*10+sender.tag;

                    self.op1=a;

                    self.res.text=[NSString stringWithFormat:@"%g",self.op1];

                }

            }else{

                if(YES==q)

                {

                    i++;

                    d=self.op2+(double)sender.tag/pow(10,i);

                    self.op2=d;

                    self.res.text=[NSString stringWithFormat:@"%g",self.op2];

                }else{

                    b=b*10+sender.tag;

                    self.op2=b;

                    self.res.text=[NSString stringWithFormat:@"%g",self.op2];

                }

            }

            break;

        case 10://+

            p=YES;

            q=NO;

            i=0;

            //判断上一次的运算符

            if('+'==self.sign)

            {

                r=self.op1+self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('-'==self.sign)

            {

                r=self.op1-self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('*'==self.sign)

            {

                r=self.op1*self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('/'==self.sign)

            {

                r=self.op1/self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            self.sign='+';

            break;

        case 11://-

            p=YES;

            q=NO;

            i=0;

            if('+'==self.sign)

            {

                r=self.op1+self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('-'==self.sign)

            {

                r=self.op1-self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('*'==self.sign)

            {

                r=self.op1*self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('/'==self.sign)

            {

                r=self.op1/self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            self.sign='-';

            break;

        case 12://*

            p=YES;

            q=NO;

            i=0;

            if('+'==self.sign)

            {

                r=self.op1+self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('-'==self.sign)

            {

                r=self.op1-self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('*'==self.sign)

            {

                r=self.op1*self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('/'==self.sign)

            {

                r=self.op1/self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            self.sign='*';

            break;

        case 13:// /

            p=YES;

            q=NO;

            i=0;

            if('+'==self.sign)

            {

                r=self.op1+self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('-'==self.sign)

            {

                r=self.op1-self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('*'==self.sign)

            {

                r=self.op1*self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            if('/'==self.sign)

            {

                r=self.op1/self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

                self.op2=0;

                b=0;

            }

            self.sign='/';

            break;

        case 14://=

            if('+'==self.sign)

            {

                r=self.op1+self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

            }

            if('-'==self.sign)

            {

                r=self.op1-self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

            }

            if('*'==self.sign)

            {

                r=self.op1*self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

            }

            if('/'==self.sign)

            {

                r=self.op1/self.op2;

                self.res.text=[[NSString alloc] initWithFormat:@"%g",r];

                self.op1=r;

            }

            self.sign='\0';

            self.op2=0;

            b=0;

            break;

        case 15://AC

            p=NO;

            q=NO;

            a=0;

            b=0;

            c=0;

            d=0;

            i=0;

            self.op1=0;

            self.op2=0;

            self.sign='\0';

            self.res.text=[NSString stringWithFormat:@"0"];

            break;

        case 16://.

            q=YES;

            break;

        case 17://%

            self.op1=self.op1/100;

            self.res.text=[NSString stringWithFormat:@"%g",self.op1];

            break;

        case 18://±

                self.op1=-1*self.op1;

                self.res.text=[NSString stringWithFormat:@"%g",self.op1];

            break;

    }

}


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


【信息科学与工程学】【物理/化学科学和工程技术】知识体系073——电学基础04 ​。 阅读详情

相关推荐

objective-c实现简单计算器

自己实现简单计算器的功能,使用xcode,oc开发的ios应用,辣鸡

简单计算器(OC)

#import "ViewController.h"@interface ViewController ()@property(retain)UILabel* resultLabel; @property(retain)NSString* firstNum; @property(retain)NSString* secondNum; @property(retain)NSString* sybolS

GuiGen_L的博客 1395

OC编写计算器

用OC编写的计算机小程序,实现了加减乘除等等,清零,删除等功能

IOS开发之——加法计算器(4)

一 概述 本文以一个示例:加法计算器,介绍iOS开发的步骤,并提供OC和Swift两个版本: 工具: xcode:11.4.1 Mac:10.15.4 <!--more--> 二 新建项目 打开xcode后,依次点击:File—>New—>Project,打开项目创建模版 选择Single View App后,输入应用的名称 ...

我的博客 850

OC 简单计算器(修改版)

(修改版)修复打开崩溃问题 计算器 学习UI的第二天写的 主要通过字符串分解计算 简单实现功能 。 可以处理括号,加减乘除,负数和简单浮点数

用OC storyboard写的计算器

用OC storyboard写的计算器,基本功能已实现,有兴趣的可以下载来看看。

oc计算器-objective-c 计算器

首先用Interface Builder做出一个简单的计算器图形: 先再.h文件中定义好输出口,全局变量还有方法 C代码 收藏代码 @interface calculatorViewController : UIViewController { IBOutlet UITextField *textField; ...

iteye_20945的博客 859

计算器+利率计算器-无优先级-有其余拓展

实验课的成果,初等计算器,需要的了解一下。现在我还都是弄不出来优先级

iOS入门一(计算器)

使用xcode创建项目Calculator 然后点开Main.storyboard,在右边最下面拖个Label进画板里面 storyboard就是故事版 然后点击右上角的‘show assistant editor’按钮,即可看到代码编辑页面 如果觉得空间很拥挤,可以把左边和右边的视图隐藏掉 现在来看ViewController.swift xcode已为我们生成了部分代码,代码如下, 里面...

buyue 6485

oc学生成绩管理系统和计算器

oc的增删查该,ios小应用计算器的简单计算。

C++编写的一个不考虑优先级的计算器

运用到文件流输入与输出技术,不考虑优先级的一个计算器,

iOS 实现简易的计算器

先看效果: 主要代码: NSDecimalNumber * number1 = [NSDecimalNumber decimalNumberWithString :@“12.5”]; NSDecimalNumber * number2 = [NSDecimalNumber decimalNumberWithString :@“2.5”]; // 加 N...

yizhiliulangdemiao的博客 2872

现场总线课程设计-基于modbus协议使用QT实现主从站控制通信

【平台:QT】 【协议:modbus(注:由于要求,需要自己来实现modbus库,而非直接调用已有的库)】 【由于复制粘贴,时间原因可能格式有误,如需要具体工程文件以及报告文件请私信博主】 1、 大作业任务: (1)使用附件中工具软件体验MODBUS主从站数据传输过程(可在主从站模拟工具里面观察各功能码对应数据帧内容并对其进行分析) (2)使用串口调试助手,手工发出MODBUS主、从站该发出的数据,并观察对方发出的数据 (3)实现MODBUS主、从站功能,描述实现过程(语言不限于使用VC

weixin_44469597的博客 4066

IOS 实现一个简单的计算器

下面就开始具体讲讲如何实现的:1 双击桌面上Xcode应用图标,打开Xcode工程 2 选择Create a new Xcode project 3 选择Single View Application 4 5 保存到桌面上 6 7 下面就开始搭建界面,先拖入三个TextField 8 然后再拖入两个UILabel 9 最后,再拖入一个Button,充当计算按钮 10

海涛高软 1万+

有限差分法地震数据正演模拟(二)

正演模拟,是在地球物理勘探研究中,根据地质体的形状、产状和物性数据,通过构造数学模型计算得到其理论值(数学模拟),或通过构造实体模型来观测模型所产生的地球物理效应的数值(物理模拟)。p(t+1,x,z)即为下一时刻的波长信息,该波动方程的意义就是通过前一时刻(p(t-1,x,z))和现在时刻(p(t,x,z))预测下一时刻波的传播情况。声波波动方程:反应声波的传播规律,描述最简单的波现象的方程,p代表波场信息,v表示速度场信息因为速度只与速度场有关,所以只与x,z有关。其结果也可以作为反演的验证。

weixin_46285501的博客 3937

自动驾驶仿真:基于Carsim开发的加速度请求模型

1、自动驾驶行业中,算法端对于纵向控制的功能预留接口基本都是加速度,我们需要给控制器仿真加速度的信号,控制器才会实现对纵向功能的控制。2、Carsim或者其他动力学软件,主要提供者节气门开度和主缸压力进行控制。我们在进行联合仿真时,往往都要通过PID的方式将请求加速度转换成对应的节气门开度与主缸压力传给动力学软件进行闭环控制。

zataji的博客 6916

OC中使用UI自定义控件实现计算器的设计(版本1简单的加减乘除,连加,连减,连除,连乘)

OC中使用UI自定义控件实现计算器的设计(版本1简单的加减乘除,连加,连减,连除,连乘)

FIGHTING的专栏 3201

Carla-UE4Editor导入RoadRunner地图文件(保姆级教程)

以Carla官网导入RoadRunner地图的标准文档为参考,里面增添了很多细节和注意事项,遇到问题的小伙伴过来看看吧。

DSK_981029的博客 1万+

做一个iOS的简单计算器

这一段时间上班不那么忙,于是在github上开始了自己的新的工程,也是我接下来一年的一个小目标吧。作为一个数学爱好者,自然想到在项目内做一个计算器试试手感,首先在code4app上找了一个,感觉不好看。 左上角有个胖子 我忍了一段时间,后来有点忍不了了,就想着还是自己做一个吧。做出来UI效果不算很协调,稍微调一下颜色估计就好很多了。 模仿了手机计算器的风格

阿超的博客 5106

把时间当成数据:SAP ABAP 里的 DATS/TIMS 与 DATN/TIMN,怎么选才不踩坑

SAP项目中日期时间字段的陷阱与优化 日期时间字段(DATS/TIMS)在SAP项目中看似简单却常引发事故,主要问题包括: 非法日期(如20201331)入库后,在月结、对账时爆发异常 空值被处理为00000000导致排序错误 ABAP提供两种处理方案: 经典类型DATS/TIMS:存储为字符格式,校验宽松易存脏数据 HANA原生类型DATN/TIMN:数据库级校验,写入即拦截非法值 优化建议: 在接口层和入库前进行严格校验 新项目优先使用DATN/TIMN类型 对遗留数据使用DATS_IS_VALID等函

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 184

《使用R包ggtree进行进化树的绘制与美化》

都2023年了,才去使用Y叔早在2018年发表的进化树构建利器——ggtree。刚好最近在做基因家族分析,进化树的构建与美化确实有点麻烦,先前使用MEGA11进行了绘制,但图像简陋,于是导出了nwk文件,准备使用其他软件进行美化。这里,我使用ggtree包进行操作。

沉香best的博客 6898

IOS实现小型计算器

对于初学者来说在编辑一款在IOS操作系统上可以运行的计算器对于鼓舞大家的士气很有必要,但是网上有好多的计算器虽然功能很强大,但是对于初学者 来说难于理解,所以作为曾经的一名初学者,我做了一个简单的计算器,易于理解,功能也很简单,希望通过这个简单的计算器,能给绑到大家,如果有不完善的还请大家多多批评指教。 首先呢,编辑这个计算器用到了两种控件,Label和Button控件,Label控件用于显示结

4434

C#串口通信革命:RJCP.DLL.SerialPortStream实战全解析

本文介绍了如何通过RJCP.DLL.SerialPortStream库实现高性能串口通信解决方案。相比.NET自带的SerialPort类,该库提供了完全的异步非阻塞IO、动态缓冲区控制和多线程事件驱动等优势,特别适合工业自动化和物联网场景。文章详细讲解了环境搭建、核心功能对比,并通过代码示例展示了端口配置、异步通信管道搭建等关键技术。最后以Modbus RTU协议为例,演示了高级协议封装方法,为开发者提供了完整的工业级串口通信实现方案。

墨夶的博客 1876

简单计算器(objective-c)

一个简单的计算器代码,应该还有bug没发现

xi_ui的博客 4048

企业级AI平台架构设计:AI应用架构师的未来趋势

企业级AI平台是AI从“实验室”走向“生产线”的关键,而AI应用架构师就是这条“生产线”的总设计师。未来,随着生成式AI、边缘计算、自治式AI的发展,架构师的角色将越来越重要——他们不仅要构建技术平台,还要连接技术与业务,让AI真正创造价值。“不要做‘只会调模型的工程师’,要做‘能解决业务问题的架构师’。因为,真正有价值的AI,从来不是“最先进的模型”,而是“能落地、能复用、能创造业务价值的平台”。愿你在企业AI转型的浪潮中,成为那个“搭建桥梁的人”——连接技术与业务,连接现在与未来。

小程序开发 973

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

objective-c 简易计算器

为什么80%的码农都做不了架构师?>>> ...

weixin_33941350的博客 486

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 关于一个oc写的命令行版的通讯录程序(代码贴过来无缩进,作为备忘,代码完成度:90%)
下一篇: iOS的23种设计模式简介
Zwarwolf
博客等级 码龄20年 693粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zwarwolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值