【python】练习:银行管理系统

这篇具有很好参考价值的文章主要介绍了【python】练习:银行管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

银行管理系统是一个集开户、查询、取款、存款、转账、锁定、解锁、存盘和退出等一系列的功能的管理系统。文章来源地址https://www.toymoban.com/news/detail-765166.html

#coding=utf-8
import os
import pickle#可以让字典序列化

#定义账户类
class Account:
    def __init__(self, name, password, balance=0, status="normal"):#账号,密码,余额,状态
        self.name = name
        self.password = password
        self.balance = balance
        self.status = status

#定义显示函数,显示账户基本信息
    def __str__(self):
        return "--- Account Info ---\n" \
               "账户: {}\n" \
               "密码: {}\n" \
               "余额: {}\n" \
               "账户: {}".format(self.name, '*'*len(self.password), self.balance, self.status)

#定义银行类
class Bank:
    def __init__(self):
        self.accounts = {}  # 存放所有账户信息的字典
        self.filename = "bank.txt"  # 存档文件名

    def verify(self, name, password):#判断账户和密码是否正确,如果true进入功能列表
        if name in self.accounts and self.accounts[name].password == password:
            return True
        else:
            return False

    def create_account(self, name, password):#定义开户
        if name in self.accounts:
            return "账户已存在"
        else:
            self.accounts[name] = Account(name, password)
            return "账户创建成功"

    def query_account(self, name):#定义查询
        if name in self.accounts:
            return str(self.accounts[name])
        else:
            return "账户不存在"

    def withdraw(self, name, amount):#定义取款
        if name in self.accounts:
            if self.accounts[name].status == "normal":
                if self.accounts[name].balance >= amount:
                    self.accounts[name].balance -= amount
                    return "取款成功"
                else:
                    return "余额不足"
            else:
                return "账户已被锁定"
        else:
            return "账户不存在"

    def deposit(self, name, amount):#定义存款
        if name in self.accounts:
            if self.accounts[name].status == "normal":
                self.accounts[name].balance += amount
                return "存款成功"
            else:
                return "账户已被锁定"
        else:
            return "账户不存在"

    def transfer(self, name1, name2, amount):#定义转账
        if name1 in self.accounts and name2 in self.accounts:
            if self.accounts[name1].status == "normal" and self.accounts[name2].status == "normal":
                if self.accounts[name1].balance >= amount:
                    self.accounts[name1].balance -= amount
                    self.accounts[name2].balance += amount
                    return "转账成功"
                else:
                    return "您的余额不足"
            else:
                return "账户已被锁定"
        else:
            return "账户不存在"

    def lock_account(self, name):#定义锁定
        if name in self.accounts:
            self.accounts[name].status = "locked"
            return "账户已锁定"
        else:
            return "账户不存在"

    def unlock_account(self, name):#定义解锁
        if name in self.accounts:
            self.accounts[name].status = "normal"
            return "账户已解锁"
        else:
            return "账户不存在"

    def save(self):#定义保存
        with open(self.filename, 'wb') as file:
            pickle.dump(self.accounts, file)

    def load(self):#定义退出
        if os.path.exists(self.filename):#判断对应文件或目录是否存在
            with open(self.filename, 'rb') as file:
                self.accounts = pickle.load(file)

bank = Bank()

def main():
    bank.load()

    while True:
        print("--- 银行管理系统 ---")
        print("1. 开户")
        print("2. 查询")
        print("3. 取款")
        print("4. 存款")
        print("5. 转账")
        print("6. 锁定")
        print("7. 解锁")
        print("8. 保存")
        print("9. 退出")

        choice = input("请选择您要办理的业务: ")

        if choice == "1":
            name = input("请输入您的账号: ")
            password = input("请输入您的密码: ")
            print(bank.create_account(name, password))
        elif choice == "2":
            name = input("请输入您的账号: ")
            print(bank.query_account(name))
        elif choice == "3":
            name = input("请输入您的账号: ")
            amount = float(input("请输入您要取款金额: "))
            print(bank.withdraw(name, amount))
        elif choice == "4":
            name = input("请输入您的账号: ")
            amount = float(input("请输入您要存款金额: "))
            print(bank.deposit(name, amount))
        elif choice == "5":
            name1 = input("请输入您的账号: ")
            name2 = input("请输入要转账的账号 ")
            amount = float(input("请输入您要转账金额: "))
            print(bank.transfer(name1, name2, amount))
        elif choice == "6":
            name = input("请输入您的账号: ")
            print(bank.lock_account(name))
        elif choice == "7":
            name = input("请输入您的账号: ")
            print(bank.unlock_account(name))
        elif choice == "8":
            bank.save()
            print("已保存")
        elif choice == "9":
            bank.save()
            print("再见")
            break
        else:
            print("您的输入有误!!!")

if __name__ == '__main__':
    main()

到了这里,关于【python】练习:银行管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分享大三改进后的python写的【银行管理系统】,超详细 【内附源码】

    目录 大二的时候python有个课堂作业是银行管理系统,不太满意当时的功能,于是添加了点功能。后来大三了,对python的认知又更进了一步就再次改良了我的代码。 程序入口(首页)文件名: home.py 实现开户功能(随机生成六位数的卡号、储存卡号密码、验证密码,记录开户

    2024年02月09日
    浏览(29)
  • python+django+sql实现简单的数据信息管理系统

    今天分享一个博客适合刚准备学习Pythonweb开发的小伙伴。 系统涉及功能: 1:运用django+mysql实现了数据的增删改查以及搜索。 2:实现了对前端语言和前端bootstrap库的基本运用。 3:实现了自定义分页的功能以及指定页码跳转。 项目涉及技术: Python的django框架,ORM数据*(库)

    2024年02月03日
    浏览(38)
  • python+django网上银行业务综合管理系统vue_bvj8b

    本课题主要研究如何用信息化技术改善传统网上银行综合管理行业的经营和管理模式,简化网上银行综合管理的难度,根据管理实际业务需求,调研、分析和编写系统需求文档,设计编写符合银行需要的系统说明书,绘制数据库结构模型,完成系统功能模块开发。本系统的功

    2024年02月04日
    浏览(33)
  • 银行管理系统--课后程序(Python程序开发案例教程-黑马程序员编著-第7章-课后作业)

    从早期的钱庄到现如今的银行,金融行业在不断地变革;随着科技的发展、计算机的普及,计算机技术在金融行业得到了广泛的应用。银行管理系统是一个集开户、查询、取款、存款、转账、锁定、解锁、退出等一系列的功能的管理系统,该系统中各功能的介绍如下。 开户功

    2024年02月04日
    浏览(32)
  • Python面向对象项目练习:商品信息管理系统

    1、编写一个商品库存信息管理系统,用户根据操作菜单进行相关操作 2、该系统可对商品进行增、删、改、查、统计等基本操作。 1、创建商品类,用户根据要求输入商品名称、价格、数量、编号等信息 2、创建仓库类,该类拥有五个方法。add_product用于增加商品信息,需判断

    2024年02月11日
    浏览(35)
  • JAVA项目--银行管理系统

    1、项目描述 银行管理系统:实现登录、注册,登录后的用户可以进行存款、取款、转账、查询余额操作 2、分析 创建银行类Bank:用于存储银行卡信息,并创建银行系统的主窗体 创建银行卡类BankCard:初始化银行卡信息 创建用户操作类User:进行存款、取款、转账、查询余额

    2024年02月11日
    浏览(28)
  • Python综合练习:期末大作业使用openpyxl进行模拟学生宿舍管理系统设计与开发

    1.1 问题背景 随着办公智能化的发展,为方便对大学生宿舍的动态管理,宿舍管理系统储存了每个宿舍学生的基本个人信息,同时需要针对一些特殊情况,如转专业、退学等,对宿舍的信息实现动态调整,支持显示、增加、删除、修改、查询成员信息,从而实现宿舍管理员对

    2024年02月07日
    浏览(48)
  • 银行管理系统,JavaGUI + MySQL + JDBC

    主界面 登录 登录后要验证信息 验证成功进入用户界面 存款界面 存款成功刷新界面 注册界面 必须输入所有信息,并且勾选复选框才能注册 注册成功 取款 余额变更 转账 转账成功,余额变更 查看流水 注销账户 密码采用MD5加密 1.准备两个jar包 commons-codec和mysql-connector-java c

    2024年02月09日
    浏览(32)
  • 基于java的网上银行(网银)管理系统

    该网上银行管理系统,实现用户对自助银行的所有操作:账户管理、出入账管理、系统维护管理等功能。采用了BS架构模式开发,利用jsp技术和mysql数据库制作了一款网银管理系统,为高校计算机毕业设计提供了一个典型的案例,也为大学生和程序爱好者提供了一个学习的源代

    2023年04月22日
    浏览(33)
  • 基于python的简单学生信息管理系统

    针对传统的学生信息管理方式,效率低下,不易存储,和数字化等问题,开发基于 Python 的学生信息管理系统,用于管理学生的个人信息和学习记录。它可以帮助教师和管理员更有效地管理学生信息,如学生基本信息、成绩、课程安排、考试记录等。同时,信息化、数字化的

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包