---------------------- "target="blank">asp.net+android+io開發s、"target="blank">.net培訓、期待與您交流! ----------------------
、專案總結:銀行管理系統這個專案,與我們生活是息息相關的,雖然我們經常去取錢,但是很多細節沒有去重視,通過這次專案我了解到,在用物件導向來設計程式的時候,我們要把整個事情的邏輯弄清楚,然後抽取出其中的物件有幾個,根據物件與物件之間的關係,來設計應該有幾各類,各個類在設計的時候,始終要遵循「高內聚,低耦合」的原則,
物件導向的分析與設計
有三種對應型別的客戶:vip客戶,普通客戶,快速客戶,非同步隨機生成各種型別的客戶,各型別客戶在其對應視窗按順序依次辦理業務。
物件導向重要原則:誰擁有資料,誰就要有操作這些的方法。
當我要把乙個集合中的東西拿走,這個拿走的方法有返回值,返回至就是被拿走的那個傢伙
currenttimemillis
public static long currenttimemillis()
返回以毫秒為單位的當前時間。注意,當返回值的時間單位是毫秒時,值的粒度取決於基礎作業系統,並且粒度可能更大。
例如,許多作業系統以幾十毫秒為單位測量時間。
銀行管理系統
需求!銀行內有6個業務視窗,1-4號為普通視窗,5號視窗為快速視窗,6號為vip視窗。
有三種對應型別的客戶,vip客戶,普通客戶,快速客戶(辦理如交水電費,**費)
非同步隨機生成各種型別的客戶,生成各型別的客戶的概率比例:
vip客戶:普通客戶:快速客戶:1:6:3
客戶辦理業務所需時間有最大值和最小值,在該範圍內,隨機設定每個vip客戶以及普通客戶辦理業務所需時間,快速客戶辦理業務所需時間為最小值
各型別客戶在其對應視窗按順序依次辦理業務。
快速視窗和vip視窗在當前沒有屬於自己的任務的時候要為普通客戶服務。如果有屬於自己對應服務的客戶等待時,要首先為其服務
numbermanager類
//號碼管理類
//號碼發生器
public class numbermanager
//取排隊人號碼的方法
public synchronized integer fetchservicesmanager()
return null;}}
號碼管理器:
numbermachine類
public class numbermachine
public numbermanager getexpressmanager()
public numbermanager getvipmanager()
private numbermachine()
//單例模式
//餓漢式
public static numbermachine getinstans()
private static numbermachine instans=new numbermachine();
//懶漢式
/*private numbermanager instans2=null;
public static numbermanager getinstans2()
return instans2;
}*/}
服務視窗
public class serviceswindow
public void setwindowid(int windowid)
//迴圈叫號
public void stat()}}
});}
private void common() catch (interruptedexception e)
//服務花費時間=結束時間-開始時間
long costtime=system.currenttimemillis()-begintime;
system.out.println(windowname+"為第"+number+"號客戶服務完成,耗時"+(costtime/1000)+"秒");
}else catch (interruptedexception e) }}
private void express() catch (interruptedexception e)
//服務花費時間=結束時間-開始時間
long costtime=system.currenttimemillis()-begintime;
system.out.println(windowname+"為第"+number+"號客戶服務完成,耗時"+(costtime/1000)+"秒");
}else
}private void vip() catch (interruptedexception e)
//服務花費時間=結束時間-開始時間
long costtime=system.currenttimemillis()-begintime;
system.out.println(windowname+"為第"+number+"號客戶服務完成,耗時"+(costtime/1000)+"秒");
}else }}
服務型別:列舉(普通,快速,vip)
public enum customertype
return null;}}
開始模擬迴圈叫號:
public static void main(string args)
serviceswindow expresswindow=new serviceswindow();
expresswindow.settype(customertype.express);
expresswindow.stat();
serviceswindow vipwindow=new serviceswindow();
vipwindow.settype(customertype.vip);
vipwindow.stat();
//1秒鐘來乙個普通客戶
executors.newscheduledthreadpool(1).scheduleatfixedrate(
new runnable()
}, 0,
constants.common_custmer_interval_time,
timeunit.seconds
);//3秒鐘來乙個快速客戶
executors.newscheduledthreadpool(1).scheduleatfixedrate(
new runnable()
}, 0,
constants.common_custmer_interval_time*3,
timeunit.seconds);
//6秒鐘來乙個vip客戶
executors.newscheduledthreadpool(1).scheduleatfixedrate(
new runnable()
}, 0,
constants.common_custmer_interval_time*6,
timeunit.seconds);}
---------------------- "target="blank">asp.net+android+io開發s、"target="blank">.net培訓、期待與您交流! ----------------------
銀行管理系統
include include using namespace std define max 1000 struct person struct yinhang void menu void kaihu yinhang abs 開戶 else int mima cout 輸入六位數字密碼 endl ...
黑馬程式設計師 銀行例項練習
需求 銀行有乙個金庫 有兩個儲戶分別存300元,每次存100,存3次 目的 該程式是否有安全問題 如何有,怎麼解決?如何找問題 1.明確哪些 是多執行緒執行 2.明確共享資料 3.明確多執行緒 中那些語句是操作共享資料的 package test.itheima public class bankd...
黑馬程式設計師 銀行業務排程管理系統
asp.net unity開發 net培訓 期待與您交流!當面對乙個不太順手的程式的時候,先不要關心 寫寫自己的頭腦中的思維,怎麼想就怎麼寫,寫著寫著突然就變亮了。通過一段時間 銀行業務排程,根據需求做出如下銀行業務運轉關係圖 物件導向分析 設計源於生活,首先先從我們一次去銀行辦理業務談起,我們是怎...