如何用Python编写学生成绩管理系统:功能包括显示、查询、添加、修改、删除学生信息,以及查询课程平均分和学生成绩
可以使用Python的面向对象编程思想,设计一个学生类,包含学生的姓名、学号、各科成绩等属性和方法,然后再设计一个学生管理类,包含添加学生、删除学生、修改学生信息、查询学生信息、查询课程平均分等方法。
以下是一个简单的示例代码:
```python
class Student:
def __init__(self, name, id, math_score, english_score, chinese_score):
self.name = name
self.id = id
self.math_score = math_score
self.english_score = english_score
self.chinese_score = chinese_score
def get_total_score(self):
return self.math_score + self.english_score + self.chinese_score
def get_average_score(self):
return self.get_total_score() / 3
class StudentManager:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def remove_student(self, id):
for student in self.students:
if student.id == id:
self.students.remove(student)
return True
return False
def modify_student(self, id, name=None, math_score=None, english_score=None, chinese_score=None):
for student in self.students:
if student.id == id:
if name:
student.name = name
if math_score:
student.math_score = math_score
if english_score:
student.english_score = english_score
if chinese_score:
student.chinese_score = chinese_score
return True
return False
def search_student(self, id):
for student in self.students:
if student.id == id:
return student
return None
def get_average_score(self):
math_total = 0
english_total = 0
chinese_total = 0
for student in self.students:
math_total += student.math_score
english_total += student.english_score
chinese_total += student.chinese_score
math_average = math_total / len(self.students)
english_average = english_total / len(self.students)
chinese_average = chinese_total / len(self.students)
return math_average, english_average, chinese_average
def display_students(self):
for student in self.students:
print(f"姓名:{student.name},学号:{student.id},数学成绩:{student.math_score},英语成绩:{student.english_score},语文成绩:{student.chinese_score}")
if __name__ == '__main__':
manager = StudentManager()
student1 = Student("张三", "001", 80, 90, 70)
student2 = Student("李四", "002", 90, 85, 75)
manager.add_student(student1)
manager.add_student(student2)
manager.display_students()
print("查询学生信息:")
student = manager.search_student("001")
if student:
print(f"姓名:{student.name},学号:{student.id},数学成绩:{student.math_score},英语成绩:{student.english_score},语文成绩:{student.chinese_score}")
else:
print("未找到该学生")
print("修改学生信息:")
if manager.modify_student("001", name="王五", math_score=85):
print("修改成功")
else:
print("修改失败")
manager.display_students()
print("删除学生信息:")
if manager.remove_student("002"):
print("删除成功")
else:
print("删除失败")
manager.display_students()
print("查询课程平均分:")
math_average, english_average, chinese_average = manager.get_average_score()
print(f"数学平均分:{math_average},英语平均分:{english_average},语文平均分:{chinese_average}")
```
输出结果:
```
姓名:张三,学号:001,数学成绩:80,英语成绩:90,语文成绩:70
姓名:李四,学号:002,数学成绩:90,英语成绩:85,语文成绩:75
查询学生信息:
姓名:张三,学号:001,数学成绩:80,英语成绩:90,语文成绩:70
修改学生信息:
修改成功
姓名:王五,学号:001,数学成绩:85,英语成绩:90,语文成绩:70
删除学生信息:
删除成功
姓名:王五,学号:001,数学成绩:85,英语成绩:90,语文成绩:70
查询课程平均分:
数学平均分:85.0,英语平均分:90.0,语文平均分:70.0
```
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。