用oc去解決簡單的汽車租借問題

2021-07-06 09:54:29 字數 3370 閱讀 1795

對於車輛租借問題,首先要有的就是確定 車輛的基本屬性有哪些,有借出去就得能新增,再這,要清楚解決這個問題需要建立多少個類。

下面我們一步一步來分析:基本上的框架就是字典包含字典包含陣列包含字典

如果你管理乙個租車公司的話,得有乙個車輛的類,定義為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

returnself; }

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=[nsmutabledictionary

dictionarywithdictionary

:type_dic];

獲取所有的品牌:

nsarray *key_array=[m_type_dic allkeys];

1).判斷要新增的車在資料庫裡面是不是存在:迴圈找相同品牌,找到後進入for迴圈進行車牌判斷,沒有的話for迴圈結束後增加把查詢的車新增進資料庫。

for(

inti=

0; icount

; i++)

}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_car

atomically:yes];

if (isok)

return;}}

到這裡,如果沒有進入大的for1 迴圈,就證明沒有這個品種的車,直接新增品種以及車牌號

nsdictionary *add_dic=[nsdictionary

dictionarywithobjects:@[

_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_car

atomically:yes];

if (isok)

}4.到這裡就代表增加的**我們已經寫完了,然後定義乙個車的品種,型號以及租金,讓這個車去呼叫以上的方法就可以新增了,當然,你也可以直接在這個類裡直接呼叫,**如下:

_car

=car;

if ([car iskindofclass:[bigger

class]])

else

if ([car iskindofclass:[middle

class]])

else }

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; icount; i++)

else

[file_dic setobject:m_type_dic forkey:key];

bool isok = [file_dic writetofile:file_path_car

atomically:yes];

if (isok)

return;}}

}}如果資料庫裡面沒有的話直接說明沒有找到

nslog(@"

沒找到"

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

用列舉法解決簡單的問題

有了迴圈控制結構,就可以實現一種典型的解決問題的方法 列舉法。列舉法就是對可能是解的眾多候選者按某種順序進行逐一列舉和檢驗,從中找出符合要求的候選解作為問題的解。乙個關於我國四大湖的問題 四個同學有以下表述 甲 洞庭湖最大,洪澤湖最小,潘陽湖第三。乙 洪澤湖最大,洞庭湖最小,潘陽湖第 二 太湖第三。...

用科技手段,去解決生產力的問題

工作之餘,看了某前輩的文章,他提出的一些觀點很受益,摘錄一些觀點 1 it投入必須要前期規劃好,捨得投入,當真正作為乙個合格快遞it的時候,必須要大膽的同老闆說出這句話 2 雲服務也是我們力求追求的結果 應對大量錯綜複雜的資料 從而實現雲計算服務 3 資訊化首先要解決的是基礎建設從無到有的問題,然後...

用二分可以簡單解決的題

二分,字面上的意思,將乙個問題分為兩個變簡的子問題,從而使問題變得簡化 引入 最大化平均值 有n個物品的重量和價值分別是wi和vi。從中選出k個物品使得單位重量的價值最大。向這些題,通常可以使用二分搜尋法就可以解決了。設 c x 可以選擇使得單位重量的價值不小於x 那麼問題可以變成求滿足c x 的最...