Python之基础实战项目二

前言

本章是整理了之前所学的知识:
Python之模块,包,文件,异常
Python之面向对象

本章也就是运用到这些知识然后再次做一个简单项目
项目要求:

险种缴费记录管理
五险一金:
五险:企业基本养老保险、生育保险、失业保险、医疗保险、工伤险
一金:住房公积金、公司年金
功能:
1.添加险种缴费记录
2.删除险种缴费记录
3.修改险种缴费记录
4.查询单个险种缴费记录
5.查询所有险种缴费记录
6.退出


项目

项目结构

在这里插入图片描述

record.py为实体类
recordManager.py为方法类
main.py为主线程进入

项目代码

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

    def __str__(self):
        return f"这单的单号为{self.id},时间为{self.date},类别为“{self.type}”,缴费的金额{self.money},缴费的类别“{self.moneyType}”"


"""
测试的规定写法:
# 测试
if __name__ == "__main__":
   
"""

# 测试
if __name__ == "__main__":
    record = Record(1, "201909", "企业基本养老保险", "228.74", "个人缴纳")
    print(record)
    print(record.__dict__)

recordManager.py

"""
功能:
1.添加险种缴费记录
2.删除险种缴费记录
3.修改险种缴费记录
4.查询单个险种缴费记录
5.查询所有险种缴费记录
6.退出

"""
from python06.entity.record import Record



class RecordManager(object):
    state = 1

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

    @staticmethod
    def getStart():
        print("*" * 30)
        print("1.添加险种缴费记录")
        print("2.删除险种缴费记录")
        print("3.修改险种缴费记录")
        print("4.查询单个险种缴费记录")
        print("5.查询所有险种缴费记录")
        print("6.退出")
        print("*" * 30)



    def addRecord(self):
        """添加险种缴费记录"""
        id = input("请输入要添加的险种缴费记录编号:")
        date = input("请输入要添加的险种缴费记录日期:")
        type = input("请输入要添加的险种缴费记录类型:")
        money = input("请输入要添加的险种缴费记录金额:")
        moneyType = input("请输入要添加的险种缴费款项:")
        record = Record(id, date, type, money, moneyType)
        self.records.append(record)
        self.state = 0
        print("添加成功")

    def delRecord(self):
        """删除险种缴费记录"""
        id = input("请输入要删除的险种缴费记录编号:")
        for record in self.records:
            if record.id == id:
                self.records.remove(record)
                print("删除成功")
                self.state = 0
                break
        else:
            print("没有此记录")

    def editRecord(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.state = 0
                break
        else:
            print("请输入正确的编号")

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

    def getAll(self):
        """查询所有险种缴费记录:读取文件"""

        # 在进行多次增,删,改的操作的时候可以减低修改效率
        if self.state == 0:
            self.insertFile()
            self.state = 1


        try:
            f = open("records.txt", "r", encoding="UTF-8")
            content = f.read()

            # 把content转成 列表
            newRecords = eval(content)

            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 insertFile(self):
        f = open("records.txt", "w", encoding="UTF-8")
        # 直接将列表保存到文件中,默认保存的是对象的内存地址
        # 如何将对象转成map字典
        newRecords = [record.__dict__ for record in self.records]
        f.write(str(newRecords))
        f.close()


main.py

"""
1.添加险种缴费记录
2.删除险种缴费记录
3.修改险种缴费记录
4.查询单个险种缴费记录
5.查询所有险种缴费记录
6.退出

"""
import python06.manager.recordManager as recordManager
recordz = recordManager.RecordManager()

while True:

    recordz.getStart()
    num = int(input("请输入你要的指令"))

    if num == 1:
        recordz.addRecord()
    elif num == 2:
        recordz.delRecord()
    elif num == 3:
        recordz.editRecord()
    elif num == 4:
        recordz.getRecordByid()
    elif num == 5:
        recordz.getAll()
    elif num == 6:
        print("欢迎下一次的测试")
        break
    else:
        print("请输入")




后记

copy 就能用,但是切记要导入的位置要导好!!
可能会发生导入错误,毕竟大家和我的目录结构不一样。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值