国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

python實現(xiàn)銀行實戰(zhàn)系統(tǒng)

瀏覽:64日期:2022-08-06 11:19:32

本文實例為大家分享了python實現(xiàn)銀行實戰(zhàn)系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

先附上源代碼:

│ admin.py 管理員界面│ alluser.txt 保存用戶信息│ atm.py 銀行的各部分操作方法(存錢取錢等等)│ card.py 定義卡的類│ main.py 主程序 while True│ user.py 用戶的類

main.py的源代碼

'人類名:User屬性:姓名 身份證號 電話號 卡行為:卡類名:Card屬性:卡號 密碼 余額行為:提款機類名:ATM屬性:用戶字典行為:開戶 查詢 取款 存款 轉(zhuǎn)賬 改密 鎖定 解密 補卡 銷戶 退出管理員類名:Admin屬性:行為:管理員界面 管理員驗證 系統(tǒng)功能界面'import osimport pickleimport adminfrom atm import ATMdef main(): # 管理員對象 admin1 = admin.Admin() # 管理員開機 admin1.printAdminView() if admin1.adminOption(): return -1 # 提款機對象 filepath = os.path.join(os.getcwd(), 'alluser.txt') f = open(filepath, 'rb') allUsers = pickle.load(f) f.close() atm = ATM(allUsers) while True: admin1.printFunctionView() # 等待用戶的操作 option = input('請輸入您的操作:') if option == '1' or option == '開戶': atm.creatUser() elif option == '2' or option == '查詢': atm.searchUserInfo() elif option == '3' or option == '取款': atm.withdrawals() elif option == '4' or option == '存款': atm.saveMoney() elif option == '5' or option == '轉(zhuǎn)賬': atm.transferMoney() elif option == '6' or option == '改密': atm.changePasswd() elif option == '7' or option == '鎖定': atm.lockUser() elif option == '8' or option == '解鎖': atm.unlockUser() elif option == '9' or option == '補卡': atm.newCard() elif option == '0' or option == '銷戶': atm.killUser() elif option == 't' or option == '退出': if not admin1.adminOption(): # 將當前系統(tǒng)中的用戶信息保存到文件中 f = open(filepath, 'wb') pickle.dump(atm.allUsers, f, 2) f.close() return -1 else: print('指令錯誤,請重新輸入?。?) admin.timeFlush()if __name__ == ’__main__’: main()

admin.py的源代碼

import timedef timeFlush(): sum = 2 # 設(shè)置倒計時時間 timeflush = 0.25 # 設(shè)置屏幕刷新的間隔時間 for i in range(0, int(sum / timeflush)): list = ['', '|', '/', '—'] index = i % 4 print('r操作成功!請稍等 {} '.format(list[index]), end='') time.sleep(timeflush)class Admin(object): admin = '1' passwd = '1' def printAdminView(self): print('*****************************************************************') print('* *') print('* *') print('* 歡迎登錄csdn銀行 *') print('* *') print('* *') print('*****************************************************************') def printFunctionView(self): print('r*****************************************************************') print('* 開 戶(1) 查 詢(2) *') print('* 取 款(3) 存 款(4) *') print('* 轉(zhuǎn) 賬(5) 改 密(6) *') print('* 鎖 定(7) 解 鎖(8) *') print('* 補 卡(9) 銷 戶(0) *') print('* 退 出(t) *') print('*******************************************************************') def adminOption(self): inputAdmin = input('請輸入管理員賬號:') if self.admin != inputAdmin: print('賬號輸入有誤??!') return -1 inputPasswd = input('請輸入管理員密碼:') if self.passwd != inputPasswd: print('密碼輸入有誤?。?) return -1 # 能執(zhí)行到這里說明賬戶密碼正確??! timeFlush() return 0

user.py的源代碼

class User(object): def __init__(self, name, idCard, phone, card): self.name = name self.idCard = idCard self.phone = phone self.card = card

card.py的源代碼

class Card(object): def __init__(self, cardId, cardPasswd, cardMoney): self.cardId = cardId self.cardPasswd = cardPasswd self.cardMoney = cardMoney self.cardLock = False

atm.py的源代碼

import randomfrom card import Cardfrom user import Userclass ATM(object): def __init__(self, allUsers): self.allUsers = allUsers # 開戶 def creatUser(self): # 向用戶字典中添加一對鍵值對(卡號 -- 用戶) name = input('請輸入您的姓名:') idCard = input('請輸入您的身份證號碼:') phone = input('請輸入您的電話號碼:') prestoreMoney = int(input('請輸入預(yù)存儲金額:')) if prestoreMoney < 0: print('預(yù)存儲金額有誤!!開戶失敗') return -1 onePasswd = input('請設(shè)置密碼:') # 驗證密碼 if not self.checkPasswd(onePasswd): print('密碼輸入錯誤??!開戶失敗') return -1 # 生成隨機的卡號 cardId = self.randomCardId() # 生成卡的信息 card = Card(cardId, onePasswd, prestoreMoney) # 生成用戶信息 user = User(name, idCard, phone, card) # 存到字典里面 self.allUsers[cardId] = user print('您的卡號是%s, 請牢記卡號!!' % cardId) # 查詢 def searchUserInfo(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在??!查詢失敗') return -1 if user.card.cardLock: print('該卡已被鎖定??!請解鎖后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤?。≡摽ㄒ驯绘i定!!請解鎖后在進行其他操作!') user.card.cardLock = True return -1 print('賬號:%s 余額:%d' % (user.card.cardId, user.card.cardMoney)) # 取款 def withdrawals(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在?。〔樵兪?) return -1 if user.card.cardLock: print('該卡已被鎖定?。≌埥怄i后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤??!該卡已被鎖定??!請解鎖后在進行其他操作!') user.card.cardLock = True return -1 # 進行到這一步說明卡號信息都正確,進行取款操作 theMoney = int(input('請輸入您需要取款的金額:')) if theMoney > user.card.cardMoney: print('余額不足!!') return -1 elif theMoney < 0: print('您輸入金額有誤!!') else: user.card.cardMoney -= theMoney print('取款成功?。?余額為:%d' % user.card.cardMoney) # 存款 def saveMoney(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在??!查詢失敗') return -1 if user.card.cardLock: print('該卡已被鎖定??!請解鎖后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤!!該卡已被鎖定?。≌埥怄i后在進行其他操作!') user.card.cardLock = True return -1 # 進行到這一步說明卡號信息都正確,進行存款操作 theMoney = int(input('請輸入您需要存款的金額:')) if theMoney < 0: print('您輸入金額有誤!!') else: user.card.cardMoney += theMoney print('存款成功!! 余額為:%d' % user.card.cardMoney) # 轉(zhuǎn)賬 def transferMoney(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在??!查詢失敗') return -1 if user.card.cardLock: print('該卡已被鎖定??!請解鎖后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤!!該卡已被鎖定?。≌埥怄i后在進行其他操作!') user.card.cardLock = True return -1 # 到這里說明卡號信息正確,進行轉(zhuǎn)賬操作 theOtherCardId = input('請輸入您需要轉(zhuǎn)賬的卡號:') # 驗證是否存在該卡號 otheruser = self.allUsers.get(theOtherCardId) if not otheruser: print('該卡號不存在!!轉(zhuǎn)賬失敗') return -1 if otheruser.card.cardLock: print('該卡已被鎖定??!') return -1 theOtherCardName = input('請輸入您需要轉(zhuǎn)賬人的姓名:') # 驗證轉(zhuǎn)賬人的姓名是否正確 if otheruser.name != theOtherCardName: print('轉(zhuǎn)賬人姓名輸入錯誤') return -1 print('您的賬戶為%s 您的余額為%d' % (user.card.cardId, user.card.cardMoney)) # 開始轉(zhuǎn)賬 theMoney = int(input('請輸入您需要轉(zhuǎn)賬的金額:')) if theMoney < 0: print('您輸入金額有誤!!') else: user.card.cardMoney -= theMoney otheruser.card.cardMoney += theMoney print('轉(zhuǎn)賬成功??!您的余額為%d' % user.card.cardMoney) return -1 # 改密 def changePasswd(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在?。〔樵兪?) return -1 if user.card.cardLock: print('該卡已被鎖定!!請解鎖后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤??!該卡已被鎖定!!請解鎖后在進行其他操作!') user.card.cardLock = True return -1 # 下面進行改密操作 newPasswd = input('請輸入新密碼:') if newPasswd == user.card.cardPasswd: print('新舊密碼不能一致!!操作失敗') return -1 # 驗證密碼 if not self.checkPasswd(newPasswd): print('密碼輸入錯誤??!') return -1 user.card.cardPasswd = newPasswd print('密碼修改成功!!請牢記您的密碼') # 鎖定 def lockUser(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在??!輸入錯誤') return -1 if user.card.cardLock: print('該卡已被鎖定?。≌埥怄i后再使用其他功能') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤!!鎖定失敗') return -1 tempIdCard = input('請輸入您的身份證號碼') if tempIdCard != user.idCard: print('身份證輸入錯誤!!鎖定失敗') return -1 # 進行到這一步說明信息輸入成功,鎖定開始 user.card.cardLock = True print('鎖定成功') # 解鎖 def unlockUser(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在!!輸入錯誤') return -1 if not user.card.cardLock: print('該卡沒有被鎖定??!無需解鎖') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤!!鎖定失敗') return -1 tempIdCard = input('請輸入您的身份證號碼') if tempIdCard != user.idCard: print('身份證輸入錯誤??!鎖定失敗') return -1 # 進行到這一步說明信息輸入成功,解鎖開始 user.card.cardLock = False print('解鎖成功') # 補卡 def newCard(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在!!查詢失敗') return -1 if user.card.cardLock: print('該卡已被鎖定!!請解鎖后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤!!該卡已被鎖定??!請解鎖后在進行其他操作!') user.card.cardLock = True return -1 CardName = input('請輸入您的姓名:') # 驗證姓名是否正確 if user.name != CardName: print('姓名輸入錯誤??!') return -1 useridCard = input('請輸入您的身份證號碼:') # 驗證身份證是否正確 if user.idCard != useridCard: print('身份證號碼輸入錯誤?。?) return -1 # 進行到這一步說明信息都正確,下面進行補卡操作,只換卡號,其他信息都不換 newIdCard= self.randomCardId() self.allUsers[newIdCard] = self.allUsers.pop(user.card.cardId) user.card.cardId = newIdCard print('您的新卡號為:%s 請牢記??!' % user.card.cardId) # 銷戶 def killUser(self): cardNum = input('請輸入您的卡號:') # 驗證是否存在該卡號 user = self.allUsers.get(cardNum) if not user: print('該卡號不存在??!查詢失敗') return -1 if user.card.cardLock: print('該卡已被鎖定??!請解鎖后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤??!該卡已被鎖定??!請解鎖后在進行其他操作!') user.card.cardLock = True return -1 CardName = input('請輸入您的姓名:') # 驗證姓名是否正確 if user.name != CardName: print('姓名輸入錯誤??!') return -1 useridCard = input('請輸入您的身份證號碼:') # 驗證身份證是否正確 if user.idCard != useridCard: print('身份證號碼輸入錯誤!!') return -1 answer = input('請問您確定要銷戶嗎?確定(1) 取消(2)') if answer == '1' or answer == '確定': del self.allUsers[cardNum] print('已銷戶') return -1 elif answer == '2' or answer == '取消': print('取消成功??!') return -1 else: print('輸入錯誤??!') return -1 # 驗證密碼 def checkPasswd(self, realPasswd): for i in range(3): tempPasswd = input('請再次輸入密碼:') cardq ccardCardq)�( cardIdqh cardPasswdqh cardMoneyq cardLockq�ububs.

因為運用pickle庫,要持久化存儲用戶信息(字典),故打開讀取寫入會亂碼,第一排中的123456是卡號,其他信息全部是1,不要試圖pycharm中修改這個allUsers。txt文件,否則會產(chǎn)生無法啟動程序的bug,這個筆者也不知道該如何改進亂碼現(xiàn)象,希望讀者能優(yōu)化

如果遇到因為alluser.txt而無法運行的情況:請往下看:

因為pickle庫的原因,開始我們是要讀取這個文件的,讀的到程序順利,讀不到程序涼涼,故我們必須要在alluser.txt里面有pickle庫可以識別的源代碼。如果您是在pycharm里面復(fù)制粘貼的因為alluser.txt代碼,故pycharm會自動轉(zhuǎn)化為utf-8或者其他

我們要先把alluser.txt刪除,讓pickle庫先不讀取,創(chuàng)建一個空字典,我們先開戶,然后退出程序是會自動創(chuàng)建一個新的alluser.txt文件,會把我們剛剛創(chuàng)建好的用戶信息全部保存在txt文件中,這樣我們再恢復(fù),達到持久化保存的目的

filepath = os.path.join(os.getcwd(), 'alluser.txt') # 把之前的給注釋掉,不讓程序讀取 # f = open(filepath, 'rb') # allUsers = pickle.load(f) # f.close() # 創(chuàng)建一個新的空字典 allUsers = {} atm = ATM(allUsers)

然后我們進行開戶操作,最后退出,會自動創(chuàng)建一個全新的alluser.txt文件

filepath = os.path.join(os.getcwd(), 'alluser.txt') f = open(filepath, 'rb') allUsers = pickle.load(f) f.close() # 然后我們恢復(fù)它 # allUsers = {} atm = ATM(allUsers)

ok,完成了

運行結(jié)果:

python實現(xiàn)銀行實戰(zhàn)系統(tǒng)

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 可以免费看黄的网站 | 国产三级香港在线观看 | 国产一区二区三区四区波多野结衣 | 精品视频免费在线观看 | 成年女人毛片免费播放人 | 香蕉依依精品视频在线播放 | 成人国产在线观看 | 欧美一级看片免费观看视频在线 | 美女黄色影院 | 国产一级毛片大陆 | 日本黄色免费大片 | 国产成人高清亚洲一区久久 | 国模肉肉人体大尺度啪啪 | 国产自在自线午夜精品视频 | chinese宾馆自拍hd| 男人毛片 | 亚洲欧美日韩精品久久亚洲区色播 | 成人性动漫高清免费观看网址 | 久久99精品九九九久久婷婷 | 欧美一级毛片不卡免费观看 | 深夜福利视频网站 | 草草视频在线免费观看 | 国产福利微拍精品一区二区 | 视频在线一区二区三区 | 欧美高清在线精品一区 | 久久女厕一次看个够 | 91精品欧美一区二区三区 | 久久精品国产精品青草不卡 | 毛片a级三毛片免费播放 | 欧美不卡在线视频 | 国产思思 | 悠悠影院欧美日韩国产 | www国产91| 另类视频综合 | 女人张开腿让男人捅视频 | 男同黄网站 | 亚洲一区在线免费观看 | 久草在线观看视频 | 国产精品久久毛片蜜月 | 亚洲九九视频 | 日本一区二区在线 |