用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(@"沒找到");

到這裏,一個車輛的租借系統就差不多完成了,然後在完善一下就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章