oc计算器-objective-c 计算器

首先用Interface Builder做出一个简单的计算器图形:


先再.h文件中定义好输出口,全局变量还有方法
C代码 收藏代码

@interface calculatorViewController : UIViewController {

IBOutlet UITextField *textField;
int number;
BOOL function;
BOOL isFlage;
BOOL isResult;
BOOL isAgain;
BOOL isPress;
NSString *num;
NSString *nums;
int TEMP;
}
@property(retain,nonatomic)UITextField *textField;

- (IBAction)buttionPressed:(id)sender;
- (void)plus:(id)sender:(NSString *)value;
- (void)minus:(id)sender:(NSString *)value;
- (void)multiple:(id)sender:(NSString *)value;
- (void)divide:(id)sender:(NSString *)value;
- (void)clearshow:(id)sender:(int)value;
@end


连接好输出口,按下Ctrl键并从file's Owner中拖到text框中选择好合适的textfield输出口

之后要注意file's Owner的链接,按住ctrl从file's Owner拖到要显示的窗口,再选中要控制按钮,再按花+2键在里面找到touch up inside,点住后面的圆点拖到file's Owner中,按钮依次照做。


再在.m文件中写入方法:首先是buttonpressed方法,里面有对按钮的识别和每个运算方法的调用。
C代码 收藏代码

- (IBAction)buttionPressed:(id)sender{

if (!isFlage) {
num = [sender titleForState:UIControlStateNormal];
nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num];
textField.text = nums;
}else {
if (!isPress) {
isFlage=FALSE;
num = [sender titleForState:UIControlStateNormal];
nums = [[NSString alloc] initWithFormat:@"%@",num];
textField.text = nums;
}

}
[self plus:sender:nums];
[self minus:sender:nums];›
[self multiple:sender :nums];
[self divide:sender :nums];
[self clearshow:sender:number];

if ([num isEqualToString:@"="]) {
isPress=TRUE;
isFlage=TRUE;
switch (TEMP) {
case 1:
number=number+[nums intValue];
textField.text=[NSString stringWithFormat:@"%d",number];
isResult=TRUE;
break;
case 2:
number=number-[nums intValue];
textField.text=[NSString stringWithFormat:@"%d",number];
isResult=TRUE;
break;
case 3:
number=number*[nums intValue];
textField.text=[NSString stringWithFormat:@"%d",number];
isResult=TRUE;
break;
case 4:
number=number/[nums intValue];
textField.text=[NSString stringWithFormat:@"%d",number];
isResult=TRUE;
break;
default:
break;
}

}
}


之后就是对每个运算方法的调用。这里举一个加法的例子,其他运算方法套用即可,还有一个清零的方法
C代码 收藏代码

- (void)plus:(id)sender:(NSString *)value{
num = [sender titleForState:UIControlStateNormal];
if ([num isEqualToString:@"+"]) {
TEMP=1;
isPress=FALSE;
isFlage=TRUE;

if (isResult) {
function=FALSE;
}
if (!function) {
number=number+[value intValue];
}else{
function=TRUE;
isResult=FALSE;
number=[value intValue];
}
textField.text=[NSString stringWithFormat:@"%d",number];
}
}

- (void)clearshow:(id)sender:(int)value{
num = [sender titleForState:UIControlStateNormal];
if ([num isEqualToString:@"Clear"]) {

number=0;
isFlage=FALSE;
textField.text=[NSString stringWithFormat:@"%d",number];
}
}


功能并不是很多,主要是运用到了一些基本的知识。自己需要注意的是字符串的连接
C代码 收藏代码

nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num];


还有int型转化为string型:
C代码 收藏代码

textField.text=[NSString stringWithFormat:@"%d",number];


string型转化为int型:
C代码 收藏代码

[value intValue];
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值