基于Python的学校体育器材管理系统
介绍:
学校体育器材管理是学校体育工作中非常重要的一环。随着学校规模的扩大和体育项目的增加,如何有效地管理和维护体育器材成为了一个挑战。本文将介绍一种基于Python编程语言开发的学校体育器材管理系统,该系统通过简单的命令行界面提供了方便的器材管理操作,包括器材信息的录入、查询、归还、借出、删除、修改和统计等功能。
系统功能概述
学校体育器材管理系统具有以下主要功能:
-
录入器材信息:用户可以通过系统菜单输入体育器材的基本信息,包括编号、名称、购置日期、单价、使用年限、状态、是否损坏、是否报废以及借记人姓名或单位等。
-
查询器材信息:用户可以根据不同的查询方式(按名称、状态、是否损坏)检索器材信息,并将匹配的结果显示给用户。
-
归还和借出器材:用户可以通过系统进行器材的归还和借出操作,系统会更新器材的状态和借记人信息。
-
删除报废器材:系统提供删除已报废器材的功能,用户可以根据器材编号或名称删除相应的报废器材信息。
-
修改器材信息:用户可以修改已录入的器材信息,包括状态和损坏状态等属性。
-
统计器材总信息:系统能够统计并显示各种器材的总数量、已借出的数量以及器材室剩余的数量等信息。
-
自动报废:系统根据器材的购置日期和使用年限自动标记符合条件的器材为报废状态。
系统实现及使用
本系统采用Python编程语言实现,并以命令行界面(CLI)方式提供操作菜单。用户可以根据菜单选项选择相应的功能来管理器材并获取所需的信息。
import datetime
# 定义器材类
class SportsEquipment:
def __init__(self, equipment_number, equipment_name, purchase_date, price, lifespan, status, is_damaged, is_discarded, borrower):
self.equipment_number = equipment_number
self.equipment_name = equipment_name
self.purchase_date = purchase_date
self.price = price
self.lifespan = lifespan
self.status = status
self.is_damaged = is_damaged
self.is_discarded = is_discarded
self.borrower = borrower
def display_info(self):
print("器材编号:", self.equipment_number)
print("器材名称:", self.equipment_name)
print("购置日期:", self.purchase_date)
print("单价:", self.price)
print("使用年限:", self.lifespan)
print("状态:", self.status)
print("是否损坏:", self.is_damaged)
print("是否报废:", self.is_discarded)
print("借记人姓名或单位:", self.borrower)
print()
# 定义器材管理系统类
class SportsEquipmentManagementSystem:
def __init__(self):
self.equipment_list = []
def add_equipment(self):
print("请输入器材基本信息:")
equipment_number = input("器材编号: ")
equipment_name = input("器材名称: ")
purchase_date = input("购置日期(YYYY-MM-DD): ")
price = float(input("单价: "))
lifespan = int(input("使用年限: "))
status = input("状态(已借出/未借出): ")
is_damaged = input("是否损坏(是/否): ")
is_discarded = input("是否报废(是/否): ")
borrower = input("借记人姓名或单位: ")
equipment = SportsEquipment(equipment_number, equipment_name, purchase_date, price, lifespan, status, is_damaged, is_discarded, borrower)
self.equipment_list.append(equipment)
print("器材添加成功!")
def search_equipment(self):
print("请选择查询方式:")
print("1. 按器材名称查询")
print("2. 按器材状态查询")
print("3. 按是否损坏查询")
option = input("请输入选项:")
if option == "1":
equipment_name = input("请输入器材名称: ")
found = False
for equipment in self.equipment_list:
if equipment.equipment_name == equipment_name:
equipment.display_info()
found = True
if not found:
print("未找到匹配的器材。")
elif option == "2":
status = input("请输入器材状态(已借出/未借出): ")
found = False
for equipment in self.equipment_list:
if equipment.status == status:
equipment.display_info()
found = True
if not found:
print("未找到匹配的器材。")
elif option == "3":
is_damaged = input("请输入是否损坏(是/否): ")
found = False
for equipment in self.equipment_list:
if equipment.is_damaged == is_damaged:
equipment
equipment.display_info()
found = True
if not found:
print("未找到匹配的器材。")
else:
print("无效的选项。")
def return_equipment(self):
equipment_number = input("请输入要归还的器材编号: ")
found = False
for equipment in self.equipment_list:
if equipment.equipment_number == equipment_number:
equipment.status = "未借出"
equipment.borrower = ""
print("器材归还成功!")
found = True
break
if not found:
print("未找到该器材编号的器材。")
def lend_equipment(self):
equipment_number = input("请输入要借出的器材编号: ")
found = False
for equipment in self.equipment_list:
if equipment.equipment_number == equipment_number:
if equipment.status == "未借出":
borrower = input("请输入借出人姓名或单位: ")
equipment.status = "已借出"
equipment.borrower = borrower
print("器材借出成功!")
found = True
else:
print("该器材已借出。")
found = True
break
if not found:
print("未找到该器材编号的器材。")
def delete_equipment(self):
equipment_number = input("请输入要删除的报废器材编号: ")
found = False
for equipment in self.equipment_list:
if equipment.equipment_number == equipment_number and equipment.is_discarded == "是":
self.equipment_list.remove(equipment)
print("器材删除成功!")
found = True
break
if not found:
print("未找到该报废器材编号的器材。")
def modify_equipment(self):
equipment_number = input("请输入要修改的器材编号: ")
found = False
for equipment in self.equipment_list:
if equipment.equipment_number == equipment_number:
equipment.status = input("新状态(已借出/未借出): ")
equipment.is_damaged = input("新损坏状态(是/否): ")
print("器材信息修改成功!")
found = True
break
if not found:
print("未找到该器材编号的器材。")
def display_summary(self):
total_count = len(self.equipment_list)
borrowed_count = 0
remaining_count = 0
for equipment in self.equipment_list:
if equipment.status == "已借出":
borrowed_count += 1
else:
remaining_count += 1
print("器材总数:", total_count)
print("已借出的器材数量:", borrowed_count)
print("器材室剩余的数量:", remaining_count)
def automatic_discard(self):
current_date = datetime.datetime.now().date()
for equipment in self.equipment_list:
purchase_date = datetime.datetime.strptime(equipment.purchase_date, "%Y-%m-%d").date()
expiration_date = purchase_date + datetime.timedelta(days=365 * equipment.lifespan)
if expiration_date <= current_date:
equipment.is_discarded = "是"
def run(self):
while True:
print("\n======== 学校体育器材管理系统 ========")
print("""
1.输入体育器材基本信息
2.查询体育器材基本信息
3.归还器材
4.借出器材
5.删除报废器材
6.修改器材信息
7.统计器材总信息
8.退出系统
==========================================""")
option = input("请选择操作(输入对应数字):")
if option == "1":
self.add_equipment()
elif option == "2":
self.search_equipment()
elif option == "3":
self.return_equipment()
elif option == "4":
self.lend_equipment()
elif option == "5":
self.delete_equipment()
elif option == "6":
self.modify_equipment()
elif option == "7":
self.display_summary()
elif option == "8":
print("感谢使用学校体育器材管理系统!")
break
else:
print("无效的选项,请重新输入。")
self.automatic_discard()
system = SportsEquipmentManagementSystem()
system.run()
系统的核心类是SportsEquipment
(器材类)和SportsEquipmentManagementSystem
(器材管理系统类)。SportsEquipment
类用于存储和展示器材的基本信息,而SportsEquipmentManagementSystem
类则包含了各种操作功能的具体实现。
在博客中,我们展示了系统的代码实现,并详细介绍了每个功能的使用方法。通过代码示例,读者可以清楚地了解如
何录入器材信息、查询器材信息、归还和借出器材、删除报废器材、修改器材信息以及统计器材总信息等操作。
结语
学校体育器材管理是保证体育教学和活动顺利进行的重要环节。通过采用学校体育器材管理系统,可以实现对器材信息的有效管理和操作,提高了工作效率和数据准确性,避免了繁琐的手动记录和查询过程。这种简单高效的解决方案为学校体育工作带来了便利,为教师和学生提供了良好的器材支持。
通过本篇博客,读者可以了解到学校体育器材管理系统的设计思路和功能实现,同时也可以通过代码示例来自行尝试实践和扩展。希望本系统能为学校体育器材管理提供一个有益的参考,为提升学校体育教学质量和管理水平贡献一份力量。
如果您对学校体育器材管理系统感兴趣,可以查看完整的代码并进行实践。希望本篇博客能为您的学校体育器材管理工作带来启发和帮助!