用python设计一个简单的学生信息管理系统,包括添加学生、查询学生信息、修改学生信息、统计学生成绩、统计单科成绩等功能。
时间: 2024-10-15 17:24:09 浏览: 36
在Python中创建一个简单的学生信息管理系统可以使用字典数据结构来存储每个学生的详细信息,如姓名、年龄、成绩等。下面是一个基础的设计框架:
```python
class StudentInfoSystem:
def __init__(self):
self.students = {} # 使用字典存储学生信息,键是学号
# 添加学生
def add_student(self, student_id, name, age, grades):
if student_id not in self.students:
self.students[student_id] = {"name": name, "age": age, "grades": grades}
else:
print("Student already exists.")
# 查询学生信息
def query_student(self, student_id):
if student_id in self.students:
return self.students.get(student_id)
else:
return "Student not found."
# 修改学生信息
def update_student_info(self, student_id, key, new_value):
if student_id in self.students:
self.students[student_id][key] = new_value
print(f"Student information updated successfully.")
else:
print("Student not found.")
# 统计学生成绩
def stats_grades(self):
total_scores = sum([sum(grade_list) for _, grade_list in self.students.values()])
average_score = total_scores / len(self.students) if self.students else None
return f"Total scores: {total_scores}, Average score: {average_score} (if available)"
# 统计单科成绩
def stats_subject_scores(self, subject):
subject_scores = [grade_list.count(subject) for _, grade_list in self.students.items() if subject in grade_list]
return f"{subject} scores: {sum(subject_scores)}"
# 示例用法
sis = StudentInfoSystem()
sis.add_student(1, "Tom", 18, [90, 85, 95])
sis.query_student(1)
sis.update_student_info(1, "age", 19)
sis.stats_grades()
sis.stats_subject_scores(90)
```
注意这只是一个基础的示例,实际应用可能需要更复杂的错误处理和用户界面。此外,你可以考虑使用数据库来持久化数据,而不是简单的内存字典,如果系统规模会扩大。
阅读全文