Open 5151321 opened 3 months ago
from email.mime import base from psutil import users from user import User from card import Card import random
class ATM: def init(self, allurer): self.allurer = allurer
def random_card_id(self): # 随机生成开户卡号
while True:
str_data = ''.join(random.choices('0123456789', k=6)) # 简化代码
if str_data not in self.allurer: # 判断卡号是否重复
return str_data
def create_user(self):
# 目标向用户字典中添加一个键值对(卡号、用户对象)
name = input("请输入姓名:\n")
Uid = input("请输入身份证号:\n")
phone = input("请输入手机号:\n")
prest_money = float(input("请输入预存金额:\n"))
if prest_money <= 0:
print("预存款输入有误,开户失败")
return -1
password = input("请输入密码:\n")
confirm_password = input("请再次输入密码:\n")
if password != confirm_password:
print("两次密码输入不同......")
return -1
print("密码设置成功,请牢记密码: ", password)
card_id = self.random_card_id()
card = Card(card_id, password, prest_money) # 创建卡
user = User(name, Uid, phone, card) # 创建用户
self.allurer[card_id] = user # 存入用户字典
print("您的开户已完成,请牢记开户账号: ", card_id)
def check_password(self, real_pwd):
for _ in range(3):
psd = input("请输入密码:\n")
if real_pwd == psd:
return True
print("密码输错三次,系统自动退出......")
return False
def search_user(self, base=1):
if base == 2:
inpt_card_id = input("请输入转出主卡号:\n")
elif base == 3:
inpt_card_id = input("请输入转入卡号:\n")
else:from user import User
from card import Card import random
class ATM: def init(self, alluser): self.alluser = alluser
# ... 其他方法 ...
def transfer(self):
userTF = self.search_user() # 修复方法名大小写
if userTF != -1:
if not userTF.card.card_lock: # 修复属性名大小写
if userTF.card.card_id != '':
inptMoney = float(input("请输入要存入的金额:"))
if inptMoney < 0:
print("请输入正确金额")
else:
userTF.card.money += inptMoney
print("存款成功! 账户: %s 余额: %.2f" % (userTF.card.card_id, userTF.card.money))
else:
return -1
def transferMoney(self):
MasterTF = self.search_user(base=2)
if MasterTF == -1:
return -1
userTF = self.search_user(base=3)
if userTF == -1:
return -1
in_tr_Money = float(input("请输入转账金额:"))
if MasterTF.card.money >= in_tr_Money:
str_confirm = input("您确认要继续转账操作吗(y/n)?:")
if str_confirm.upper() == "Y":
MasterTF.card.money -= in_tr_Money
userTF.card.money += in_tr_Money
print("转账成功! 账户: %s 余额: %.2f" % (MasterTF.card.card_id, MasterTF.card.money))
else:
print("转账失败,中止了操作")
else:
print("转账失败,余额不足! 账户: %s 余额: %.2f" % (MasterTF.card.card_id, MasterTF.card.money))
def unlockCard(self):
inpt_card_id = input("请输入您的卡号:") # 修复变量命名
user = self.alluser.get(inpt_card_id)
if not user:
print("此卡号不存在...解锁失败!")
return -1
if not user.card.card_lock: # 修复属性名大小写
print("该卡未被锁定,无需解锁!")
return
for _ in range(3): # 添加循环验证密码
psd = input("请输入密码以解锁:")
if self.check_password(user.card.card_pwd, psd): # 修复密码验证方法名
user.card.card_lock = False
print("该卡 解锁 成功!")
return
print("密码错误,请再试一次!")
print("密码错误过多,解锁失败!")
# ... 其他方法 ...
def check_password(self, card_id, real_pwd, input_pwd): user = self.alluser.get(card_id) if not user: print("此卡号不存在...验证失败!") return False if user.card.card_lock: print("该用户已经被锁定...请解卡后使用!") return False
if real_pwd == input_pwd:
return True
else:
print("密码错误,请再试一次!")
if base != 3: # 查询转入账户时不打印余额
print("账户: %s 余额: %.2f" % (user.card.card_id, user.card.money))
return user
def get_money(self):
user = self.search_user()
if user == -1:
return -1
amount = float(input("请输入取款金额:\n"))
if amount > user.card.money:
print("输入的金额大于余额,请先查询余额!")
return -1
user.card.money -= amount
print("取款成功! 账户: %s 余额: %.2f" % (user.card.card_id, user.card.money))
def save_money(self):
user = self.search_user()
if user == -1 or user.card.card_lock:
return -1
amount = float(input("请输入要存入得金额:\n"))
if amount < 0:
print("请输入正确金额")
else:
user.card.money += amount
print("存款成功! 账户: %s 余额: %.2f" % (user.card.card_id, user.card.money))
def transfer(self): userTF = self.searchUser() if users != -1: if not users.card.cardLock == True: if users.card.cardId != '': inptMoney = float(input("请输入要存入得金额:")) if inptMoney < 0: print("请输入正确金额") else: users.card.money += inptMoney print("存款成功! 账户: %s 余额: %.2f " % (users.card.cardId, users.card.money))
def transferMoney(self):
MasterTF = self.searchUser(base=2)
if (MasterTF == -1):
return -1
userTF = self.searchUser(base=3)
if (userTF == -1):
return -1
in_tr_Money = float(input("请输入转账金额:"))
if MasterTF.card.money >= in_tr_Money:
str = input("您确认要继续转账操作吗(y/n)?:")
if str.upper() == "Y":
MasterTF.card.money -= in_tr_Money
userTF.card.money += in_tr_Money
print("转账成功! 账户: %s 余额: %.2f " %
(MasterTF.card.cardId, MasterTF.card.money))
else:
print("转账失败,中止了操作")
else:
print("转账失败,余额不足! 账户: %s 余额: %.2f " %
(MasterTF.card.cardId, MasterTF.card.money))
def unlockCard(self):
inptcardId = input("请输入您的卡号:")
user = self.alluser.get(inptcardId)
while 1:
if not self.alluser.get(inptcardId):
print("此卡号不存在...解锁失败!")
return -1
elif not user.card.cardLock:
print("该卡未被锁定,无需解锁!")
break
elif not self.checkpwg(user.card.cardPwd):
print("密码错误...解锁失败!!")
return -1
user.card.cardLock = False # 解锁
print("该卡 解锁 成功!")
break
from user import User
from card import Card
import random
class ATM: def init(self, alluser): self.alluser = alluser
def random_card_id(self): # 随机生成开户卡号
while True:
str_data = ''.join(random.choices('0123456789', k=6)) # 简化代码
if str_data not in self.alluser: # 判断卡号是否重复
return str_data
def create_user(self):
# 目标向用户字典中添加一个键值对(卡号、用户对象)
name = input("请输入姓名:\n")
Uid = input("请输入身份证号:\n")
phone = input("请输入手机号:\n")
prest_money = float(input("请输入预存金额:\n"))
if prest_money <= 0:
print("预存款输入有误,开户失败")
return -1
password = input("请输入密码:\n")
confirm_password = input("请再次输入密码:\n")
if password != confirm_password:
print("两次密码输入不同......")
return -1
print("密码设置成功,请牢记密码: ", password)
card_id = self.random_card_id()
card = Card(card_id, password, prest_money) # 创建卡
user = User(name, Uid, phone, card) # 创建用户
self.alluser[card_id] = user # 存入用户字典
print("您的开户已完成,请牢记开户账号: ", card_id)
def check_password(self, real_pwd):
for _ in range(3):
psd = input("请输入密码:\n")
if real_pwd == psd:
return True
print("密码输错三次,系统自动退出......")
return False
def search_user(self, base=1):
if base == 2:
inpt_card_id = input("请输入转出主卡号:\n")
elif base == 3:
inpt_card_id = input("请输入转入卡号:\n")
else:
inpt_card_id = input("请输入卡号:\n")
user = self.alluser.get(inpt_card_id)
if not user:
print("此卡号不存在...验证失败!")
return False
if user.card.card_lock:
print("该用户已经被锁定...请解卡后使用!")
return False
return user
def transfer(self):
user = self.search_user()
if user == -1:
return -1
if not user.card.card_lock:
inptMoney = float(input("请输入转账金额:\n"))
if inptMoney < 0:
print("请输入正确金额")
else:
user.card.money += inptMoney
print("转账成功! 账户: %s 余额: %.2f" % (user.card.card_id, user.card.money))
else:
print("该卡已被锁定,无法进行转账操作")
def unlock_card(self):
inpt_card_id = input("请输入您的卡号:") # 修复变量命名
user = self.alluser.get(inpt_card_id)
if not user:
print("此卡号不存在...解锁失败!")
return -1
if not user.card.card_lock: # 修复属性名大小写
print("该卡未被锁定,无需解锁!")
return
for _ in range(3): # 添加循环验证密码
psd = input("请输入密码以解锁:")
if self.check_password(user.card.card_pwd, psd): # 修复密码验证方法名
user.card.card_lock = False
print("该卡 解锁 成功!")
return
print("密码错误,请再试一次!")
print("密码错误过多,解锁失败!")
print("该卡已被锁定,无法进行存款操作")
def save_money(self):
user = self.search_user()
if user == -1 or user.card.card_lock:
return -1
inptMoney = float(input("请输入要存入得金额:\n"))
if inptMoney < 0:
print("请输入正确金额")
else:
user.card.money += inptMoney
print("存款成功! 账户: %s 余额: %.2f" % (user.card.card_id, user.card.money))
def get_money(self):
user = self.search_user()
if user == -1:
return -1
if not user.card.card_lock:
amount = float(input("请输入取款金额:\n"))
if amount > user.card.money:
print("输入的金额大于余额,请先查询余额!")
return -1
user.card.money -= amount
print("取款成功! 账户: %s 余额: %.2f" % (user.card.card_id, user.card.money))
else:
print("该卡已被锁定,无法进行取款操作")
def transferMoney(self):
MasterTF = self.search_user(base=2)
if MasterTF == -1:
return -1
userTF = self.search_user(base=3)
if userTF == -1:
return -1
in_tr_Money = float(input("请输入转账金额:"))
if MasterTF.card.money >= in_tr_Money:
str_confirm = input("您确认要继续转账操作吗(y/n)?:")
if str_confirm.upper() == "Y":
MasterTF.card.money -= in_tr_Money
userTF.card.money += in_tr_Money
print("转账成功! 账户: %s 余额: %.2f" % (MasterTF.card.card_id, MasterTF.card.money))
else:
print("转账失败,中止了操作")
else:
print("转账失败,余额不足! 账户: %s 余额: %.2f" %
(MasterTF.card.card_id, MasterTF.card.money))
def unlock_card(self):
inpt_card_id = input("请输入您的卡号:")
user = self.alluser.get(inpt_card_id)
while 1:
if not self.alluser.get(inpt_card_id):
print("此卡号不存在...解锁失败!")
return -1
elif not user.card.card_lock:
print("该卡未被锁定,无需解锁!")
break
elif not self.check_password(user.card.card_pwd):
print("密码错误...解锁失败!!")
return -1
user.card.card_lock = False # 解锁
print("该卡 解锁 成功!")
break
完善
所需的数据太大,无法直接发送。我们已经将其写 Type: Bug
Your question
仔细阅读和理解以下代码内容,理解其功能,针对其中的代码易读性问题做改善,例如:变量命名, 代码结构等,使其结构更加清晰, 更易于维护.
Raccoon's error
Empty Response
Your expection
Extension version: 0.76.0 VS Code version: Code 1.90.2 (5437499feb04f7a586f677b155b039bc2b3669eb, 2024-06-18T22:34:26.404Z) OS version: Windows_NT x64 10.0.22631 Modes:
System Info
|Item|Value| |---|---| |CPUs|13th Gen Intel(R) Core(TM) i7-13620H (16 x 2918)| |GPU Status|2d_canvas: enabledcanvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled| |Load (avg)|undefined| |Memory (System)|15.73GB (8.75GB free)| |Process Argv|C:\\Users\\ctc\\Desktop\\drdt --crash-reporter-id 154d2049-2445-4346-abee-0cf072ea9c60| |Screen Reader|no| |VM|0%|