main.m
/* 实现图书管理系统:
1、使⽤数组管理所有书籍。
2、数组可以添加、删除。
3、可以从数组根据书名查找书籍,并修改书籍的价格。
4、展⽰所有书籍清单(书名)。*/
// 创建 对象
Book *book1 = [Book bookWithBookName:@"YIem" price:20];
Book *book2 = [Book bookWithBookName:@"Bian" price:30];
Book *book3 = [Book bookWithBookName:@"bianyi" price:15];
Book *book4 = [Book bookWithBookName:@"YI" price:35];
Book *book5 = [Book bookWithBookName:@"卞一" price:66];
Book *book6 = [Book bookWithBookName:@"卞" price:23];
// 创建可变数组
NSMutableArray *bookArr = [NSMutableArray array];
// 添加书本
[bookArr addObject:book1];
[bookArr addObject:book2];
[bookArr addObject:book3];
[bookArr addObject:book4];
[bookArr addObject:book5];
[bookArr addObject:book6];
NSLog(@"%@", bookArr);
// 删除书本
[bookArr removeLastObject];
NSLog(@"%@", bookArr);
// 查找书名 修改价格
// 1.遍历数组
for (Book *b in bookArr) {
//判断书名
if ([b.bookName isEqualToString:@"YIem"]) {
// 3.改变价格
b.price = 100;
}
}
NSLog(@"%@", bookArr);
// 清单
for (Book *b in bookArr) {
NSLog(@"%@", b.bookName);
}
Book.h
#import <Foundation/Foundation.h>
@interface Book : NSObject
// 书名
@property (nonatomic, copy) NSString *bookName;
// 价格
@property (nonatomic, assign) CGFloat price;
// 初始化
(instancetype)initWithBookName:(NSString *)name
price:(CGFloat)price;
// 便利构造器
(instancetype)bookWithBookName:(NSString *)name
price:(CGFloat)price;
@end
Book.m
@implementation Book
// 初始化
(instancetype)initWithBookName:(NSString *)name price:(CGFloat)price
{
self = [super init];
if (self) {self.bookName = name; self.price = price;
}
return self;
}
// 便利构造器
- (instancetype)bookWithBookName:(NSString *)name price:(CGFloat)price
{
Book *b = [[Book alloc] initWithBookName:name price:price];
return b;
}
// 描述方法
- (NSString *)description
{
return [NSString stringWithFormat:@"name: %@, price: %.2f", self.bookName, self.price];
}
Libaray.h
#import <Foundation/Foundation.h>
@class Book;
@interface Libaray : NSObject
// 书本数组
@property (nonatomic, copy) NSMutableArray *bookArr;
// 添加
- (void)addBook:(Book *)book;
// 删除 - (void)removeBookArrAtIndexes:(NSIndexSet *)indexes;
// 修改价格 - (void)changPriceByName:(NSString *)name price:(CGFloat)price;
- (void)printBookList;
@end
Libaray.m
#import "Libaray.h"
import "Book.h"
@implementation Libaray
// 初始化
(instancetype)init
{
self = [super init];
if (self) {self.bookArr = [NSMutableArray array];
}
return self;
}
// 添加
(void)addBook:(Book *)book
{[self.bookArr addObject:book];
}
// 删除
(void)removeBookArrAtIndexes:(NSIndexSet *)indexes
{[self.bookArr removeObjectsAtIndexes:indexes];
}
// 修改价格
(void)changPriceByName:(NSString *)name price:(CGFloat)price
{
// 遍历数组
for (Book *b in self.bookArr) {// 判断 if ([b.bookName isEqualToString:name]) { // 修改 b.price = price; }
}
}
// 清单
(void)printBookList
{
for (Book *b in self.bookArr) {NSLog(@"清单: %@", b.bookName);
}
}
@end