使用Python实现银行管理系统
在本篇博文中,我们将使用Python编写一个简单的银行管理系统,该系统具有开户、查询、取款、存款、转账、锁定、解锁、存盘和退出等功能。我们将逐步分析每个功能,并提供相应的代码实现。
题目介绍
7.5 实例1: 银行管理系统
从早期的钱庄到现如今的银行,金融行业在不断地变革;随着科技的发展、计算机的普及、计算机技术在金融行业得到了广泛的应用“银行管理系统是一个集开户、查询、取款、存款、转账、锁定、解锁、退出等一系列功能的管理系统。该系统中各功能的介绍如下:
(1)开户功能:用户在ATM 机上根据提示“请输人姓名:”、“请输人身份证号:”、“请输入机号:”依次输人姓名、身份证号、手机号、预存金额、密码等信息,如果开户成功,系统随机生成一个不重复的6位数字卡号。
(2)查询功能:根据用户输人的卡号、密码查询卡中余额,如果连续 3 次输入错误密码,该卡号会被锁定。
(3)取款功能:首先根据用户输入的卡号、密码显示卡中余额,如果连续 3 次输人错误密码该卡号会被锁定;然后接收用户输人的取款金额,如果取款金额大于卡中余额或取款金额小于0系统进行提示并返回功能页面。
(4)存款功能:首先根据用户输人的卡号、密码显示卡中余额,如果连续 3 次输入错误密码该卡号会被锁定,然后接收用户输入的存款金额:如果存款金额小于 0,系统进行提示并返回功能页面。
(5)转账功能: 用户需要分别输人转出卡号与转人卡号,如果连续3次输入错误密码,卡号会被锁定。当输人转账金额后,需要用户再次确认是否执行转账功能;如果确定执行转账功能后转出卡与转入卡做相应金额计算;如果取消转账功能,则回退之前操作。
(6)锁定功能:根据输人的卡号、密码执行锁定功能,锁定之后该卡不能执行查询、取款存款、转账等操作。
(7)解锁功能:根据输入的卡号、密码执行解锁功能,解锁后的卡,能够执行查询、取款存款、转账等操作。
(8)存盘功能:执行存盘功能后,程序执行的数据会写入本地文件中
(9)退出功能:执行退出功能时,需要输人管理员的账户密码。如果输入的账号密码错误则返回功能页面;如果输人的账号密码正确,则执行存盘并退出系统。
本实例要求使用python编写程序,实现一个具有上述功能的银行管理系统
程序演示
登录
开户
查询
取款
存款
转账
锁定
解锁
存盘
退出
相关代码
开户功能
开户功能允许用户在ATM机上输入个人信息,并生成一个不重复的6位数字卡号。以下是实现开户功能的代码:
# 开户功能
def open_account():
name = input("请输入姓名:")
id_number = input("请输入身份证号:")
phone = input("请输入手机号:")
balance = float(input("请输入预存金额:"))
password = input("请输入密码:")
card_number = generate_card_number()
users[card_number] = {
"name": name,
"id_number": id_number,
"phone": phone,
"balance": balance,
"password": password
}
print("开户成功!您的卡号是:", card_number)
查询功能
查询功能允许用户通过输入卡号和密码来查询卡中的余额。如果连续3次输入错误密码,该卡号将被锁定。以下是实现查询功能的代码:
# 查询功能
def inquire():
card_number = input("请输入卡号:")
password = input("请输入密码:")
if card_number in locked_cards:
print("该卡号已被锁定,请联系银行解锁。")
return
user = users.get(card_number)
if user and user["password"] == password:
print("您的余额为:", user["balance"])
else:
print("卡号或密码错误!")
if card_number in users:
if card_number not in locked_cards:
users[card_number].setdefault("wrong_password_count", 0)
users[card_number]["wrong_password_count"] += 1
if users[card_number]["wrong_password_count"] >= 3:
locked_cards.append(card_number)
print("连续输错密码已达3次,该卡已被锁定。")
取款功能
取款功能允许用户在输入卡号和密码后显示卡中的余额,并输入取款金额。如果连续3次输入错误密码,卡号将被锁定;如果取款金额大于卡中余额或小于0,系统将提示错误并返回功能页面。以下是实现取款功能的代码:
# 取款功能
def withdraw():
card_number = input("请输入卡号:")
password = input("请输入密码:")
if card_number in locked_cards:
print("该卡号已被锁定,请联系银行解锁。")
return
user = users.get(card_number)
if user and user["password"] == password:
print("您的余额为:", user["balance"])
amount = float(input("请输入取款金额:"))
if amount > user["balance"] or amount < 0:
print("取款金额无效!")
else:
user["balance"] -= amount
print("取款成功!")
print("当前余额为:", user["balance"])
else:
print("卡号或密码错误!")
if card_number in users:
if card_number not in locked_cards:
users[card_number].setdefault("wrong_password_count", 0)
users[card_number]["wrong_password_count"] += 1
if users[card_number]["wrong_password_count"] >= 3:
locked_cards.append(card_number)
print("连续输错密码已达3次,该卡已被锁定。")
存款功能
存款功能允许用户在输入卡号和密码后显示卡中的余额,并输入存款金额。如果连续3次输入错误密码,卡号将被锁定;如果存款金额小于0,系统将提示错误并返回功能页面。以下是实现存款功能的代码:
# 存款功能
def deposit():
card_number = input("请输入卡号:")
password = input("请输入密码:")
if card_number in locked_cards:
print("该卡号已被锁定,请联系银行解锁。")
return
user = users.get(card_number)
if user and user["password"] == password:
print("您的余额为:", user["balance"])
amount = float(input("请输入存款金额:"))
if amount < 0:
print("存款金额无效!")
else:
user["balance"] += amount
print("存款成功!")
print("当前余额为:", user["balance"])
else