




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/.m文件/ EDViewController.m/ jiSuanQi2/ Created by TY on 14-8-25./ Copyright (c) 2014年 FengHua. All rights reserved./#import EDViewController.hinterface EDViewController ()endimplementation EDViewControllerint opert; /操作符的tag值NSString *oneString; /前字符串声明NSString *twoString;/后字符串声明double oneNumber ;/前操作数声明double twoNumber ;/后操作数的声明bool opertDeal = false;/是否按下操作符double equ = 0;/结果BOOL zero;/判断是否输入0NSString *btnString;/操作的标志int oneLenth;/int twoLenth;/前后俩个字符的的长度标志bool ac = false;/.符号的标志int one,two,three;/用于计算闰年的三个常量- (void)viewDidLoad super viewDidLoad; oneString=; twoString=; oneNumber=0; twoNumber=0; opert = 0;/将各个变量初始化/ Do any additional setup after loading the view, typically from a nib.- (void)didReceiveMemoryWarning super didReceiveMemoryWarning; / Dispose of any resources that can be recreated.- (IBAction)poin:(id)sender /点得处理,包含0的处理在内 UIButton *btn = (UIButton*) sender; NSString *send = btn.titleLabel.text; NSRange oneRange = oneString rangeOfString:.;/做字符串内是否有. NSRange twoRange = twoString rangeOfString:.;/右字符串内是否有. int oneLenght = oneRange.length;/做字符串的长度 int twoLengh =twoRange.length;/右字符串的长度 /字符0的处理 if(send isEqualToString:0) /如果找到0 if (ac) /没有找到. /右字符串处理 if (twoString isEqualToString:send) twoString = twoString stringByAppendingString:send; self.labelDisplay setText:twoString; else self.labelDisplay setText:send; twoString = send; self.labelDisplay setText:twoString; else /找到0,同时找到. if (oneString isEqualToString:send) oneString = send; self.labelDisplay setText:oneString; else oneString = oneString stringByAppendingString:send; self.labelDisplay setText:oneString; else /字符 点 的处理 if (ac) if (oneString isEqualToString:) /如果左字符串为空,按下. oneString = 0.;/输出0. self.labelDisplay setText:0.; else if (twoLengh = 0) /如果右字符串长度为0,那么 twoString = twoString stringByAppendingString:send; self.labelDisplay setText:twoString; else self.labelDisplay setText:send; twoString = send; else if (oneString isEqualToString:) oneString = 0.; self.labelDisplay setText:0.; else if (oneLenght =0) oneString = oneString stringByAppendingString:send; self.labelDisplay setText:oneString; else oneString = self.labelDisplay.text; self.labelDisplay setText:oneString; /小数点和0的处理- (IBAction)btnNumber:(id)sender self.labelDisplay.text=0; UIButton *btn=(UIButton *)sender; NSString *btntext =btn.titleLabel.text; /按钮上的TXT值 NSInteger shuzi =btn.tag;/获取按钮的tag值 switch (shuzi) case 1:case 2:case 3: case 4:case 5:case 6: case 7:case 8:case 9: self btnNumberDeal:btntext;/调用btnNumber方法 break; default: break; /数字键的处理- (void)btnNumberDeal:(NSString *)text/操作数的处理 if (opertDeal) twoString = twoString stringByAppendingString:text; twoNumber = twoString doubleValue; self.labelDisplay setText:twoString; else oneString = oneString stringByAppendingString:text; oneNumber = oneString doubleValue; self.labelDisplay setText:oneString; - (void)biaozhi:(NSString *)arg/操作符的标识 if(arg isEqualToString:+) btnString = Add; if(arg isEqualToString:-) btnString = Reduction; if(arg isEqualToString:*) btnString =Multip; if (arg isEqualToString:/) btnString = Addlition; - (void)caozuofuDeal:(UIButton *)btn /操作符的处理 if(opertDeal) switch (opert) /在按下操作符之后,通过判断收到的tag值,进行对应的运算操作 case 11: equ = oneNumber + twoNumber; self.labelDisplay.text=NSString stringWithFormat:%g,equ; break; case 12: equ = oneNumber - twoNumber; self.labelDisplay.text=NSString stringWithFormat:%g,equ; break; case 13: equ = oneNumber * twoNumber; self.labelDisplay.text=NSString stringWithFormat:%g,equ; break; case 14: equ = oneNumber / twoNumber; self.labelDisplay.text=NSString stringWithFormat:%g,equ; if (twoNumber =0)&btnString isEqualToString:Division) self.labelDisplay setText:0; opert = 0; opertDeal=false; break; default: break; oneNumber=equ; /把计算结果传给oneNumber,然后作为下一次按下操作符之后的前操作数 twoNumber=0;/把twoNumber的值归零,以便于再次按下操作符的时候作为后操作数 twoString=;/同上,清空,存放接下来收到的字符串 else opertDeal=true; opert=btn.tag; self biaozhi:btnString;- (IBAction)opert:(UIButton *)sender/操作符按钮 UIButton *btn=(UIButton *)sender; NSInteger caozuo =btn.tag;/获取按钮的tag值 switch (caozuo) case 11:case 12:case 13:case 14: self caozuofuDeal:btn; break; - (IBAction)dengYu:(UIButton *)sender /等于按钮 UIButton *btn=(UIButton *)sender; NSInteger caozuo =btn.tag;/获取按钮的tag值 switch (caozuo) case 15: self caozuofuDeal:btn; break; oneNumber = equ; twoNumber = 0; twoString = ; opert = 0; opertDeal=false;- (IBAction)xPin:(UIButton *)sender UIButton * btn = (UIButton *)sender; NSInteger kexue = btn.tag; oneNumber = oneString doubleValue; switch (kexue) case 19: equ = log(oneNumber); self.labelDisplay setText:NSString stringWithFormat:%g,equ; break; case 20: equ = pow (oneNumber, 2); self.labelDisplay setText:NSString stringWithFormat:%g,equ; break; case 21: equ = pow(oneNumber, 3); self.labelDisplay setText:NSString stringWithFormat:%g,equ; break; case 22: equ = exp(oneNumber); self.labelDisplay setText:NSString stringWithFormat:%g,equ; break; case 23: equ = sqrt(oneNumber); self.labelDisplay setText:NSString stringWithFormat:%g,equ; break; case 24: equ = 1/oneNumber; self.labelDisplay setText:NSString stringWithFormat:%g,equ; break; case 25: one = fmod(oneNumber, 4); two = fmod(oneNumber, 100); three = fmod(oneNumber, 400); if (one=0&two!=0)|three=0) self.labelDisplay setText:闰年; else self.labelDisplay setText:非闰年; break; default: NSLog(test); break; oneNumber = equ; twoNumber = 0; twoString = ; opert = 0; opertDeal=false;/科学计算按钮- (IBAction)tuiGe:(id)sender/退格按钮的处理 NSString *lableLength =NSString stringWithFormat:%i,self.labelDisplay.text.length ; /现在只输入了一位字符,按下退格键直接初始化显示器 if (lableLength isEqualToString:1) self.labelDisplay setText:0; oneString=; twoString=; oneNumber=0; twoNumber=0; opert = 0; opertDeal=false; else /当输入了多个字符时 if (!lableLength isEqualToString:0) /如果是前字符串 if (btnString isEqualToString:) NSString *lableValue = self.labelDisplay.text substringToIndex:self.labelDisplay.text.length -1; oneString =lableValue; self.labelDisplay setText:lableValue; /右字符串处理 else if (twoString isEqualToString:&!btnString isEqualToString:) NSString *lableValue = self.labelDisplay.text substringToIndex:self.labelDisplay.text.length -1; self.labelDisplay setText:lableValue; btnString = ; if (!twoString isEqualToString:) NSString *lableValue = self.labelDisplay.text substringToIndex:self.labelDisplay.text.length -1; twoString =twoString substringToIndex:twoString.length-1; self.labelDisplay setText:lableValue; - (IBAction)cleabtn:(UIButton *)sender self.labelDisplay setText:0; oneString=; twoString=; oneNumber=0; twoNumber=0; opert = 0; opertDeal=false;/清除按钮end.h文件/ EDViewController.h/ jiSuanQi2/ Created by TY on 14-8-25.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业集体劳动合同模板
- 2025湖南湘西州泸溪县妇幼保健计划生育服务中心招聘高校见习生5人考前自测高频考点模拟试题及一套参考答案详解
- 2025广西贵港市港南区大数据发展和政务局招聘编外人员1名考前自测高频考点模拟试题附答案详解(完整版)
- 2025年4月18日四川内江市招聘会岗位考前自测高频考点模拟试题附答案详解(突破训练)
- 2025贵州安顺市参加“第十三届贵州人才博览会”引才271人模拟试卷及答案详解1套
- 2025年铝板购销合同模板
- 2025年十堰市城发集团及所属子公司公开招聘拟聘用人员模拟试卷附答案详解(完整版)
- 2024-2025学年河北省霸州市小学数学六年级期末自我评估提分题详细答案和解析
- 安全法学考试题库及答案
- 中考监考考试题库及答案
- 2025年秋季学期“1530”安全教育记录表
- 超声科院感知识培训
- 上消化道出血中医护理常规
- 2025年辅警招聘公安基础知识必刷题库
- 偏瘫并发症肩痛
- 儿童异物吸入的急救和预防
- 中医糖尿病个案护理
- 幼儿社会领域教育
- 医疗行业实验室自动化的趋势和影响
- 肺功能检查质控要点
- 会诊联络精神病学
评论
0/150
提交评论