用oc去解决简单的汽车租借问题

对于车辆租借问题,首先要有的就是确定 车辆的基本属性有哪些,有借出去就得能添加,再这,要清楚解决这个问题需要创建多少个类。

下面我们一步一步来分析:基本上的框架就是字典包含字典包含数组包含字典

       如果你管理一个租车公司的话,得有一个车辆的类,定义为car,在car里面创建一个对象就为*_car,再者肯定对车辆的好坏分几个类。

        1.假设我们把车辆一共分为三个类,分别是:A类,也就是好车;B类代表中等车,C类代表低等车,那么我们就得先创建三个类:bigger,middle,lower.

        2.就得为车增加属性了,我是定义了车的品种,型号,车牌号,租金。代码如下:

                               @property(nonatomic,strong)NSString *brand;

            @property(nonatomic,strong)NSString *model;

            @property(nonatomic,strong)NSString *carID;

            @property(nonatomic,strong)NSNumber *price;

   3.自定义一下init函数;

-(instancetype)initWithBrand:(NSString *)b andModel:(NSString *)m andID:(NSString *)i andPrice:(NSNumber *)p

{

    self=[super init];

    if (self) {

        _brand=b;

        _model=m;

        _carID=i;

        _price=p;

    }

    return self;

}

  3.既然创建完了类,就得声明你要干什么了。首先是添加一个车:

      

-(void)addCarWithType:(NSString *)t;//声明一个方法(t为车的品种)

    然后去实现这个方法:

    获取所有的车

    NSMutableDictionary *file_dic=[NSMutableDictionary dictionaryWithContentsOfFile:File_Path_Car];。

    NSDictionary *type_dic=[file_dic valueForKey:t];

    得到某个分类下面的所有的车:

    NSMutableDictionary *m_type_dic=[NSMutableDictionarydictionaryWithDictionary:type_dic];

    获取所有的品牌:

    NSArray *key_array=[m_type_dic allKeys];

    1).判断要添加的车在数据库里面是不是存在:循环找相同品牌,找到后进入for循环进行车牌判断,没有的话for循环结束后增加把查找的车添加进数据库。

     for (int i=0; i<key_array.count; i++) {

        NSString *key=[key_array objectAtIndex:i];

     查找相同品牌的所有车牌号

        if ([key isEqualToString:_car.brand]) {

            NSArray *cars_array = [m_type_dic valueForKey:key];

    2). 判断车牌号码

        for (int j=0; j<cars_array.count; j++) {

                NSDictionary *car_dic=[cars_arrayobjectAtIndex:j];

                if ([[car_dic valueForKey:@"id"]isEqualToString:_car.carID]) {

                    NSLog(@"%@存在了",_car.carID);

                    return;

                }

            }

       for循环结束了,意味着没有这个车牌号,可以添加这款车
     NSMutableArray *m_cars_array=[ NSMutableArray  arrayWithArray:cars_array];

            NSDictionary *add_dic=[NSDictionary dictionaryWithObjects:@[_car.model,_car.carID,_car.price]forKeys:@[@"model",@"id",@"price"]];

            [m_cars_array addObject:add_dic];

            

            [m_type_dic setObject:m_cars_array forKey:key];

            

            [file_dic setObject:m_type_dic forKey:t];

            BOOL isOk = [file_dic writeToFile:File_Path_Caratomically:YES];

            if (isOk) {

                NSLog(@"添加%@成功",_car.model);

            }

            return;

        }

    }

    到这里,如果没有进入大的for1 循环,就证明没有这个品种的车,直接添加品种以及车牌号

    NSDictionary *add_dic=[NSDictionarydictionaryWithObjects:@[_car.model,_car.carID,_car.price]forKeys:@[@"model",@"id",@"price"]];

    NSArray *add_array=[NSArray arrayWithObject:add_dic];

    [m_type_dic setObject:add_array forKey:_car.brand];

    [file_dic setObject:m_type_dic forKey:t];

    BOOL isOk=[file_dic writeToFile:File_Path_Caratomically:YES];

    if (isOk) {

        NSLog(@"添加%@成功",_car.model);

    }

}


       4.到这里就代表增加的代码我们已经写完了,然后定义一个车的品种,型号以及租金,让这个车去调用以上的方法就可以添加了,当然,你也可以直接在这个类里直接调用,代码如下:

     _car=car;

   if ([car isKindOfClass:[Bigger class]]) {

        [self addCarWithType:@"A"];

    }

    else if ([car isKindOfClass:[Middle class]])

    {

        [self addCarWithType:@"B"];

    }

    else

    {

        [self addCarWithType:@"C"];

    }

   }

  5.如何去删除已经借出去的车:

   1).首先确定一个你要借出去的车的车牌号,调用已经添加完了的文件

       声明一个方法

     -(void)borrowCarToPeople:(NSString *)cID

     调用已经添加完成的文件

      NSLog(@"您要租赁%@",cID);

       NSMutableDictionary *file_dic=[NSMutableDictionary            dictionaryWithContentsOfFile:File_Path_Car];

        取出车的所有分类

       NSArray *keys = [file_dic allKeys];

    for (int i=0; i<keys.count; i++) {

        NSString *key = [keys objectAtIndex:i];//A B C

        NSDictionary *type_dic = [file_dic valueForKey:key];

        NSMutableDictionary *m_type_dic=[NSMutableDictionary       dictionaryWithDictionary:type_dic];

     然后是所有的品牌,某一款品牌

    NSArray *key_array = [m_type_dic allKeys];

        for (int j=0; j<key_array.count; j++) {

            NSString *car_key=[key_array objectAtIndex:j];//audi,benz

            NSArray *car_array=[m_type_dic valueForKey:car_key];

            NSMutableArray *m_car_array=[NSMutableArrayarrayWithArray:car_array];

      利用车牌号去找到这辆车,比较车牌号是不是跟你需要的车牌号一样,找到了之后借走
     for  ( int  k= 0 ; k<m_car_array. count ; k++) {
       NSDictionary *end_dic=[m_car_array  objectAtIndex:k];

      BOOL isEqual = [[end_dicvalueForKey:@"id"]isEqualToString:cID];

                if (isEqual) {

                    NSLog(@"找到了");

           [m_car_array removeObject:end_dic];

       如果借走了这辆车之后这个品种没有了,直接删除这个品种

           if (m_car_array.count==0) {

                        [m_type_dic removeObjectForKey:car_key];

                    }

                    else{

                    [m_type_dic setObject:m_car_arrayforKey:car_key];

                    }

                    [file_dic setObject:m_type_dic forKey:key];

                    BOOL isOK = [file_dic writeToFile:File_Path_Car atomically:YES];

                    if (isOK) {

                        NSLog(@"租赁成功");

                    }

                    return;

                }

            }

        }

        

    }

   如果数据库里面没有的话直接说明没有找到
     NSLog ( @" 没找到 " );

到这里,一个车辆的租借系统就差不多完成了,然后在完善一下就可以了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值