oc计算器-objective-c 计算器

89283517 2012-10-22

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

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

C代码收藏代码

@interfacecalculatorViewController:UIViewController{

IBOutletUITextField*textField;

intnumber;

BOOLfunction;

BOOLisFlage;

BOOLisResult;

BOOLisAgain;

BOOLisPress;

NSString*num;

NSString*nums;

intTEMP;

}

@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'sOwner中拖到text框中选择好合适的textfield输出口

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

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

C代码收藏代码

-(IBAction)buttionPressed:(id)sender{

if(!isFlage){

num=[sendertitleForState:UIControlStateNormal];

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

textField.text=nums;

}else{

if(!isPress){

isFlage=FALSE;

num=[sendertitleForState:UIControlStateNormal];

nums=[[NSStringalloc]initWithFormat:@"%@",num];

textField.text=nums;

}

}

[selfplus:sender:nums];

[selfminus:sender:nums];›

[selfmultiple:sender:nums];

[selfdivide:sender:nums];

[selfclearshow:sender:number];

if([numisEqualToString:@"="]){

isPress=TRUE;

isFlage=TRUE;

switch(TEMP){

case1:

number=number+[numsintValue];

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

isResult=TRUE;

break;

case2:

number=number-[numsintValue];

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

isResult=TRUE;

break;

case3:

number=number*[numsintValue];

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

isResult=TRUE;

break;

case4:

number=number/[numsintValue];

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

isResult=TRUE;

break;

default:

break;

}

}

}

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

C代码收藏代码

-(void)plus:(id)sender:(NSString*)value{

num=[sendertitleForState:UIControlStateNormal];

if([numisEqualToString:@"+"]){

TEMP=1;

isPress=FALSE;

isFlage=TRUE;

if(isResult){

function=FALSE;

}

if(!function){

number=number+[valueintValue];

}else{

function=TRUE;

isResult=FALSE;

number=[valueintValue];

}

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

}

}

-(void)clearshow:(id)sender:(int)value{

num=[sendertitleForState:UIControlStateNormal];

if([numisEqualToString:@"Clear"]){

number=0;

isFlage=FALSE;

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

}

}

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

C代码收藏代码

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

还有int型转化为string型:

C代码收藏代码

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

string型转化为int型:

C代码收藏代码

[valueintValue];

相关推荐