Python之险种缴费记录管理-保存文件版本

本文展示了如何使用Python实现险种缴费记录的管理,包括添加、删除、修改和查询功能。通过Record类创建对象并利用RecordManager类进行操作,数据持久化通过读写文件实现。用户交互友好,支持对记录的多种操作。
摘要由CSDN通过智能技术生成

险种缴费记录管理

entity

record.py



class Record(object):

    # 给对象添加属性
    def __init__(self, id, date, type, money, moneyType):
        self.id = id
        self.date = date
        self.type = type
        self.money = money
        self.moneyType = moneyType

    #toString
    def __str__(self):
        return f"{self.id} {self.date} {self.type} {self.money} {self.moneyType}"

# 测试
# 实例化一个对象
# record = Record(1, "202101", "企业基本养老保险", "228.74", "个人缴纳")
# print(record)

# 测试
	if __name__ == "__main__":      #测试类一般写完后不需要删除,但是不删除的其他模块调用recode模块的时候,测试类默认会被调用输出,所以添加这行代码,意思当前模块调用则运行输出,其他模块调用则不运行输出
		record = Record(1, "202101", "企业基本养老保险", "228.74", "个人缴纳")
		print(record)
		print(record.__dict__)      #将recode记录以字典的形式输出,只要调用__dict__方法即可


在这里插入图片描述

manage dao (data access object:数据访问对象)

recordManager.py


from entity.record import *

class RecordManager(object):


    def __init__(self):
        self.records = []  # 列表用来保存所有的record信息


    @staticmethod
    def getFunctionList():  # 此方法不需要传递参数,且跟外部没有关系,所以可以定义为类方法,当然如果用普通方法也没有问题
        # 获取功能列表
        print("*" * 25)
        print("1.添加险种缴费记录")
        print("2.删除险种缴费记录")
        print("3.修改险种缴费记录")
        print("4.查询单个险种缴费记录")
        print("5.查询所有险种缴费记录")
        print("6.退出")
        print("*" * 25)


        def add(self):
            """添加险种缴费记录"""
            id = input("请输入要添加的险种缴费记录编号:")
            date = input("请输入要添加的险种缴费记录日期:")
            type = input("请输入要添加的险种缴费记录类型:")
            money = input("请输入要添加的险种缴费记录金额:")
            moneyType = input("请输入要添加的险种缴费款项:")
            record = Record(id, date, type, money, moneyType)  # 把控制台输入的数据传递给recode对象
            self.records.append(record)  # 定义一个recodes列表,在列表中追加recode记录,相当于把recode存到recodes列表中
            # print(self.records)                                 #列表中存放的是一个对象,所以打印输出的是内存地址,而在java中,只要这个对象toString就行啦,但是这里需要把对象转字典类型
            # print("添加成功")

            self.saveToFile()  # 调用把记录存到文件中的方法
            print("添加成功")


        def delete(self):
            """删除险种缴费记录"""
            id = input("请输入要删除的险种缴费记录编号:")
            for record in self.records:
                if record.id == id:
                    self.records.remove(record)
                    print("删除成功")
                    self.saveToFile()  # 重新保存列表记录
                    break
            else:
                print("没有此记录")


        def update(self):
            """修改险种缴费记录"""
            id = input("请输入要修改的险种缴费记录编号:")
            for record in self.records:
                if record.id == id:
                    record.date = input(f"请输入修改后的险种缴费记录日期,原为{record.date}:")
                    record.type = input(f"请输入修改后的险种缴费记录类型,原为{record.type}:")
                    record.money = input(f"请输入修改后的险种缴费记录金额,原为{record.money}:")
                    record.moneyType = input(f"请输入修改后的险种缴费记录款项,原为{record.moneyType}:")
                    print("修改成功")
                    self.saveToFile()  # 重新保存列表记录
                    break
            else:
                print("请输入正确的编号")


        def listById(self):
            """查询单个险种缴费记录"""
            id = input("请输入要查询的险种缴费记录编号:")
            for record in self.records:
                if record.id == id:
                    print(record)
                    break
            else:
                print("没有该记录")


        def listAll(self):
            """查询所有险种缴费记录:读取文件"""
            try:
                f = open("records.txt", "r", encoding="UTF-8")
                content = f.read()
                print(type(content))  # 字符串
                # 把content转成 列表
                newRecords = eval(content)  # 把字符串转成任意类型,都是eval()
                print(type(newRecords))  # 列表
                # 把列表转对象 Record()
                self.records = [Record(record['id'], record['date'], record['type'], record['money'], record['moneyType']) for
                                record in newRecords]
                for record in self.records:
                    print(record)  # 对象
                else:
                    print(f"共查询到{len(self.records)}条记录")
            except FileNotFoundError:
                print("暂无数据,请添加数据")


        def saveToFile(self):
            f = open("records.txt", "w", encoding="UTF-8")
            # f.write(self.records)                                              # 报错: write() argument must be str, not list
            # f.close()

            newRecords = [record.__dict__ for record in self.records]  # 循环records列表,将列表中的对象转成map字典,再存到文件中
            f.write(str(newRecords))
            f.close()

main.py 控制台


from manage.recordManager import *

recordManager = RecordManager()
while True:
    recordManager.getFunctionList()
    num = int(input("请输入要操作的指令:"))
    if num == 1:
        recordManager.add()
    elif num == 2:
        recordManager.delete()
    elif num == 3:
        recordManager.update()
    elif num == 4:
        recordManager.listById()
    elif num == 5:
        recordManager.listAll()
    elif num == 6:
        print("感谢使用")
        break
    else:
        print("请输入正确的指令")

运行效果

  1. 新增
    在这里插入图片描述
    查出新增内容
    在这里插入图片描述

  2. 删除
    在这里插入图片描述

  3. 更新
    在从新新增多条内容,好进行修改
    在这里插入图片描述
    查看是否修改完成
    在这里插入图片描述

  4. 查询
    在这里插入图片描述

  5. 退出
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值