OC作业- 图书馆管理系统

图书馆管理系统
用字典类描述图书信息(书名、作者、出版社、编号等)。

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




思路: 类里创建个可变数组,图书为可变字典.把图书放到数组里;

写方法的时候先写的查找;其他功能基于查找实现

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值