// Calculator.h
#import <Foundation/NSObject.h>
// MVC : M (Model)
@interface Calculator : NSObject {
int su;
int value;
char bubo;
}
@property int su, value;
@property char bubo;
@end
//
// Calculator.m
#import "Calculator.h"
@implementation Calculator
@synthesize su, value, bubo;
@end
//
// CalculatorManager.h
#import <Foundation/NSObject.h>
@class Calculator;
@interface CalculatorManager : NSObject {
Calculator *calc;
int resultInt;
float resultFloat;
}
-(id) init;
-(void) dealloc;
-(void) setSu:(int)su andValue:(int)value;
-(void) performOperation:(char)buho;
-(void) disp;
@end
//
// CalculatorManager.m
#import "CalculatorManager.h"
#import "Calculator.h"
@implementation CalculatorManager
-(id) init{
self = [super init];
if(self){
calc =[[Calculator alloc] init];
}
return self;
}
-(void) setSu:(int)su andValue:(int)value // 10 20
{
[calc setSu:su];
[calc setValue:value];
}
-(void) performOperation:(char)buho // +
{
[calc setBubo:buho];
switch ([calc bubo]) { // calc.buho
case '+':
resultInt = [calc su] + [calc value];
break;
case '-':
resultInt = [calc su] - [calc value];
break;
case '*':
resultInt = calc.su * calc.value;
break;
case '/':
resultFloat = (float)[calc su] / [calc value];
break;
}
}
-(void) disp
{
if(calc.bubo == '/'){
if (calc.value == 0) {
NSLog(@"0으로 나눌수 없습니다.");
}else {
NSLog(@"%i %c %i", calc.su, calc.bubo, calc.value);
NSLog(@"연산결과 : %i", resultFloat);
}
}else {
NSLog(@"%i %c %i", calc.su, calc.bubo, calc.value);
NSLog(@"연산결과 : %i", resultInt);
}
}
-(void) dealloc{
[calc release];
[super dealloc];
}
@end
#import "CalculatorManager.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int su, value;
char buho;
NSLog(@"input su:");
scanf("%d", &su);
NSLog(@"input buho:");
scanf("%*c %c", &buho);
NSLog(@"input value:");
scanf("%d", &value);
CalculatorManager *manager = [[CalculatorManager alloc] init];
[manager setSu:su andValue:value];
[manager performOperation:buho];
[manager disp];
[manager release];
[pool drain];
return 0;
}
2011-05-26 11:42:54.436 test56[485:a0f] input su:
10
2011-05-26 11:42:56.429 test56[485:a0f] input buho:
+
2011-05-26 11:42:57.253 test56[485:a0f] input value:
20
2011-05-26 11:42:57.854 test56[485:a0f] 10 + 20
2011-05-26 11:42:57.855 test56[485:a0f] 연산결과 : 30
[출처] test56 [계산기]|작성자 바우만
'컴퓨터 > 아이폰' 카테고리의 다른 글
화면 이동시 에니메이션 효과 (0) | 2012.01.18 |
---|---|
두개 클래스 사용 예제 소스 (0) | 2012.01.18 |
날짜 -> 시간 시간->날짜 변환 (0) | 2012.01.18 |
파일 관련 자료 (0) | 2012.01.18 |
sqlite에 관한거.. (0) | 2012.01.17 |