前言
本章是整理了之前所学的知识:
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 就能用,但是切记要导入的位置要导好!!
可能会发生导入错误,毕竟大家和我的目录结构不一样。