在这篇博客中,我们将学习如何使用Python语言来开发一个简单的学生宿舍信息管理系统。该系统将允许我们添加、删除、修改和查询学生信息,并且我们还将设计数据结构来管理宿舍、来访者和保修信息。尽管我们提供的代码示例中只实现了与学生信息相关的功能,但你可以根据需要扩展它来包含其他功能。
首先,我们设计了几个类来存储不同类型的信息:
Student
(学生):存储学生ID、姓名、性别、年龄、院系和宿舍号。Dormitory
(宿舍):存储宿舍号、容纳人数和当前人数。Visitor
(来访者):存储来访者ID、姓名、来访时间和被访宿舍号。Repair
(保修):存储保修ID、宿舍号、问题描述和当前状态。接下来,我们将实现几个关键的函数来处理学生信息:
addStudent()
(添加学生):通过接收用户输入,创建一个新的学生记录并将其追加到文件中。deleteStudent()
(删除学生):根据用户输入的ID,从文件中找到并删除相应的学生记录。modifyStudent()
(修改学生):允许用户根据ID修改学生的详细信息。queryStudent()
(查询学生):根据ID查询并显示学生的详细信息。我们还将设计一个简单的文本菜单系统,让用户可以选择执行的操作(添加、删除、修改或查询学生信息)。该系统将持续运行,直到用户选择退出。
所有的学生信息都将存储在一个文本文件中。通过使用文件I/O操作,我们可以持久化这些信息,即使在程序关闭后也不会丢失。
用户可以通过简单的文本界面与系统进行交互。例如,要添加学生信息,用户可以选择相应的菜单项,然后输入学生的详细信息。系统将把这些信息追加到文件中,以便将来查询或修改。
import os
class Student:
def __init__(self, id, name, gender, age, department, dormitory):
self.id = id
self.name = name
self.gender = gender
self.age = age
self.department = department
self.dormitory = dormitory
def addStudent():
students_file = "students.txt"
print("输入学生ID: ")
id = int(input())
print("输入学生姓名: ")
name = input()
print("输入性别: ")
gender = input()
print("输入年龄: ")
age = int(input())
print("输入院系: ")
department = input()
print("输入宿舍号: ")
dormitory = input()
with open(students_file, "a") as file:
file.write(f"{id} {name} {gender} {age} {department} {dormitory}\n")
print("学生信息已添加。")
def deleteStudent():
students_file = "students.txt"
temp_file = "temp.txt"
print("输入要删除的学生ID: ")
id = int(input())
found = False
with open(students_file, "r") as file, open(temp_file, "w") as temp:
for line in file:
s_id, *_ = line.split()
if int(s_id) != id:
temp.write(line)
else:
found = True
os.remove(students_file)
os.rename(temp_file, students_file)
if found:
print("学生信息已删除。")
else:
print("未找到该学生信息。")
def modifyStudent():
students_file = "students.txt"
temp_file = "temp.txt"
print("输入要修改的学生ID: ")
id = int(input())
found = False
with open(students_file, "r") as file, open(temp_file, "w") as temp:
for line in file:
s_id, s_name, s_gender, s_age, s_department, s_dormitory = line.split()
if int(s_id) == id:
print("输入新的学生姓名: ")
s_name = input()
print("输入新的性别: ")
s_gender = input()
print("输入新的年龄: ")
s_age = int(input())
print("输入新的院系: ")
s_department = input()
print("输入新的宿舍号: ")
s_dormitory = input()
found = True
temp.write(f"{s_id} {s_name} {s_gender} {s_age} {s_department} {s_dormitory}\n")
os.remove(students_file)
os.rename(temp_file, students_file)
if found:
print("学生信息已修改。")
else:
print("未找到该学生信息。")
def queryStudent():
students_file = "students.txt"
print("输入要查询的学生ID: ")
id = int(input())
found = False
with open(students_file, "r") as file:
for line in file:
s_id, s_name, s_gender, s_age, s_department, s_dormitory = line.split()
if int(s_id) == id:
print(f"学生ID: {s_id}\n姓名: {s_name}\n性别: {s_gender}\n年龄: {s_age}\n院系: {s_department}\n宿舍号: {s_dormitory}\n")
found = True
break
if not found:
print("未找到该学生信息。")
def displayMenu():
print("\n====== 学生宿舍信息管理系统 ======")
print("1. 添加学生信息")
print("2. 删除学生信息")
print("3. 修改学生信息")
print("4. 查询学生信息")
print("0. 退出")
print("===================================")
def main():
while True:
displayMenu()
print("请输入您的选择:")
choice = int(input())
if choice == 1:
addStudent()
elif choice == 2:
deleteStudent()
elif choice == 3:
modifyStudent()
elif choice == 4:
queryStudent()
elif choice == 0:
print("感谢使用,再见!")
break
else:
print("无效的选择,请重新输入。")
if __name__ == "__main__":
main()
希望这个博客能够帮助你开始开发自己的学生宿舍信息管理系统。记得点赞、收藏,并留下你的评论!