取款
这是接着昨天存款的功能写的,我发现存款和取款就是差在一个加一个减而已。
def withdrawal(self):
"""用来实现在线取款功能"""
money = input("请输入金额:")
if self._db.update_user(self._current_user,
"balance", int(money) -
self._current_user.get_balance()):
self._current_user.set_balance(int(money) -
self._current_user.get_balance())
status = "成功"
print("取成功")
else:
status = "失败"
print("取款失败")
item = Item(self._current_user, "取款", int(money), status)
if self._db.insert_log(item):
return True
接下来是查询余额、和退出
但是这两个功能实现起来太简单了,就直接代码了,也懒得测试了。
# -----------------查询余额------------------
def check_money(self):
print(self._current_user)
return True
# -----------------退出账号------------------
def quit(self):
self._current_user = None
接下来就是写run()方法来调用这些个方法了,如何让他们之间的逻辑完整。
ATM机首先应该是插卡,然后识别卡号,输入密码登录的这样的一种功能,但是我现在肯定不能直接去做一个RFID卡来,那不现实,所以,就把流程改成:
如果有卡则先登陆。没有卡先注册,所以一开始就只有两个选项,所以就是下面这样。
def run(self):
while True:
print("欢迎使用------DK--ATM 机-------------\n")
print("1. 登录\n")
print("2. 注册\n")
print("------------------------------------\n")
code = input("(1/2):")
if code == '1':
self._login()
break
elif code == '2':
self.open_an_account()
break
self.menu()
下面的menu是一个现实所有功能的方法:
def menu(self):
""""""
while True:
print(self._current_user)
print("1. 存款\n")
print("2. 取款\n")
print("3. 查询\n")
print("4. 退出\n")
print('-' * 36)
code = input("(1/2/3/4):")
if code == '1':
self.deposit()
elif code == '2':
self.withdrawal()
elif code == '3':
self.check_money()
elif code == '4':
self.quit()
break
最后使用的效果如下:
。。。emmmmm好像不太对,怎么取了200就成 - 的了呢????
奥。原来是前面的取款的时候减错了,。。
现在改过来:
def withdrawal(self):
"""用来实现在线取款功能"""
money = input("请输入金额:")
if self._db.update_user(self._current_user,
"balance", self._current_user.get_balance() -
int(money)):
self._current_user.set_balance(self._current_user.get_balance() -
int(money))
status = "成功"
print("取款成功")
else:
status = "失败"
print("取款失败")
item = Item(self._current_user, "取款", int(money), status)
if self._db.insert_log(item):
return True
现在用前面注册的来登录:
emmmm 还有点小瑕疵。就是,我退出当前账号后并不是想退出程序,而是换一个账号,现在需要把他换成退出登陆的当前的账号后,返回那一个登录和注册的界面。
def quit(self):
self._current_user = None
self.run()
return True
现在改成这样就好了,在推车当前登录的账号后,就直接回到第一个菜单。
就像现在这样,嗯么么么,差不对都完成了吧!!!!
恭喜恭喜,同喜同喜。
奥对了,还有数据库的相关记录还么有看。