用x-code制作一个计算器
零基础学一门语言。。真的很蛋疼。。。计算器制作过程遇到了各种问题,该犯的错误都犯了个遍。万分感谢全程提供技术支持的boying童鞋
1.首先建好一个名字为jisuanqi的工程,添加名为jsq的类,同时在jsq.h中定义类的属性
#import <Foundation/Foundation.h> @interface jsq : NSObject @property float opValue1;//左操作数 @property float opValue2;//右操作数 @property char op;//定义一个方法获取运算符状态 -(float)work;//定义一个方法实现运算符+ -(float)work1;//定义一个方法实现运算符- -(float)work2;//定义一个方法实现运算符* -(float)work3;//定义一个方法实现运算符/ @end
2.jsq.m中实现之前定义的方法
#import "jsq.h" @implementation jsq -(float)work { return self.opValue1 + self.opValue2;//实现方法 } -(float)work1 { return self.opValue1 - self.opValue2; } -(float)work2 { return self.opValue1 * self.opValue2; } -(float)work3 { return self.opValue1 / self.opValue2; } @end
3.在Main.storyboard把计算器基本界面设计出来,并把相应控件拖到代码里关联
4.在ViewController.h 在类中定义一个对象jisuanqi
@interface ViewController : UIViewController { jsq *jisuanqi;//定义一个对象 }
5.到ViewContronllor.m调用各种方法来实现计算器功能
数字键的调用,以0为例
- (IBAction)no0:(id)sender { if(jisuanqi.op == 0)//没检测到运算符则输出显示第一个操作数 即没按+ — * /一直输出显示第一个操作数 {jisuanqi.opValue1=jisuanqi.opValue1*10; self.xianshi.text = [NSString stringWithFormat:@"%.2f",jisuanqi.opValue1]; } else //否则开始输入第二个操作数 {jisuanqi.opValue2=jisuanqi.opValue2*10; self.xianshi.text = [NSString stringWithFormat:@"%.2f",jisuanqi.opValue2];} }
运算符的调用,以+为例
- (IBAction)add:(id)sender { jisuanqi.op='+'; self.xianshi.text =@"+";//显示 + 号 }
6.等号的实现
- (IBAction)result:(id)sender { if (jisuanqi.op=='+'){//用if语句判断输出 float result = [jisuanqi work]; self.xianshi.text = [NSString stringWithFormat:@"%f", result]; } else if (jisuanqi.op=='-'){ float result = [jisuanqi work1]; self.xianshi.text = [NSString stringWithFormat:@"%f", result];} else if (jisuanqi.op=='*'){ float result = [jisuanqi work2]; self.xianshi.text = [NSString stringWithFormat:@"%f", result];} else if (jisuanqi.op=='/'){ float result = [jisuanqi work3]; self.xianshi.text = [NSString stringWithFormat:@"%f", result];}
7.AC的实现
- (IBAction)AC:(id)sender { jisuanqi.op=0; jisuanqi.opValue1=0; jisuanqi.opValue2=0; self.xianshi.text = @"0"; }
8.很重要的一步,初始化对象,计算器到此完成,计算器背景颜色用view控件拖出来,弄成自己喜欢的颜色
- (void)viewDidLoad { [super viewDidLoad]; jisuanqi=[[jsq alloc]init];//最重要的地方,初始化对象 }
感言:缺乏程序设计逻辑,照着老师代码敲都能敲出各种错误 ,更别说脱离老师去独立设计一个小程序,所以还需多练习,现在不懂的尽量搞懂一点点,剩下的先依葫芦画瓢照着敲。。。零基础。。只能这样学了。。。