日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python實現銀行實戰系統

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

本文實例為大家分享了python實現銀行實戰系統的具體代碼,供大家參考,具體內容如下

先附上源代碼:

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

main.py的源代碼

'人類名:User屬性:姓名 身份證號 電話號 卡行為:卡類名:Card屬性:卡號 密碼 余額行為:提款機類名:ATM屬性:用戶字典行為:開戶 查詢 取款 存款 轉賬 改密 鎖定 解密 補卡 銷戶 退出管理員類名:Admin屬性:行為:管理員界面 管理員驗證 系統功能界面'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 == '轉賬': 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(): # 將當前系統中的用戶信息保存到文件中 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 # 設置倒計時時間 timeflush = 0.25 # 設置屏幕刷新的間隔時間 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('* 轉 賬(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 # 能執行到這里說明賬戶密碼正確??! 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('請輸入預存儲金額:')) if prestoreMoney < 0: print('預存儲金額有誤!!開戶失敗') return -1 onePasswd = input('請設置密碼:') # 驗證密碼 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('密碼輸入錯誤!!該卡已被鎖定??!請解鎖后在進行其他操作!') 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('該卡已被鎖定??!請解鎖后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤!!該卡已被鎖定?。≌埥怄i后在進行其他操作!') 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('該卡已被鎖定?。≌埥怄i后在進行其他操作!') return -1 # 驗證密碼 if not self.checkPasswd(user.card.cardPasswd): print('密碼輸入錯誤??!該卡已被鎖定??!請解鎖后在進行其他操作!') user.card.cardLock = True return -1 # 進行到這一步說明卡號信息都正確,進行存款操作 theMoney = int(input('請輸入您需要存款的金額:')) if theMoney < 0: print('您輸入金額有誤!!') else: user.card.cardMoney += theMoney print('存款成功?。?余額為:%d' % user.card.cardMoney) # 轉賬 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定?。≌埥怄i后在進行其他操作!') user.card.cardLock = True return -1 # 到這里說明卡號信息正確,進行轉賬操作 theOtherCardId = input('請輸入您需要轉賬的卡號:') # 驗證是否存在該卡號 otheruser = self.allUsers.get(theOtherCardId) if not otheruser: print('該卡號不存在?。∞D賬失敗') return -1 if otheruser.card.cardLock: print('該卡已被鎖定?。?) return -1 theOtherCardName = input('請輸入您需要轉賬人的姓名:') # 驗證轉賬人的姓名是否正確 if otheruser.name != theOtherCardName: print('轉賬人姓名輸入錯誤') return -1 print('您的賬戶為%s 您的余額為%d' % (user.card.cardId, user.card.cardMoney)) # 開始轉賬 theMoney = int(input('請輸入您需要轉賬的金額:')) if theMoney < 0: print('您輸入金額有誤!!') else: user.card.cardMoney -= theMoney otheruser.card.cardMoney += theMoney print('轉賬成功!!您的余額為%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('該卡已被鎖定?。≌埥怄i后在進行其他操作!') 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('該卡沒有被鎖定?。o需解鎖') 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('密碼輸入錯誤?。≡摽ㄒ驯绘i定!!請解鎖后在進行其他操作!') 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('密碼輸入錯誤?。≡摽ㄒ驯绘i定??!請解鎖后在進行其他操作!') 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文件,否則會產生無法啟動程序的bug,這個筆者也不知道該如何改進亂碼現象,希望讀者能優化

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

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

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

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

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

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

ok,完成了

運行結果:

python實現銀行實戰系統

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区在线视频| 午夜亚洲一区| 国产午夜久久| 色婷婷狠狠五月综合天色拍| 欧美韩一区二区| 国产九一精品| 国产精品二区影院| 国产乱子精品一区二区在线观看 | 日韩av中文字幕一区| 欧美日韩视频一区二区三区| 日韩精品首页| 久久三级视频| 久久精品青草| 午夜国产精品视频免费体验区| 九一国产精品| 天堂成人免费av电影一区 | 免费视频一区二区三区在线观看 | 精品丝袜在线| 不卡一区2区| 婷婷综合激情| 久久久水蜜桃av免费网站| 国产日韩免费| 日韩中文字幕91| 色婷婷综合网| 久久久久久久久久久9不雅视频| 日韩中文在线电影| 午夜国产一区二区| 男人操女人的视频在线观看欧美| 亚洲毛片网站| 欧美a一区二区| 成人久久一区| 亚洲精华国产欧美| 综合五月婷婷| 黄色网一区二区| 国产一区导航| 国产精品www994| 国产一区清纯| 国产伦乱精品| re久久精品视频| 国产精品主播| 国产精品毛片在线| 国产精品v日韩精品v欧美精品网站| 深夜福利视频一区二区| 自拍自偷一区二区三区| 精品国产一区二区三区2021| 国产精品hd| 日韩欧美少妇| 久久精品不卡| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品毛片| 91福利精品在线观看| 国产福利亚洲| 99久久夜色精品国产亚洲1000部| 婷婷亚洲五月| 91成人在线网站| 正在播放日韩精品| 夜夜精品视频| 国产精品中文字幕亚洲欧美| 91一区二区三区四区| 欧美日韩亚洲在线观看| 亚洲欧美在线综合| 精品国产精品国产偷麻豆 | 色8久久久久| 国产日韩三级| 国产精品成人a在线观看| 亚洲国产专区校园欧美| 日本欧美一区二区| 日本久久精品| 欧美中文日韩| 成人综合一区| 日韩中文字幕无砖| 色老板在线视频一区二区| 日韩av一区二| 日韩精品网站| 欧美片网站免费| 中文亚洲免费| 在线天堂资源www在线污| 亚洲精品高潮| 黄色精品网站| 日韩大片在线观看| 国产欧美日韩一区二区三区在线| 欧美日韩黑人| 国产资源在线观看入口av| 日本高清久久| 在线观看一区| 中文国产一区| 亚洲激情中文| 国产亚洲一区二区手机在线观看 | 免费在线欧美视频| 久久人人88| 久久蜜桃精品| 国产综合色区在线观看| 麻豆精品在线观看| 日韩av成人高清| 久久午夜视频| 亚洲深夜福利| 欧美亚洲精品在线| 亚洲成人二区| 久久久夜夜夜| 性欧美69xoxoxoxo| 激情婷婷久久| 九九综合九九| 性欧美69xoxoxoxo| 亚洲精品一区三区三区在线观看| 国产精品毛片久久| 在线人成日本视频| 天堂日韩电影| 成人在线视频免费看| 国产精品亚洲综合在线观看| 欧美一区久久久| 国产精品激情| 日韩av一级片| 日韩在线播放一区二区| 久久视频国产| 免费观看在线综合| 亚洲精品麻豆| 久久99久久久精品欧美| 国产精东传媒成人av电影| 男人操女人的视频在线观看欧美| 午夜精品成人av| 麻豆精品在线视频| 日本韩国欧美超级黄在线观看| 亚洲手机在线| 国产欧美在线| 久久国际精品| 欧美色综合网| 欧美三级第一页| 免费一级欧美片在线观看网站| 午夜精品成人av| 亚洲精品日本| 日韩精品电影| 亚洲精品乱码日韩| 久久一区精品| 日韩高清成人| 免费av一区| 欧美日韩国产综合网| 亚洲一区黄色| 欧美亚洲二区| 在线看片国产福利你懂的| 欧美伊人影院| 99亚洲精品| caoporn视频在线| 亚洲+小说+欧美+激情+另类| 精品深夜福利视频| 日韩专区视频网站| 欧美不卡高清| 97精品国产| 日韩欧美四区| 欧美成人综合| 日韩久久精品| 精品欠久久久中文字幕加勒比| 美国三级日本三级久久99| 色欧美自拍视频| 国产精品videosex极品| 在线精品福利| 亚洲欧美日韩高清在线| 日韩av二区| 国产极品嫩模在线观看91精品| 亚洲福利久久| 日韩av一区二区在线影视| 亚洲欧洲另类| 99久久婷婷| 91偷拍一区二区三区精品| 91精品视频一区二区| 视频一区免费在线观看| 美女网站一区| 国产成人精品三级高清久久91| 亚洲资源在线| 亚洲精品第一| 日韩精品国产欧美| 日本91福利区| 国产欧美二区| 国产精品国码视频| 欧美激情久久久久久久久久久| 91成人精品观看| 久久激五月天综合精品| 欧美精品影院| 精品视频一二| 精品国产一区二区三区噜噜噜| 老司机精品视频在线播放| 国产九一精品| 福利在线免费视频| 久久精品电影| 石原莉奈在线亚洲三区| 日韩高清国产一区在线| 国产精品调教视频| 国产精品久久久久久久免费观看| 三级精品视频| 亚洲欧洲美洲国产香蕉| 欧美另类中文字幕| 精品视频在线观看网站| 久久婷婷av| 婷婷久久免费视频| 婷婷综合电影| 麻豆国产精品777777在线| 超级白嫩亚洲国产第一| 香蕉久久国产| 欧美aaaaaa午夜精品| 久久久久国产精品一区二区| 一区二区国产精品|