美文网首页
day_4 实现ATM机取款、查询余额、退出等功能

day_4 实现ATM机取款、查询余额、退出等功能

作者: DKider | 来源:发表于2019-06-16 19:46 被阅读0次

取款

这是接着昨天存款的功能写的,我发现存款和取款就是差在一个加一个减而已。

    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

最后使用的效果如下:


image.png image.png image.png image.png image.png

。。。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

现在用前面注册的来登录:

image.png image.png image.png image.png image.png

emmmm 还有点小瑕疵。就是,我退出当前账号后并不是想退出程序,而是换一个账号,现在需要把他换成退出登陆的当前的账号后,返回那一个登录和注册的界面。

    def quit(self):
        self._current_user = None
        self.run()
        return True

现在改成这样就好了,在推车当前登录的账号后,就直接回到第一个菜单。

image.png

就像现在这样,嗯么么么,差不对都完成了吧!!!!

恭喜恭喜,同喜同喜。

奥对了,还有数据库的相关记录还么有看。

image.png

相关文章

  • day_4 实现ATM机取款、查询余额、退出等功能

    取款 这是接着昨天存款的功能写的,我发现存款和取款就是差在一个加一个减而已。 接下来是查询余额、和退出 但是这两个...

  • ATM的C语言程序

    一、目的: 用C语言实现ATM机,其中包括的功能有:1、存款2、取款3、查询4、更改密码5、退出 二、用到知识点:...

  • java笔记——模拟ATM机例子

    模拟ATM机,实现用户登录、查询、取款、存款和退出。 假定一个银行卡账户,程序执行的时候提示用户输入账号,然后输入...

  • Use Case Diagram

    1、确定参与者(actor) 1.1用户 使用ATM自动取款机进行现金交易。进行余额查询、设置密码、修改密码、转账...

  • Java+Swing+Mysql实现ATM存款取款转账 课程设计

    一、系统介绍该系统使用JavaSwing实现注册,登录,取款,存款,转账,余额查询,改密码,交易记录,等功能,界面...

  • python---ATM取款机设计思维步骤

    项目设计: 1.ATM取款机: 功能:1.取款2.存款3.转账4.查询5.退卡 (退出)提示:分析核心对象 设计数...

  • Eclipse+Java+Swing+Mysql实现自助存取款机

    一、系统介绍该系统使用JavaSwing实现取款,存款,转账,余额查询等功能,界面良好。数据库为Mysql8.0....

  • Java仿ATM操作系统

    前言 本文主要介绍使用Java简单实现仿ATM操作系统。该ATM系统主要包括:登录、开户、查询、存款、取款、转账、...

  • JPA 高并发下解决数据一致性

    JPA 高并发下解决数据一致性 问题 小明跑到ATM机去取款,ATM实现逻辑读取卡上金额,输入取款金额,然后更新卡...

  • 注意遮挡

    爸爸和儿子一起去ATM机取款。儿子取款时,爸爸提醒说:“在ATM机取款时要注意遮挡。” 儿子满不在乎地说:“我知道...

网友评论

      本文标题:day_4 实现ATM机取款、查询余额、退出等功能

      本文链接:https://www.haomeiwen.com/subject/oxgwfctx.html