python设计宿舍管理系统并录入excel
时间: 2023-07-21 11:29:45 浏览: 325
要设计一个宿舍管理系统,你可以使用 Python 的字典(dictionary)和列表(list)来存储宿舍和学生的信息。每个宿舍可以用一个字典来表示,其中包括宿舍号、宿舍类型、可住人数等信息。每个学生可以用一个字典来表示,其中包括姓名、学号、性别、所在宿舍等信息。你可以将所有宿舍的信息存储在一个列表里,将所有学生的信息存储在另一个列表里。
以下是一个示例代码,用于添加、修改和删除宿舍和学生信息,并将所有宿舍和学生信息存储在一个 Excel 文件里。你需要使用 openpyxl 模块来操作 Excel 文件。
```python
import openpyxl
def add_dormitory(dormitories):
dorm_no = input("请输入宿舍号:")
dorm_type = input("请输入宿舍类型:")
max_capacity = int(input("请输入最大可住人数:"))
dormitory = {"宿舍号": dorm_no, "宿舍类型": dorm_type, "可住人数": max_capacity, "当前人数": 0, "学生列表": []}
dormitories.append(dormitory)
print("宿舍添加成功!")
def modify_dormitory(dormitories):
dorm_no = input("请输入要修改的宿舍号:")
for dormitory in dormitories:
if dormitory["宿舍号"] == dorm_no:
dorm_type = input("请输入新的宿舍类型:")
max_capacity = int(input("请输入新的最大可住人数:"))
dormitory["宿舍类型"] = dorm_type
dormitory["可住人数"] = max_capacity
print("宿舍信息修改成功!")
return
print("宿舍不存在!")
def delete_dormitory(dormitories):
dorm_no = input("请输入要删除的宿舍号:")
for dormitory in dormitories:
if dormitory["宿舍号"] == dorm_no:
dormitories.remove(dormitory)
print("宿舍删除成功!")
return
print("宿舍不存在!")
def add_student(dormitories):
name = input("请输入学生姓名:")
student_id = input("请输入学生学号:")
gender = input("请输入学生性别:")
dorm_no = input("请输入学生所在宿舍号:")
for dormitory in dormitories:
if dormitory["宿舍号"] == dorm_no:
if dormitory["当前人数"] < dormitory["可住人数"]:
student = {"姓名": name, "学号": student_id, "性别": gender, "所在宿舍": dorm_no}
dormitory["学生列表"].append(student)
dormitory["当前人数"] += 1
print("学生添加成功!")
else:
print("宿舍已满,无法添加学生!")
return
print("宿舍不存在!")
def modify_student(dormitories):
student_id = input("请输入要修改的学生学号:")
for dormitory in dormitories:
for student in dormitory["学生列表"]:
if student["学号"] == student_id:
name = input("请输入新的学生姓名:")
gender = input("请输入新的学生性别:")
dorm_no = input("请输入新的学生所在宿舍号:")
if dorm_no != student["所在宿舍"]:
for d in dormitories:
if d["宿舍号"] == dorm_no:
if d["当前人数"] < d["可住人数"]:
student["所在宿舍"] = dorm_no
dormitory["当前人数"] -= 1
d["当前人数"] += 1
d["学生列表"].append(student)
else:
print("宿舍已满,无法修改学生所在宿舍!")
return
else:
print("宿舍不存在!")
return
student["姓名"] = name
student["性别"] = gender
print("学生信息修改成功!")
return
print("学生不存在!")
def delete_student(dormitories):
student_id = input("请输入要删除的学生学号:")
for dormitory in dormitories:
for student in dormitory["学生列表"]:
if student["学号"] == student_id:
dormitory["学生列表"].remove(student)
dormitory["当前人数"] -= 1
print("学生删除成功!")
return
print("学生不存在!")
def save_dormitories_and_students_to_excel(dormitories):
wb = openpyxl.Workbook()
dorm_sheet = wb.active
dorm_sheet.title = "宿舍列表"
dorm_sheet["A1"] = "宿舍号"
dorm_sheet["B1"] = "宿舍类型"
dorm_sheet["C1"] = "最大可住人数"
dorm_sheet["D1"] = "当前人数"
for i, dormitory in enumerate(dormitories, start=2):
dorm_sheet.cell(row=i, column=1, value=dormitory["宿舍号"])
dorm_sheet.cell(row=i, column=2, value=dormitory["宿舍类型"])
dorm_sheet.cell(row=i, column=3, value=dormitory["可住人数"])
dorm_sheet.cell(row=i, column=4, value=dormitory["当前人数"])
student_sheet = wb.create_sheet("学生列表")
student_sheet["A1"] = "姓名"
student_sheet["B1"] = "学号"
student_sheet["C1"] = "性别"
student_sheet["D1"] = "所在宿舍"
for dormitory in dormitories:
for i, student in enumerate(dormitory["学生列表"], start=2):
student_sheet.cell(row=i, column=1, value=student["姓名"])
student_sheet.cell(row=i, column=2, value=student["学号"])
student_sheet.cell(row=i, column=3, value=student["性别"])
student_sheet.cell(row=i, column=4, value=student["所在宿舍"])
wb.save("dormitories_and_students.xlsx")
def main():
dormitories = []
while True:
print("=" * 30)
print("1. 添加宿舍")
print("2. 修改宿舍")
print("3. 删除宿舍")
print("4. 添加学生")
print("5. 修改学生")
print("6. 删除学生")
print("7. 保存宿舍和学生信息到 Excel 文件")
print("8. 退出程序")
choice = input("请输入选项:")
if choice == "1":
add_dormitory(dormitories)
elif choice == "2":
modify_dormitory(dormitories)
elif choice == "3":
delete_dormitory(dormitories)
elif choice == "4":
add_student(dormitories)
elif choice == "5":
modify_student(dormitories)
elif choice == "6":
delete_student(dormitories)
elif choice == "7":
save_dormitories_and_students_to_excel(dormitories)
elif choice == "8":
break
else:
print("无效选项!")
if __name__ == "__main__":
main()
```
这个程序也可以在命令行界面中运行,根据提示输入相应的选项。当你选择将宿舍和学生信息保存到 Excel 文件时,程序会自动在程序运行的目录下创建一个名为 "dormitories_and_students.xlsx" 的 Excel 文件,并将所有宿舍和学生信息存储在其中。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)