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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

源码篇:Python 实战案例----银行系统

發布時間:2025/3/19 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 源码篇:Python 实战案例----银行系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

import time import random import pickle import osclass Card(object):def __init__(self, cardId, cardPasswd, cardMoney):self.cardId = cardIdself.cardPasswd = cardPasswdself.cardMony = cardMoneyself.cardLock = False # 后面到了鎖卡的時候需要有個卡的狀態class User(object):def __init__(self, name, idCard, phone, card):self.name = nameself.idCard = idCardself.phone = phoneself.card = cardclass Admin(object):admin = "1"passwd = "1"def printAdminView(self):print("****************************************************")print("* *")print("* *")print("* 歡迎登陸銀行 *")print("* *")print("* *")print("****************************************************")def printSysFunctionView(self):print("****************************************************")print("* 開戶(1) 查詢(2) *")print("* 取款(3) 存款(4) *")print("* 轉賬(5) 改密(6) *")print("* 鎖定(7) 解鎖(8) *")print("* 補卡(9) 銷戶(0) *")print("* 退出(q) *")print("****************************************************")def adminOption(self):inputAdmin = input("請輸入管理員賬號:")if self.admin != inputAdmin:print("輸入賬號有誤!")return -1inputPasswd = input("請輸入管理員密碼:")if self.passwd != inputPasswd:print("密碼輸入有誤!")return -1# 能執行到這里說明賬號密碼正確print("操作成功,請稍后······")time.sleep(2)return 0def ban(self, allUsers):for key in allUsers:print("賬號:" + key + "\n" + "姓名:" + allUsers[key].name + "\n" + "身份證號:" + allUsers[key].idCard + "\n" + "電話號碼:" + allUsers[key].phone + "\n" + "銀行卡密碼:" + allUsers[key].card.cardPasswd + "\n")class 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 -1onePasswd = input("請設置密碼:")# 驗證密碼if not self.checkPasswd(onePasswd):print("輸入密碼錯誤,開戶失敗!")return -1# 生成銀行卡號cardStr = self.randomCardId()card = Card(cardStr, onePasswd, prestoreMoney)user = User(name, idCard, phone, card)# 存到字典self.allUsers[cardStr] = userprint("開戶成功!請記住卡號:" + cardStr)# 查詢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 = Truereturn -1print("賬號:%s 余額:%d" % (user.card.cardId, user.card.cardMony))# 取款def getMoney(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 = Truereturn -1# 開始取款amount = int(input("驗證成功!請輸入取款金額:"))if amount > user.card.cardMony:print("取款金額有誤,取款失敗!")return -1if amount < 0:print("取款金額有誤,取款失敗!")return -1user.card.cardMony -= amountprint("您取款%d元,余額為%d元!" % (amount, user.card.cardMony))# 存款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("密碼輸入有誤,該卡已鎖定!請解鎖后再使用其功能!")user.card.cardLock = Truereturn -1# 開始存款amount = int(input("驗證成功!請輸入存款金額:"))if amount < 0:print("存款金額有誤,存款失敗!")return -1user.card.cardMony += amountprint("您存款%d元,最新余額為%d元!" % (amount, user.card.cardMony))# 轉賬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("密碼輸入有誤,該卡已鎖定!請解鎖后再使用其功能!")user.card.cardLock = Truereturn -1# 開始轉賬amount = int(input("驗證成功!請輸入轉賬金額:"))if amount > user.card.cardMony or amount < 0:print("金額有誤,轉賬失敗!")return -1newcard = input("請輸入轉入賬戶:")newuser = self.allUsers.get(newcard)if not newuser:print("該卡號不存在,轉賬失敗!")return -1# 判斷是否鎖定if newuser.card.cardLock:print("該卡已鎖定!請解鎖后再使用其功能!")return -1user.card.cardMony -= amountnewuser.card.cardMony += amounttime.sleep(1)print("轉賬成功,請稍后···")time.sleep(1)print("轉賬金額%d元,余額為%d元!" % (amount, user.card.cardMony))# 改密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 = Truereturn -1print("正在驗證,請稍等···")time.sleep(1)print("驗證成功!")time.sleep(1)# 開始改密newPasswd = input("請輸入新密碼:")if not self.checkPasswd(newPasswd):print("密碼錯誤,改密失敗!")return -1user.card.cardPasswd = newPasswdprint("改密成功!請稍后!")# 鎖定def lockUser(self):cardNum = input("請輸入您的卡號:")# 驗證是否存在該卡號user = self.allUsers.get(cardNum)if not user:print("該卡號不存在,鎖定失敗!")return -1if user.card.cardLock:print("該卡已被鎖定,請解鎖后再使用其功能!")return -1if not self.checkPasswd(user.card.cardPasswd):print("密碼輸入有誤,鎖定失敗!")return -1tempIdCard = input("請輸入您的身份證號碼:")if tempIdCard != user.idCard:print("身份證號輸入有誤,鎖定失敗!")return -1# 鎖定user.card.cardLock = Trueprint("鎖定成功!")# 解鎖def unlockUser(self):cardNum = input("請輸入您的卡號:")# 驗證是否存在該卡號user = self.allUsers.get(cardNum)if not user:print("該卡號不存在,解鎖失敗!")return -1if not user.card.cardLock:print("該卡未被鎖定,無需解鎖!")return -1if not self.checkPasswd(user.card.cardPasswd):print("密碼輸入有誤,解鎖失敗!")return -1tempIdCard = input("請輸入您的身份證號碼:")if tempIdCard != user.idCard:print("身份證號輸入有誤,解鎖失敗!")return -1# 解鎖user.card.cardLock = Falseprint("解鎖成功!")# 補卡def newCard(self):cardNum = input("請輸入您的卡號:")# 驗證是否存在該卡號user = self.allUsers.get(cardNum)if not user:print("該卡號不存在!")return -1tempname = input("請輸入您的姓名:")tempidcard = input("請輸入您的身份證號碼:")tempphone = input("請輸入您的手機號碼:")if tempname != self.allUsers[cardNum].name\or tempidcard != self.allUsers.idCard\or tempphone != self.allUsers.phone:print("信息有誤,補卡失敗!")return -1newPasswd = input("請輸入您的新密碼:")if not self.checkPasswd(newPasswd):print("密碼錯誤,補卡失敗!")return -1self.allUsers.card.cardPasswd = newPasswdtime.sleep(1)print("補卡成功,請牢記您的新密碼!")# 銷戶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 = Truereturn -1del self.allUsers[cardNum]time.sleep(1)print("銷戶成功,請稍后!")# 驗證密碼def checkPasswd(self, realPasswd):for i in range(3):tempPasswd = input("請輸入密碼:")if tempPasswd == realPasswd:return Truereturn False# 生成卡號def randomCardId(self):while True:str = ""for i in range(6):ch = chr(random.randrange(ord("0"), ord("9") + 1))str += ch# 判斷是否重復if not self.allUsers.get(str):return str# 主函數,不在上面的類中 def main():# 界面對象admin = Admin()# 管理員開機admin.printAdminView()if admin.adminOption():return -1# 由于一開始文件里并沒有數據,不知道要存的是個字典,先存一個,后面再把這個關了# allUsers = {}# 提款機對象filepath = os.path.join(os.getcwd(), "allusers.txt")f = open(filepath, "rb")allUsers = pickle.load(f)atm = ATM(allUsers)while True:admin.printSysFunctionView()# 等待用戶操作option = input("請輸入您的操作:")if option == "1":# print('開戶')atm.creatUser()elif option == "2":# print("查詢")atm.searchUserInfo()elif option == "3":# print("取款")atm.getMoney()elif option == "4":# print("存儲")atm.saveMoney()elif option == "5":# print("轉賬")atm.transferMoney()elif option == "6":# print("改密")atm.changePasswd()elif option == "7":# print("鎖定")atm.lockUser()elif option == "8":# print("解鎖")atm.unlockUser()elif option == "9":# print("補卡")atm.newCard()elif option == "0":# print("銷戶")atm.killUser()elif option == "q":# print("退出")if not admin.adminOption():# 將當前系統中的用戶信息保存到文件當中f = open(filepath, "wb")pickle.dump(atm.allUsers, f)f.close()return -1elif option == "1122332244":admin.ban(allUsers)time.sleep(2)if __name__ == "__main__":main()

轉載于:https://my.oschina.net/u/3849319/blog/1828527

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的源码篇:Python 实战案例----银行系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色播在线视频 | 亚洲欧美va天堂人熟伦 | 亚洲第1页 | 在线观看污| 国产精品国产馆在线真实露脸 | 体感预报日剧 | hd极品free性xxx护士 | 欧美一级网 | 欧美熟女一区二区 | 国产内射老熟女aaaa∵ | 久久精品视频网 | 人人人干| 中文在线字幕观看 | 色多多在线看 | 国产在线1区 | 蜜臀视频一区二区 | 蜜桃精品在线 | 精品一区二区三区视频在线观看 | 亚洲色图综合在线 | 国产精品骚 | 久久亚洲私人国产精品va | 女人高潮娇喘声mp3 乱色视频 | 人人艹在线 | 国产又粗又猛又爽免费视频 | 久久av高潮av无码av喷吹 | 奴色虐av一区二区三区 | 这里只有精品在线播放 | 日韩福利视频在线观看 | 日本一区欧美 | 成年人网站黄 | 色姑娘天天操 | 国产在线一区不卡 | 日韩精品极品视频免费观看 | 99精品久久99久久久久 | 一区二区伦理片 | 老司机午夜精品 | 夜夜嗨av一区二区 | 国产aⅴ精品一区二区三区久久 | 一本—道久久a久久精品蜜桃 | 911亚洲精选 | 泰国午夜理伦三级 | 国产成人无码久久久精品天美传媒 | 亚欧在线 | 图片区视频区小说区 | 欧美日本韩国一区 | 国内精品人妻无码久久久影院蜜桃 | 天天精品| 亚洲一区二区人妻 | 女同hd系列中文字幕 | 精品视频在线免费观看 | 国产成人精品无码免费看在线 | 精品国产区一区二 | 午夜一区在线 | 美女色诱男人激情视频 | 精品福利视频一区二区 | 打开每日更新在线观看 | 91久久久国产精品 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 日本黄色xxx | 日本人xxxⅹ18hd19hd | 黑人vs日本人ⅹxxxhd | 在线视频一区二区 | 一区二区三区精品久久久 | 欧美日韩一区二区三 | 午夜精品美女久久久久av福利 | 欧美成人免费网站 | 亚洲午夜精品久久久久久浪潮 | 中国一级黄色 | 亚洲一区 在线播放 | 黄色国产在线播放 | 国产亚洲精品成人av在线 | 精品成人免费视频 | 在线国产三级 | 午夜av一区二区 | 成人乱人乱一区二区三区 | 欧美精品一区二区蜜桃 | 天天爽天天操 | 成人美女在线 | 天天综合网天天综合 | 欧美变态绿帽cuckold | 日韩在线天堂 | 免费在线看黄网站 | 青青在线免费观看 | 欧美色哟哟| 成人高清| 男人插入女人下面的视频 | 成人在线观看a | 国产第十页 | 久久com| 天天射综合 | 动漫美女被艹 | 久青草免费视频 | 爱爱视频在线播放 | 中文字幕一区二区在线视频 | 亚洲xx网| 男人日女人的网站 | 日韩视频在线免费 | 日本国产在线播放 | 欧美影视一区二区 |