内容:综合应用Python程序设计知识,设计与实现一款简单的手机银行系统。具体功能要求可参考以下几点: (1)登录功能,使用学号和密码登录,密码连续输错三次则账号冻结; (2)具有账户查询功能:登记账户各项信息,包括:姓名、余额,近一个月的支出和收入,账户挂失; (3)具有存款功能:可按不同货币存款,例如人民币、美元、欧元等; (4)具有取款功能:可快速取1000、2000、3000和其他金额等; (5)具有转账汇款功能:银行账号转账、手机号转账,转账记录,转账限额设置等; (6)具有投资理财功能,如基金投资、购买理财产品、购买个人养老金;
时间: 2024-04-01 12:33:32 浏览: 135
好的,以下是一个简单的手机银行系统Python代码示例,您可以根据自己的需要进行修改和完善:
```python
import getpass
import time
# 用户信息
users = {
'123456': {
'name': '张三',
'password': '123456',
'balance': 10000,
'history': []
},
'234567': {
'name': '李四',
'password': '234567',
'balance': 20000,
'history': []
}
}
# 登录失败次数
fail_count = {}
# 登录
def login():
while True:
user_id = input('请输入学号:')
password = getpass.getpass('请输入密码:')
# 判断用户是否存在
if user_id not in users:
print('用户不存在,请重新输入!')
continue
# 判断密码是否正确
if password != users[user_id]['password']:
if user_id in fail_count:
fail_count[user_id] += 1
else:
fail_count[user_id] = 1
if fail_count[user_id] >= 3:
print('密码错误次数已超过 3 次,账号已被冻结!')
return None
else:
print('密码错误,请重新输入!')
continue
# 登录成功
print(f'欢迎您,{users[user_id]["name"]}!')
return user_id
# 查询账户信息
def query_account(user_id):
print(f'账户姓名:{users[user_id]["name"]}')
print(f'账户余额:{users[user_id]["balance"]}')
# 存款
def deposit(user_id):
print('请选择货币类型:')
print('1. 人民币')
print('2. 美元')
print('3. 欧元')
currency = input('请输入选项:')
if currency == '1':
name = '人民币'
elif currency == '2':
name = '美元'
elif currency == '3':
name = '欧元'
else:
print('请输入正确的选项!')
return
amount = input(f'请输入存款金额({name}):')
try:
amount = float(amount)
except ValueError:
print('请输入正确的金额!')
return
users[user_id]['balance'] += amount
users[user_id]['history'].append((time.time(), f'存款 {amount} {name}'))
print(f'存款成功,当前余额为 {users[user_id]["balance"]} {name}')
# 取款
def withdraw(user_id):
print('请选择取款金额:')
print('1. 1000 元')
print('2. 2000 元')
print('3. 3000 元')
print('4. 其他金额')
option = input('请输入选项:')
if option == '1':
amount = 1000
elif option == '2':
amount = 2000
elif option == '3':
amount = 3000
elif option == '4':
amount = input('请输入取款金额:')
try:
amount = float(amount)
except ValueError:
print('请输入正确的金额!')
return
else:
print('请输入正确的选项!')
return
if amount > users[user_id]['balance']:
print('余额不足,取款失败!')
return
users[user_id]['balance'] -= amount
users[user_id]['history'].append((time.time(), f'取款 {amount} 元'))
print(f'取款成功,当前余额为 {users[user_id]["balance"]} 元')
# 转账
def transfer(user_id):
print('请选择转账方式:')
print('1. 银行账号转账')
print('2. 手机号转账')
option = input('请输入选项:')
if option == '1':
account = input('请输入银行账号:')
elif option == '2':
account = input('请输入手机号:')
else:
print('请输入正确的选项!')
return
if account == user_id:
print('不能转账给自己!')
return
if account not in users:
print('账户不存在!')
return
amount = input('请输入转账金额:')
try:
amount = float(amount)
except ValueError:
print('请输入正确的金额!')
return
if amount > users[user_id]['balance']:
print('余额不足,转账失败!')
return
users[user_id]['balance'] -= amount
users[user_id]['history'].append((time.time(), f'转账 {amount} 元给 {users[account]["name"]}({account})'))
users[account]['balance'] += amount
users[account]['history'].append((time.time(), f'收到来自 {users[user_id]["name"]}({user_id})的转账 {amount} 元'))
print(f'转账成功,当前余额为 {users[user_id]["balance"]} 元')
# 菜单
menu = {
'1': {
'name': '查询账户信息',
'function': query_account
},
'2': {
'name': '存款',
'function': deposit
},
'3': {
'name': '取款',
'function': withdraw
},
'4': {
'name': '转账',
'function': transfer
},
'5': {
'name': '退出',
'function': exit
}
}
# 主程序
def main():
user_id = login()
if not user_id:
return
while True:
print('请选择操作:')
for option in menu:
print(f'{option}. {menu[option]["name"]}')
option = input('请输入选项:')
if option not in menu:
print('请输入正确的选项!')
continue
menu[option]['function'](user_id)
# 运行程序
if __name__ == '__main__':
main()
```
注意:这只是一个简单的示例代码,实际应用中还需要考虑更多的异常情况和安全问题。
阅读全文