Глава 17

Создайте новую программу командной строки Foundation с именем Stocks. Затем создайте класс StockHolding для представления купленных акций. Этот класс должен быть субклассом NSObject. Он содержит две переменные экземпляра типа float с именами purchaseSharePrice и currentSharePrice и одну переменную экземпляра типа int с именами numberOfShares. Соз- дайте методы доступа для переменных экземпляров. Определите два метода экземпляра:

- (float)costInDollars; // purchaseSharePrice * numberOfShares

- (float)valueInDollars; // currentSharePrice * numberOfShares

В функции main() заполните массив тремя экземплярами StockHolding. Переберите элементы массива и выведите значения каждого из них.

Решение:

файл StockHolding.h

//  StockHolding.h

@interface StockHolding : NSObject

{
float purchaceSharePrice;
float currentSharePrice;
int numberOfShares;
}

@property float purchaceSharePrice;
@property float currentSharePrice;
@property int numberOfShares;

- (float)costInDollars;
- (float)valueInDollars;

@end

Файл StockHolding.m

//  StockHolding.m

#import "StockHolding.h"

@implementation StockHolding

@synthesize purchaceSharePrice, currentSharePrice, numberOfShares;

- (float)costInDollars {
return [self purchaceSharePrice] * [self numberOfShares];
}

- (float)valueInDollars {
return [self currentSharePrice] * [self numberOfShares];
}

@end

Файл main.m

//main.m


int main(int argc, const char * argv[]) {
@autoreleasepool {

// Определение первого экземпляра StockHolding

StockHolding *stockHolding = [[StockHolding alloc] init];

[stockHolding setPurchaceSharePrice:2.30];
[stockHolding setCurrentSharePrice:4.50];
[stockHolding setNumberOfShares:40];


// Опеределение второго экземпляра StockHolding

StockHolding *stockHolding2 = [[StockHolding alloc] init];

[stockHolding2 setPurchaceSharePrice:12.19];
[stockHolding2 setCurrentSharePrice:10.56];
[stockHolding2 setNumberOfShares:90];


// Определение третьего экземпляра StockHolding

StockHolding *stockHolding3 = [[StockHolding alloc] init];

[stockHolding3 setPurchaceSharePrice:45.10];
[stockHolding3 setCurrentSharePrice:49.51];
[stockHolding3 setNumberOfShares:210];


// Создание пустого массива

NSMutableArray *stockHoldingArray = [NSMutableArray array];

// Включение данных в массив

[stockHoldingArray addObject:stockHolding];
[stockHoldingArray addObject:stockHolding2];
[stockHoldingArray addObject:stockHolding3];

// Перебор по данным массива

int i = 1;

for (StockHolding *sh in stockHoldingArray) {

NSLog(@"stock %i purchase share price is %.2f", i, [sh purchaceSharePrice]);
NSLog(@"stock %i current share price is %.2f", i, [sh currentSharePrice]);
NSLog(@"stock %i number of share is %i", i, [sh numberOfShares]);
NSLog(@"stock %i cost in dollars is %.2f", i, [sh costInDollars]);
NSLog(@"stock %i value in dollars is %.2f", i, [sh valueInDollars]);
i++;
}


}
return 0;
}
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.