先创建一个Book的类, Book.h
#import <Foundation/Foundation.h>
@interface Book : NSObject
{
NSString *_bookName;// 书名
NSString *_bookAuthor;// 作者
NSString *_bookPublicHouse; // 出版社
CGFloat _bookPrice; // 价格
}
#pragma mark 初始化方法
-(id)initWithBookName : (NSString *)bookName
withBookAuthor : (NSString *)bookAuthor
withBookPublicHouse : (NSString *)bookPublicHouse
withBookPrice : (CGFloat )bookPrice;
#pragma mark 便利构造器
+(id)bookWithBookName : (NSString *)bookName
withBookAuthor : (NSString *)bookAuthor
withBookPublicHouse : (NSString *)bookPublicHouse
withBookPrice : (CGFloat )bookPrice;
#pragma mark 设置器
-(void)setBOOKName:(NSString *)bookName;
-(void)setBookAuthor:(NSString *)bookAuthor;
-(void)setBOOKPublicHouse:(NSString *)bookPublicHouse;
-(void)setBookPrice:(CGFloat )bookPrice;
#pragma mark 访问器
-(NSString *)getterBookName;
-(NSString *)getterBookAuthor;
-(NSString *)getterBookPublicHouse;
-(CGFloat )getterBookPrice;
@end
// Book 类的实现文件.m文件
#import "Book.h"
@implementation Book
#pragma mark 初始化方法
-(id)initWithBookName : (NSString *)bookName
withBookAuthor : (NSString *)bookAuthor
withBookPublicHouse : (NSString *)bookPublicHouse
withBookPrice : (CGFloat )bookPrice
{
self = [super init];
if (self) {
_bookName = bookName;
_bookAuthor = bookAuthor;
_bookPublicHouse = bookPublicHouse;
_bookPrice = bookPrice;
}
return self;
}
#pragma mark 便利构造器
+(id)bookWithBookName : (NSString *)bookName
withBookAuthor : (NSString *)bookAuthor
withBookPublicHouse : (NSString *)bookPublicHouse
withBookPrice : (CGFloat )bookPrice
{
Book *book = [[Book alloc] initWithBookName:bookName withBookAuthor:bookAuthor withBookPublicHouse:bookPublicHouse withBookPrice:bookPrice];
return book;
}
#pragma mark 设置器
-(void)setBOOKName:(NSString *)bookName
{
_bookName = bookName;
}
-(void)setBookAuthor:(NSString *)bookAuthor
{
_bookAuthor = bookAuthor;
}
-(void)setBOOKPublicHouse:(NSString *)bookPublicHouse
{
_bookPublicHouse = bookPublicHouse;
}
-(void)setBookPrice:(CGFloat )bookPrice
{
_bookPrice = bookPrice;
}
#pragma mark 访问器
-(NSString *)getterBookName
{
return _bookName;
}
-(NSString *)getterBookAuthor
{
return _bookAuthor;
}
-(NSString *)getterBookPublicHouse
{
return _bookPublicHouse;
}
-(CGFloat )getterBookPrice
{
return _bookPrice;
}
-(NSString *)description
{
return [NSString stringWithFormat:@"书名:%@ 作者:%@ 出版社:%@ 价格:%.2f",_bookName,_bookAuthor,_bookPublicHouse,_bookPrice];
}
@end
#import <Foundation/Foundation.h>
@class Book; // 声明 book 是一个类
@interface Library : NSObject
{
NSString *_libraryName; // 图书馆名字
NSMutableArray *_libraryArray; // 存放图书的地方.
}
#pragma mark 便初始化方法
-(id)initWithLibraryName:(NSString *)name;
#pragma mark 设置图书馆名字
-(void)setLibraryName:(NSString *)libraryName;
#pragma mark 访问器
-(NSString *)getterLibrary;
#pragma mark 添加图书
-(BOOL)addBookToLibrary:(Book *)book;
#pragma mark 删除图书
-(BOOL)deletedBookFromLibrary:(Book *)book;
#pragma mark 根据图书的作者来删除图书
-(BOOL)deleteBookFromLibraryByBookAuthor:(NSString *)bookAuthor;
#pragma mark 按照图书馆名字来查找图书
-(NSArray *)findBookFormLibraryByName:(NSString *)bookName;
#pragma mark 按照价格来查找图书
-(NSArray *)findBookFormLibraryByPrice:(CGFloat )bookPrice;
#pragma mark 按照作者来查找图书
-(NSArray *)findBookFormLibraryByAuthor:(NSString *)bookAuthor;
#pragma mark 按照出版社查找图书,
-(NSArray *)findBookFormLibraryByPublicHouse:(NSString *)publicHouse;
#pragma mark 展示输出所有的书
-(void)showAllBooks;
@end
#import "Library.h"
#import "Book.h"
@implementation Library
#pragma mark 初始化方法
//-(id)initWithLibraryName:(NSString *)name;
- (instancetype)initWithLibraryName:(NSString *)name
{
self = [super init];
if (self) {
_libraryName = name;
_libraryArray = [NSMutableArray arrayWithCapacity:10];
}
return self;
}
#pragma mark 设置图书馆名字
-(void)setLibraryName:(NSString *)libraryName
{
_libraryName = libraryName;
}
#pragma mark 访问器
-(NSString *)getterLibrary
{
return _libraryName;
}
#pragma mark 添加图书
-(BOOL)addBookToLibrary:(Book *)book
{
[_libraryArray addObject:book];
return YES;
}
#pragma mark 删除图书
-(BOOL)deletedBookFromLibrary:(Book *)book
{
[_libraryArray removeObject:book];
return YES;
}
// 在for 循环中找到东西,不要直接删除,会造成崩溃,.
#pragma mark 根据图书的作者来删除图书
-(BOOL)deleteBookFromLibraryByBookAuthor:(NSString *)bookAuthor
{
NSMutableArray *deleteArray = [NSMutableArray array];
for (Book *temp in _libraryArray) {
if ([[temp getterBookAuthor]isEqualToString:bookAuthor]) {
// 判断两个字符串是否相等.
// [_libraryArray removeObject:temp] // 这个做法不可取,容易造成崩溃
[deleteArray addObject:temp];
}
}
[_libraryArray removeObjectsInArray:deleteArray];
return YES;
}
#pragma mark 按照图书名字来查找图书
-(NSArray *)findBookFormLibraryByName:(NSString *)bookName
{
NSMutableArray *array = [NSMutableArray array];
for (Book *temp in _libraryArray) {
if ([[temp getterBookName] isEqualToString:bookName]) {
[array addObject:temp];
}
}
return array;
}
#pragma mark 按照价格来查找图书
-(NSArray *)findBookFormLibraryByPrice:(CGFloat )bookPrice
{
NSMutableArray *array = [NSMutableArray array];
for (Book *temp in _libraryArray) {
if ([temp getterBookPrice]-bookPrice < 0.000001 && [temp getterBookPrice]-bookPrice > -0.000001 ) {
[array addObject:temp];
}
}
return array;
}
#pragma mark 按照作者来查找图书
-(NSArray *)findBookFormLibraryByAuthor:(NSString *)bookAuthor
{
NSMutableArray *array = [NSMutableArray array];
for (Book *temp in _libraryArray) {
if ([[temp getterBookAuthor] isEqualToString:bookAuthor]) {
[array addObject:temp];
}
}
return array;
}
#pragma mark 按照出版社查找图书,
-(NSArray *)findBookFormLibraryByPublicHouse:(NSString *)publicHouse
{
NSMutableArray *array = [NSMutableArray array];
for (Book *temp in _libraryArray) {
if ([[temp getterBookPublicHouse] isEqualToString:publicHouse]) {
[array addObject:temp];
}
}
return array;
}
#pragma mark 展示所有的书籍
-(void)showAllBooks
{
for (Book *temp in _libraryArray) {
NSLog(@"%@ %@ %@ %.2f",[temp getterBookName],[temp getterBookAuthor],[temp getterBookPublicHouse],[temp getterBookPrice]);
}
}
@end
// 主函数 main 函数中的实现
#import <Foundation/Foundation.h>
#import "Book.h"
#import "Library.h"
int main(int argc, const char * argv[])
{
Book *Book1 = [Book bookWithBookName:@"西游记" withBookAuthor:@"吴承恩" withBookPublicHouse:@"唐僧出版社" withBookPrice:22.3];
NSLog(@"%@",Book1);
Book *book2 = [Book bookWithBookName:@"大宋的智慧" withBookAuthor:@"孑雨" withBookPublicHouse:@"长江出版社" withBookPrice:50];
Book *book3 = [Book bookWithBookName:@"狂人日记" withBookAuthor:@"鲁迅" withBookPublicHouse:@"内蒙古出版社" withBookPrice:88];
Book *book4 = [Book bookWithBookName:@"平凡的时间" withBookAuthor:@"路瑶" withBookPublicHouse:@"盗版" withBookPrice:5];
Book *book5 = [Book bookWithBookName:@"小时代" withBookAuthor:@"郭敬明" withBookPublicHouse:@"长江文艺出版社" withBookPrice:36];
Book *book6 = [Book bookWithBookName:@"梦里花落知多少" withBookAuthor:@"郭敬明" withBookPublicHouse:@"长江文艺出版社" withBookPrice:2.5];
Book *book7 = [Book bookWithBookName:@"梦里花落知多少1" withBookAuthor:@"郭敬明" withBookPublicHouse:@"长江文艺出版社" withBookPrice:2.5];
// 创建一个图书馆
Library *library = [[Library alloc] initWithLibraryName:@"0407"];
[library addBookToLibrary:Book1];
[library addBookToLibrary:book2];
[library addBookToLibrary:book3];
[library addBookToLibrary:book4];
[library addBookToLibrary:book5];
[library addBookToLibrary:book6];
[library addBookToLibrary:book7];
[library showAllBooks];
printf("\n");
// [library deleteBookFromLibraryByBookAuthor : @"郭敬明"];
//
// [library showAllBooks];
NSArray *array = [library findBookFormLibraryByPrice:2.5];
for (Book *temp in array) {
NSLog(@"%@",temp);
}
return 0;
}