用字典類描述圖書信息(書名、作者、出版社、編號等)。
1、自定義圖書館類Library管理所有書籍。
2、圖書館可以添加、刪除、修改書籍。
圖書館在添加書籍後,爲書籍編號。
3、可以從圖書館根據書名查找書籍。
4、圖書館可以展示所有書籍清單(書名)。
5、可以從圖書館獲取所有書籍。
主函數
#import <Foundation/Foundation.h>
#import "Library.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Library *lid = [[Library alloc]init];
NSMutableDictionary *hLM = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"紅樓夢", @"bookName", @"曹雪芹", @"author", @"長江", @"press", @"01", @"number", nil];
NSMutableDictionary *sG = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"三國演義", @"bookName", @"羅貫中", @"author", @"長江", @"press", @"01", @"number", nil];
NSMutableDictionary *sHZ = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"水滸傳", @"bookName", @"施耐庵", @"author", @"長江", @"press", @"01", @"number", nil];
NSMutableDictionary *xYJ = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"西遊記", @"bookName", @"吳承恩", @"author", @"長江", @"press", @"01", @"number", nil];
NSMutableDictionary *fSB = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"封神榜", @"bookName", @"忘了", @"author", @"長江", @"press", @"01", @"number", nil];
// 添加圖書並添加編號
[lid addBook:hLM];
[lid addBook:sG];
[lid addBook:sHZ];
[lid addBook:xYJ];
[lid addBook:fSB];
[lid addBook:fSB];
// 刪除圖書(根據書名)
[lid deleteBook:@"封神榜"];
[lid deleteBook:@"封神榜"];
// 修改書名
[lid alterBookName:@"水滸傳" newName:@"忠義水滸傳"];
// 顯示所有書籍
for (NSMutableDictionary *dic in lid.tuShu) {
NSLog(@"");
for (NSString *key in dic) {
NSLog(@"%@ : %@", key, [dic objectForKey:key]);
}
}
// 根據書名進行查找
NSLog(@"--------以下是查找結果---------");
NSMutableDictionary *dicn = [lid findBookName:@"忠義水滸傳"];
for (NSString *key in dicn) {
NSLog(@"%@ : %@", key, [dicn objectForKey:key]);
}
}
return 0;
}
.h
#import <Foundation/Foundation.h>
@interface Library : NSObject
@property NSMutableArray *tuShu;
/// 添加
- (void)addBook:(NSMutableDictionary *)newBook;
/// 刪除(根據書名刪除)
- (void)deleteBook:(NSString *)bookName;
/// 修改書名
- (void)alterBookName:(NSString *)bookName newName:(NSString *)newName;
/// 查找(根據書名查找)
- (NSMutableDictionary *)findBookName:(NSString *)BookName;
@end
.m
#import "Library.h"
static int tag = 1;
@implementation Library
- (instancetype)init
{
self = [super init];
if (self) {
_tuShu = [[NSMutableArray alloc]init];
}
return self;
}
/// 添加
- (void)addBook:(NSMutableDictionary *)newBook
{
if ([self findBookName:[newBook objectForKey:@"bookName"]] == nil) {
[self.tuShu addObject:newBook];
NSNumber *b = [NSNumber numberWithInt:tag ++];
[newBook setValue:b forKey:@"number"];
NSLog(@"添加成功, %@圖書編號爲%@", [newBook objectForKey:@"bookName"], b);
} else {
NSLog(@"%@已存在,添加失敗", [newBook objectForKey:@"bookName"]);
}
}
/// 刪除(根據書名刪除)
- (void)deleteBook:(NSString *)bookName
{
if ([self findBookName:bookName] == nil) {
NSLog(@"書籍不存在");
} else {
[self.tuShu removeObject:[self findBookName:bookName]];
NSLog(@"書籍已刪除");
}
}
/// 查找(根據書名查找)
- (NSMutableDictionary *)findBookName:(NSString *)BookName
{
for (NSMutableDictionary *dic in _tuShu) {
if ([dic objectForKey:@"bookName"] == BookName) {
return dic;
}
}
return nil;
}
/// 修改書名
- (void)alterBookName:(NSString *)bookName newName:(NSString *)newName
{
[[self findBookName:bookName] setValue:newName forKey:@"bookName"];
}
@end
思路: 類裏創建個可變數組,圖書爲可變字典.把圖書放到數組裏;
寫方法的時候先寫的查找;其他功能基於查找實現