銀行業務排程系統 面試題思考

2021-05-25 22:03:10 字數 3822 閱讀 3016

public class employee  

protected thread thread;  

public employee()  

///

/// 當前辦理業務的客戶  

///

protected customer currentcustomer;  

///

/// 獲取下乙個要處理的客戶  

///

protected virtual void getcustomer()  

protected void dobusiness()  

}  

}  

///

/// 停止工作  

///

public void stop()  

}  vip視窗和快速視窗繼承自普通視窗,僅重寫getcustomer方法即可

///

/// vip業務視窗  

///

public class vipemployee:employee  

}  

}  

///

/// 快速業務視窗  

///

public class quickemployee:employee  

} 接著, 客戶類customer

///

/// 客戶  

///

public class customer  

///

/// 客戶辦理業務所需的時間  

///

public timespan businesstime  

} 然後,利用乙個簡單工廠生產客戶customer

view plaincopy to clipboardprint?

///

/// 工廠生成類  

///

public class custome***ctory  

;  

bank.addvipcustomer(customer);  

break;  

case 1:  

case 2:  

case 3:  

case 4:  

case 5:  

case 6:  

customer = new customer ;  

bank.addnormalcustomer(customer);  

break;  

default:  

customer = new customer ;  

bank.addquickcustomer(customer);  

break;  

}  

count++;  

thread.sleep(interval);  

endtime = datetime.now;  

}  

}  

}  最好是bank類。

view plaincopy to clipboardprint?

public class bank  

///

/// 從佇列頭獲取普通客戶,如果隊列為空,返回null  

///

/// 獲取的客戶

public static customer getnormalcustomer()  

}  

///

/// 增加普通客戶到佇列尾部  

///

/// 要增加的客戶

public static void addnormalcustomer(customer customer)  

///

/// 從佇列頭獲取vip客戶,如果隊列為空,返回null  

///

/// 獲取的客戶

public static customer getvipcustomer()  

}  

///

/// 增加vip客戶到佇列尾部  

///

/// 要增加的客戶

public static void addvipcustomer(customer customer)  

///

/// 從佇列頭獲取快速客戶,如果隊列為空,返回null  

///

/// 獲取的客戶

public static customer getquickcustomer()  

}  

///

/// 增加快速客戶到佇列尾部  

///

/// 要增加的客戶

public static void addquickcustomer(customer customer)  

}  為了防止佇列異常和多執行緒衝突,簡單地封裝了對三個佇列的獲取和加入方法。

其中的info類是輸出資訊用的,比較簡單,方便日後重構用的。

class info  

:加入等待佇列,前面有人等待。", datetime.now, customer.name,queue.count);  

}  

public static void addbeginbusinessinfo(employee employee, customer customer)  

:開始為辦理業務。", datetime.now, employee.name, customer.name);  

}  

public static void addendbusinessinfo(employee employee, customer customer)  

:為辦理業務結束。", datetime.now, employee.name, customer.name);  

}  

}  class info

:加入等待佇列,前面有人等待。", datetime.now, customer.name,queue.count);

} public static void addbeginbusinessinfo(employee employee, customer customer)

:開始為辦理業務。", datetime.now, employee.name, customer.name);

} public static void addendbusinessinfo(employee employee, customer customer)

:為辦理業務結束。", datetime.now, employee.name, customer.name);

} }

最後,在函式入庫進行呼叫就行了。這樣,基本上整個系統的功能實現了。

static void main(string args)  

,  

new employee ,  

new employee ,  

new employee ,  

new vipemployee ,  

new quickemployee   

};  

thread thd = new thread(new threadstart(custome***ctory.createcustomer));  

thd.start();  

}  經過,對這個系統的分析,雖然,其中的有參考網上的資料,但是大部分都是自己深刻理解的,因此使我有很大收穫,不僅對乙個系統分析能力提高了,而且,也鍛鍊了我的**編寫能力。

面試題之銀行業務排程系統

模擬實現銀行業務排程系統邏輯,具體需求如下 銀行內有6個業務視窗,1 4號視窗為普通視窗,5號視窗為快速視窗,6號視窗為vip視窗。有三種對應型別的客戶 vip客戶,普通客戶,快速客戶 辦理如交水電費 費之類業務的客戶 非同步隨機生成各種型別的客戶,生成各型別使用者的概率比例為 vip客戶 普通客戶...

銀行業務排程系統

一 銀行業務排程系統 一 需求 模擬實現銀行業務排程系統邏輯,具體需求如下 1.銀行內有6個業務視窗,1 4號視窗為普通視窗,5號視窗為快速視窗,6號視窗為vip視窗。2.有三種對應型別的客戶 vip客戶,普通客戶,快速客戶 辦理如交水電費 費之類業務的客戶 3.非同步隨機生成各種型別的客戶,生成各...

銀行業務排程系統

今天看了張老師的銀行業務排程系統,還是感覺不可思議。開始看專案需求時感覺這裡邊的業務邏輯太複雜。沒想到還是被張老師寫了個把小時的 給搞定。雖然看完之後腦海中對於程式執行過程有些模糊,但起碼現在努力努力寫出個類似的程式不是天方夜談。張老師分析專案的時候,又通過物件導向的思想結合專案分析了下。不禁又想感...