使用python对银行信息管理系统的简单实现

一.首先是用户属性的类

class account(object):
    # 储存用户信息的类
    def __init__(self, id1, name, tel, money):
        self.id = id1
        # 账户
        self.name = name
        # 姓名
        self.tel = tel
        # 电话
        self.money = money
        # 余额

    def __str__(self):
        return f'{self.id},{self.name},{self.tel},{self.money}'

二.然后就是整个管理类

1.储存信息的列表

    def __init__(self):
        self.users_list = []
        # 储存信息的列表

2.各个功能的选择部分函数,使用到的函数在下面都会有介绍

    def function(self):
        """调用各个函数的函数"""
        # 函数的说明文档,一般用来记录函数的作用
        self.load_users()
        # 将文件里的信息读取出来
        while True:
            self.show_menu()
            menu_num = int(input('请输入需要的功能序号'))
            if menu_num == 1:
                self.add_users()
            elif menu_num == 2:
                self.del_users()
            elif menu_num == 3:
                self.modify_users()
            elif menu_num == 4:
                self.query_users()
            elif menu_num == 5:
                self.show_users()
            elif menu_num == 6:
                self.save_users()
            elif menu_num == 7:
                print('感谢使用,再见')
                break
            else:
                print('输入有误,请重新输入')
                continue

3.展示功能菜单的函数

    def show_menu(self):
        """展示功能菜单"""
        print('1--添加用户')
        print('2--删除用户')
        print('3--修改用户')
        print('4--查询用户')
        print('5--显示所有用户')
        print('6--保存用户信息')
        print('7--退出系统')

4.添加用户信息的函数

    def add_users(self):
        """添加用户"""
        id1 = input('请输入用户账户')
        for i in self.users_list:
            # 增删改查里都有循环用来查找数据然后再进行对应操作
            if i.id == id1:
                print('输入的账户已存在!!!')
                return
        name = input('请输入用户姓名')
        tel = input('请输入用户电话')
        money = input('请输入用户余额')
        user = account(id1, name, tel, money)
        # 将所有信息放入列表
        self.users_list.append(user)
        # 将列表追加进储存的列表

5.删除用户信息的函数

    def del_users(self):
        """删除用户"""
        del_users_id = input('请输入需要删除用户的id')
        for i in self.users_list:
            if i.id == del_users_id:
                self.users_list.remove(i)
                break
        else:
            print('输入的用户不存在')

6.修改用户信息的函数

    def modify_users(self):
        """修改用户"""
        modify_users_id = input('请输入需要修改用户的id')
        for i in self.users_list:
            if i.id == modify_users_id:
                print('已查询到用户,下面请按提示输入修改后的信息')
                i.name = input('姓名:')
                i.tel = input('电话:')
                i.money = input('余额:')
                # 找到之后对姓名、电话、余额进行更改,可以做到单项更改,但是太麻烦了,也就是加上一些if而已
                # 账户不做更改,做更改还要判断账户是否重复,我嫌麻烦
                # 想加就把上面的for循环弄下来稍微改一下就行
                break
        else:
            print('输入的用户不存在')

7.查询用户信息的函数

    def query_users(self):
        """查询用户"""
        query_users_id = input('请输入需要查询用户的id')
        for i in self.users_list:
            if i.id == query_users_id:
                print(f'账户:{i.id}\t姓名:{i.name}\t电话:{i.tel}\t余额:{i.money}')
                break
        else:
            print('输入的用户不存在')

8.显示所有用户信息的函数

    def show_users(self):
        """显示所有用户"""
        for i in self.users_list:
            print(f'账户:{i.id}\t姓名:{i.name}\t电话:{i.tel}\t余额:{i.money}')

9.保存用户信息的函数

    def save_users(self):
        """将信息保存"""
        information = open('account.dat', 'w')
        new_list = [i.__dict__ for i in self.users_list]
        # ___dict___强调储存的是静态属性
        information.write(str(new_list))
        # 以字符串形式写入
        information.close()
        # 关闭文件

10.加载文件里信息的函数

    def load_users(self):
        """加载信息"""
        try:
            information = open('account.dat', 'r')
        except:
            information = open('account.dat', 'w')
        else:
            # 读取数据:文件读取出的数据是字符串还原列表类型;[{}] 转换 [学员对象]
            data = information.read()  # 字符串
            if len(data)!=0:
                # 判断读取的数据长度,如果没读到数据依旧运行下一行的代码会导致异常
                # 顺带着也当做优化了,没读取到也就不用运行转换循环了
                new_list = eval(data)
                self.users_list = [account(i['id'], i['name'], i['tel'], i['money']) for i in new_list]
                # 用循环将列表转换成字典形式
        finally:
            information.close()
            # 无论怎样最后都关闭文件

三.完整代码如下

class account(object):
    # 用户信息类
    def __init__(self, id1, name, tel, money):
        self.id = id1
        # 账户
        self.name = name
        # 姓名
        self.tel = tel
        # 电话
        self.money = money
        # 余额

    def __str__(self):
        return f'{self.id},{self.name},{self.tel},{self.money}'


class accountmanager(object):
    # 管理系统类
    def __init__(self):
        self.users_list = []
        # 储存信息的列表

    def function(self):
        """调用各个函数的函数"""
        # 函数的说明文档,一般用来记录函数的作用
        self.load_users()
        # 将文件里的信息读取出来
        while True:
            self.show_menu()
            menu_num = int(input('请输入需要的功能序号'))
            if menu_num == 1:
                self.add_users()
            elif menu_num == 2:
                self.del_users()
            elif menu_num == 3:
                self.modify_users()
            elif menu_num == 4:
                self.query_users()
            elif menu_num == 5:
                self.show_users()
            elif menu_num == 6:
                self.save_users()
            elif menu_num == 7:
                print('感谢使用,再见')
                break
            else:
                print('输入有误,请重新输入')
                continue

    def show_menu(self):
        """展示功能菜单"""
        print('1--添加用户')
        print('2--删除用户')
        print('3--修改用户')
        print('4--查询用户')
        print('5--显示所有用户')
        print('6--保存用户信息')
        print('7--退出系统')

    def add_users(self):
        """添加用户"""
        id1 = input('请输入用户账户')
        for i in self.users_list:
            # 增删改查里都有循环用来查找数据然后再进行对应操作
            if i.id == id1:
                print('输入的账户已存在!!!')
                return
        name = input('请输入用户姓名')
        tel = input('请输入用户电话')
        money = input('请输入用户余额')
        user = account(id1, name, tel, money)
        # 将所有信息放入列表
        self.users_list.append(user)
        # 将列表追加进储存的列表

    def del_users(self):
        """删除用户"""
        del_users_id = input('请输入需要删除用户的id')
        for i in self.users_list:
            if i.id == del_users_id:
                self.users_list.remove(i)
                break
        else:
            print('输入的用户不存在')

    def modify_users(self):
    """修改用户"""
    modify_users_id = input('请输入需要修改用户的id')
    for i in self.users_list:
        if i.id == modify_users_id:
            print('已查询到用户,下面请按提示输入修改后的信息')
            i.name = input('姓名:')
            i.tel = input('电话:')
            i.money = input('余额:')
            # 找到之后对姓名、电话、余额进行更改,可以做到单项更改,但是太麻烦了,也就是加上一些if而已
            # 账户不做更改,做更改还要判断账户是否重复,我嫌麻烦
            # 想加就把上面的for循环弄下来稍微改一下就行
            break
    else:
        print('输入的用户不存在')

    def query_users(self):
        """查询用户"""
        query_users_id = input('请输入需要查询用户的id')
        for i in self.users_list:
            if i.id == query_users_id:
                print(f'账户:{i.id}\t姓名:{i.name}\t电话:{i.tel}\t余额:{i.money}')
                break
        else:
            print('输入的用户不存在')

    def show_users(self):
        """显示所有用户"""
        for i in self.users_list:
            print(f'账户:{i.id}\t姓名:{i.name}\t电话:{i.tel}\t余额:{i.money}')

    def load_users(self):
        """加载信息"""
        try:
            information = open('account.dat', 'r')
        except:
            information = open('account.dat', 'w')
        else:
            # 读取数据:文件读取出的数据是字符串还原列表类型;[{}] 转换 [学员对象]
            data = information.read()  # 字符串
            if len(data)!=0:
                # 判断读取的数据长度,如果没读到数据依旧运行下一行的代码会导致异常
                # 顺带着也当做优化了,没读取到也就不用运行转换循环了
                new_list = eval(data)
                self.users_list = [account(i['id'], i['name'], i['tel'], i['money']) for i in new_list]
                # 用循环将列表转换成字典形式
        finally:
            information.close()
            # 无论怎样最后都关闭文件

    def save_users(self):
        """将信息保存"""
        information = open('account.dat', 'w')
        new_list = [i.__dict__ for i in self.users_list]
        # ___dict___强调储存的是静态属性
        information.write(str(new_list))
        # 以字符串形式写入
        information.close()
        # 关闭文件


account_manager = accountmanager()
# 创建类
account_manager.function()
# 运行系统

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年12月22日
下一篇 2023年12月22日

相关推荐