@interface EricAppDelegate ()
{
UIView *_containView;
UILabel *_label;
UIButton *_butt;
NSMutableString *str;
}
@property(assign,nonatomic)double num1,num2,num3,num4;
@end
@implementation EricAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
_containView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
_containView.backgroundColor = [UIColor orangeColor];
[self.window addSubview:_containView];
[_containView release];
// Override point for customization after application launch.
[self calculator];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
//计算器
- (void)calculator
{
NSArray *arr = [NSArray arrayWithObjects:@"7",@"8", @"9",@"/",@"4",@"5",@"6",@"*",@"1",@"2",@"3",@"-",@".",@"0",@"=",@"+",nil];
str = [[NSMutableString alloc] initWithFormat:@""];
int n = 0;
for (int i = 0; i < 4; i ++) {
for (int j = 0; j < 4; j++){
_butt = [UIButton buttonWithType:UIButtonTypeSystem];
_butt.frame = CGRectMake(3 + j *80, 270 + i *75, 75, 70);
_butt.backgroundColor = [UIColor grayColor];
_butt.layer.cornerRadius = 20;
_butt.titleLabel.font = [UIFont systemFontOfSize:35];
[_butt setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[_butt setTitle:arr[n++ ] forState:UIControlStateNormal];
_butt.tag = 100 + n;
[_containView addSubview:_butt];
}
}
//显示窗口
_label = [[UILabel alloc] initWithFrame:CGRectMake(3, 80, 313, 100)];
_label.layer.cornerRadius = 5;
_label.layer.masksToBounds= YES;
_label.textAlignment= NSTextAlignmentRight;
_label.textColor = [UIColor blackColor];
_label.font = [UIFont systemFontOfSize:30];
_label.backgroundColor = [UIColor greenColor];
[_containView addSubview:_label];
[_label release];
//清除按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.frame = CGRectMake(243, 193, 75, 70);
button.backgroundColor = [UIColor grayColor];
button.layer.cornerRadius = 20;
button.titleLabel.font = [UIFont systemFontOfSize:25];
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[button setTitle:@"C" forState:UIControlStateNormal];
[button addTarget:self action:@selector(clear:) forControlEvents:UIControlEventTouchUpInside];
[_containView addSubview:button];
//回删按钮
UIButton *goButton = [UIButton buttonWithType:UIButtonTypeSystem];
goButton.frame = CGRectMake(163, 193, 75, 70);
goButton.backgroundColor = [UIColor grayColor];
goButton.layer.cornerRadius = 20;
goButton.titleLabel.font = [UIFont systemFontOfSize:25];
[goButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[goButton setTitle:@"Dele" forState:UIControlStateNormal];
[goButton addTarget:self action:@selector(delete:) forControlEvents:UIControlEventTouchUpInside];
[_containView addSubview:goButton];
//数字按钮
NSArray *arra = [NSArray arrayWithObjects:(UIButton *) [_containView viewWithTag:101],(UIButton *) [_containView viewWithTag:102],(UIButton *) [_containView viewWithTag:103],(UIButton *) [_containView viewWithTag:105],(UIButton *) [_containView viewWithTag:106],(UIButton *) [_containView viewWithTag:107],(UIButton *) [_containView viewWithTag:109],(UIButton *) [_containView viewWithTag:110],(UIButton *) [_containView viewWithTag:111],(UIButton *) [_containView viewWithTag:114], nil];
for (int i = 0; i < 10; i++) {
[arra[i] addTarget:self action:@selector(number:) forControlEvents:UIControlEventTouchUpInside];
}
//运算符按钮
NSArray *array = [NSArray arrayWithObjects:(UIButton *) [_containView viewWithTag:104],(UIButton *) [_containView viewWithTag:108],(UIButton *) [_containView viewWithTag:112],(UIButton *) [_containView viewWithTag:116], nil];
for (int i = 0; i < 4; i++) {
[array[i] addTarget:self action:@selector(operator:) forControlEvents:UIControlEventTouchUpInside];
}
//运算结果
UIButton *but =(UIButton *) [_containView viewWithTag:115];
[but addTarget:self action:@selector(cal:) forControlEvents:UIControlEventTouchUpInside];
self.num1= [str doubleValue];
//点运算
UIButton *butt =(UIButton *) [_containView viewWithTag:113];
[butt addTarget:self action:@selector(number:) forControlEvents:UIControlEventTouchUpInside];
[str setString:@""];
}
- (void)clear:(UIButton *)clear
{
_label.text = @"0";
[str setString:@""];
self.num3=0;
}
- (void)delete:(UIButton *)del
{
if ([str length] !=0) {
[str deleteCharactersInRange:NSMakeRange([str length] - 1, 1)];
}
_label.text = str;
}
//计算操作
-(void)number:(UIButton *)but
{
//保证是符号时在输入数字时隐藏
if ([but.currentTitle hasPrefix:@"+"]||[but.currentTitle hasPrefix:@"-"]||[but.currentTitle hasPrefix:@"*"]||[but.currentTitle hasPrefix:@"/"])//判断是否为运算符
{
_label.text = @" ";
[str setString:@""];//字符串清零
}else{
//判断第一次输入的是否是. , 若是,则添加个0,
if ([str isEqualToString:@""] &&[but.currentTitle isEqualToString:@"."]) {
[str appendFormat:@"0%@",but.currentTitle];
}else{
[str appendFormat: @"%@",but.currentTitle];
};
}
_label.text =str;
self.num1 = [str doubleValue];
}
- (void)operator:(UIButton *)but
{
[str setString:@""];
if ([but.currentTitle hasPrefix:@"+"]){
self.num2 = self.num1;
self.num4 = 1;
}
if ([but.currentTitle hasPrefix:@"-"]){
self.num2 = self.num1;
self.num4 = 2;
}
if ([but.currentTitle hasPrefix:@"*"]){
self.num2 = self.num1;
self.num4 = 3;
}
if ([but.currentTitle hasPrefix:@"/"]){
self.num2 = self.num1;
self.num4 = 4;
}
}
- (void)cal:(id)sender
{
if (self.num4 ==1) {
self.num3= self.num1 + self.num2;
_label.text = [NSString stringWithFormat:@"%g",self.num3];
self.num1 = self.num3;
[str setString:@""];
}
if (self.num4 ==2) {
self.num3= self.num2 - self.num1;
_label.text = [NSString stringWithFormat:@"%g",self.num3];
self.num1 = self.num3;
[str setString:@""];
}
if (self.num4 ==3) {
self.num3= self.num1 * self.num2;
_label.text = [NSString stringWithFormat:@"%g",self.num3];
self.num1 = self.num3;
[str setString:@""];
}
if (self.num4 ==4) {
self.num3= self.num2 / self.num1;
_label.text = [NSString stringWithFormat:@"%g",self.num3];
self.num1 = self.num3;
[str setString:@""];
}
}
简易计算器制作
最新推荐文章于 2023-07-18 15:45:00 发布