创建一个简单的学生管理系统可以帮助你学习如何使用Python来管理数据、处理用户输入和输出。以下是一个基本的学生管理系统示例,它包括添加学生、显示学生列表、删除学生和查找学生等功能。
我们将使用一个简单的数据结构(如列表)来存储学生信息,并编写函数来管理这些操作。
class Student:
def __init__(self, student_id, name, age, grade):
self.student_id = student_id
self.name = name
self.age = age
self.grade = grade
def __str__(self):
return f"ID: {
self.student_id}, Name: {
self.name}, Age: {
self.age}, Grade: {
self.grade}"
class StudentManagementSystem:
def __init__(self):
self.students = []
def add_student(self, student_id, name, age, grade):
new_student = Student(student_id, name, age, grade)
self.students.append(new_student)
print(f"Added student: {
new_student}")
def display_students(self):
if not self.students:
print("No students found.")
else:
for student in self.students:
print(student)
def delete_student(self, student_id):
student_to_delete = None
for student in self.students:
if student.student_id == student_id:
student_to_delete = student
break
if student_to_delete:
self.students.remove(student_to_delete)
print(f"Deleted student: {
student_to_delete}")
else:
print(f"Student with ID {
student_id} not found.")
def find_student(self, student_id):
for student in self.students:
if student.student_id == student_id:
return student
return None
def main():
system = StudentManagementSystem()
while True:
print("\nStudent Management System")
print("1. Add Student")
print("2. Display Students")
print("3. Delete Student")
print("4. Find Student")
print("5. Exit")
choice = input("Enter your choice: ")
if choice == '1':
student_id = input("Enter student ID: ")
name = input("Enter student name: ")
age = input("Enter student age: ")
grade = input("Enter student grade: ")
system.add_student(student_id, name, age, grade)
elif choice == '2':
system.display_students()
elif choice == '3':
student_id = input("Enter student ID to delete: ")
system.delete_student(student_id)
elif choice == '4':
student_id = input("Enter student ID to find: ")
student = system.find_student(student_id)
if student:
print(student)
else:
print("Student not found.")
elif choice == '5':
print("Exiting the system.")
break
else:
print("Invalid choice. Please try again.")
if __name__ == "__main__":
main()
功能说明
- 添加学生:用户输入学生的ID、姓名、年龄和成绩,并将其添加到系统中。
- 显示学生:列出系统中所有学生的信息。
- 删除学生:根据学生的ID删除学生信息。
- 查找学生:根据学生的ID查找并显示学生的信息。
- 退出系统:退出程序。
上面的代码示例已经实现了5个基本功能:添加学生、显示学生、删除学生、查找学生和退出系统。不过,为了确保代码的完整性和清晰性,我将再次列出这些功能的实现,并对某些部分进行微调或解释。
以下是完整的学生管理系统代码:
class Student:
def __init__(self, student_id, name, age, grade):
self.student_id = student_id
self.name = name
self.age = int(age) # 确保年龄是整数
self.grade = grade
def __str__(self):
return f"ID: {
self.student_id}, Name: {
self.name}, Age: {
self.age}, Grade: {
self.grade}"
class StudentManagementSystem:
def __init__(self):
self.students = []
def add_student(self, student_id, name, age, grade):
# 检查学生ID是否已存在
for student in self.students:
if student.student_id == student_id:
print(f"Error: Student with ID {
student_id} already exists.")
return
new_student = Student(student_id, name, age, grade)
self.students.append(new_student)
print(f"Added student: {
new_student}")
def display_students(self):
if not self.students:
print("No students found.")
else:
for student in self.students:
print(student)
def delete_student(self, student_id):
student_to_delete = None
for student in self.students:
if student.student_id == student_id:
student_to_delete = student
break
if student_to_delete:
self.students.remove(student_to_delete)
print(f"Deleted student: {
student_to_delete}")
else:
print(f"Student with ID {
student_id} not found.")
def find_student(self, student_id):
for student in self.students:
if student.student_id == student_id:
return student
return None
def main():
system = StudentManagementSystem()
while True:
print("\nStudent Management System")
print("1. Add Student")
print("2. Display Students")
print("3. Delete Student")
print("4. Find Student")
print("5. Exit")
choice = input("Enter your choice: ")
if choice == '1':
student_id = input("Enter student ID: ")
name = input("Enter student name: ")
age = input("Enter student age: ")
# 确保输入的是有效的整数
while not age.isdigit():
print("Invalid age. Please enter a valid integer.")
age = input("Enter student age: ")
grade = input("Enter student grade: ")
system.add_student(student_id, name, age, grade)
elif choice == '2':
system.display_students()
elif choice == '3':
student_id = input("Enter student ID to delete: ")
system.delete_student(student_id)
elif choice == '4':
student_id = input("Enter student ID to find: ")
student = system.find_student(student_id)
if student:
print(student)
else:
print("Student not found.")
elif choice == '5':
print("Exiting the system.")
break
else:
print("Invalid choice. Please try again.")
if __name__ == "__main__":
main()
代码解释
-
Student 类:定义了学生对象,包含ID、姓名、年龄和成绩属性。
__str__
方法用于打印学生信息。 -
StudentManagementSystem 类:管理学生对象的列表,包含添加、显示、删除和查找学生的方法。
-
add_student 方法:在添加学生之前,检查学生ID是否已存在。如果存在,则打印错误消息;否则,创建新学生对象并将其添加到列表中。
-
display_students 方法:打印所有学生的信息。如果列表为空,则打印“No students found.”。
-
delete_student 方法:根据学生的ID查找并删除学生对象。如果找不到学生,则打印错误消息。
-
find_student 方法:根据学生的ID查找学生对象。如果找到,则返回学生对象;否则,返回
None
。 -
main 函数:包含主循环,用于显示菜单、获取用户输入并调用相应的方法。
-
输入验证:在添加学生时,使用
while
循环确保年龄输入是有效的整数。
运行此代码将启动学生管理系统,您可以按照提示输入数据来管理学生信息。
运行程序
将上述代码保存为一个Python文件(例如student_management.py
),然后在命令行中运行该文件:
python student_management.py
按照提示输入数据,即可进行学生信息的管理。