日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 银行业务系统程序编程写_python多线程实现代码(模拟银行服务操作流程)

發(fā)布時(shí)間:2023/12/1 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 银行业务系统程序编程写_python多线程实现代码(模拟银行服务操作流程) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.模擬銀行服務(wù)完成程序代碼

目前,在以銀行營(yíng)業(yè)大廳為代表的窗口行業(yè)中大量使用排隊(duì)(叫號(hào))系統(tǒng),該系統(tǒng)完全模擬了人群排隊(duì)全過(guò)程,通過(guò)取票進(jìn)隊(duì)、排隊(duì)等待、叫號(hào)服務(wù)等功能,代替了人們站隊(duì)的辛苦。

排隊(duì)叫號(hào)軟件的具體操作流程為:

顧客取服務(wù)序號(hào)

當(dāng)顧客抵達(dá)服務(wù)大廳時(shí),前往放置在入口處旁的取號(hào)機(jī),并按一下其上的相應(yīng)服務(wù)按鈕,取號(hào)機(jī)會(huì)自動(dòng)打印出一張服務(wù)單。單上顯示服務(wù)號(hào)及該服務(wù)號(hào)前面正在等待服務(wù)的人數(shù)。

服務(wù)員工呼叫顧客

服務(wù)員工只需按一下其柜臺(tái)上呼叫器的相應(yīng)按鈕,則顧客的服務(wù)號(hào)就會(huì)按順序的顯示在顯示屏上,并發(fā)出“叮咚”和相關(guān)語(yǔ)音信息,提示顧客前往該窗口辦事。當(dāng)一位顧客辦事完畢后,柜臺(tái)服務(wù)員工只需按呼叫器相應(yīng)鍵,即可自動(dòng)呼叫下一位顧客。

編寫(xiě)程序模擬上面的工作過(guò)程,主要要求如下:

程序運(yùn)行后,當(dāng)看到“請(qǐng)點(diǎn)擊觸摸屏獲取號(hào)碼:”的提示時(shí),只要按回車(chē)鍵,即可顯示“您的號(hào)碼是:XXX,您前面有 YYY 位”的提示,其中XXX 是所獲得的服務(wù)號(hào)碼,YYY 是在 XXX 之前來(lái)到的正在等待服務(wù)的人數(shù)。

用多線(xiàn)程技術(shù)模擬服務(wù)窗口(可模擬多個(gè)),具有服務(wù)員呼叫顧客的行為,假設(shè)每個(gè)顧客服務(wù)的時(shí)間是10000ms,時(shí)間到后,顯示“請(qǐng) XXX 號(hào)到 ZZZ 號(hào)窗口!”的提示。其中 ZZZ 是即將為客戶(hù)服務(wù)的窗口號(hào)。

代碼:

以下為 python 實(shí)現(xiàn):

from Task04_Queue.linkedQueue import LinkedQueue

import threading

import time

class LinkBankQueue(LinkedQueue):

def __init__(self):

LinkedQueue.__init__(self)

self.callNumber = 0

def getCallNumber(self):

if self.is_empty() and self.callNumber == 0:

self.callNumber = 1

else:

self.callNumber += 1

return self.callNumber

def getLength(self):

if self.is_empty():

return 0

else:

cur = self._head

len = 1

while cur != self._tail:

cur = cur.next

len += 1

return len

# 服務(wù)器

class ServiceWindow(threading.Thread):

def __init__(self):

threading.Thread.__init__(self)

self.bankQueue = None

self.lock = threading.Lock()

def service(self):

self.lock.acquire()

while True:

time.sleep(20)

try:

if not self.bankQueue.is_empty():

print('請(qǐng) %d 號(hào)到 %s 號(hào)窗口' % (self.bankQueue._head.data,threading.current_thread().name))

self.bankQueue.dequeue()

# time.sleep(10)

else:

print('隊(duì)列為空哦')

finally:

self.lock.release()

# 客戶(hù)端

if __name__ == '__main__':

bankQueue = LinkBankQueue()

windowcount = 2

serviceWindows = [None] * windowcount

threadList = [None] * windowcount

for i in range(windowcount):

serviceWindows[i] = ServiceWindow()

serviceWindows[i].bankQueue = bankQueue

threadList[i] = threading.Thread(name=(i + 1),target=serviceWindows[i].service,args=())

threadList[i].start()

while True:

input('請(qǐng)點(diǎn)擊觸摸屏獲取號(hào)碼:')

callNumber = bankQueue.getCallNumber()

if bankQueue != None:

print('您的號(hào)碼是:%d,您前面有 %d 位' % (callNumber,bankQueue.getLength()))

bankQueue.enqueue(callNumber)

else:

print('您的號(hào)碼是:%d,您前面有 0 位' % (callNumber))

結(jié)果截圖:

總結(jié)

以上所述是小編給大家介紹的python多線(xiàn)程實(shí)現(xiàn)代碼(模擬銀行服務(wù)操作流程),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!

如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

總結(jié)

以上是生活随笔為你收集整理的python 银行业务系统程序编程写_python多线程实现代码(模拟银行服务操作流程)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。