编写可以实现学生成绩简单管理系统。本系统主要实现以下功能: (1)录入学生信息。 (2)按学号查询学生信息。 (3)按姓名查询学生信息。 (4)添加一个学生信息。 (5)按学号删除学生信息 (6)按学号修改学生信息 (7)显示所有学生信息 (8)按课程排序(有高到底)输出显示学生信息 (9)按分数段统计学生信息 (10)退出系统、
时间: 2023-10-08 07:03:52 浏览: 86
好的,这是一个比较复杂的项目,需要使用数据结构和算法的知识,我会尽力帮你解答。以下是一个简单的学生成绩管理系统的代码示例,供你参考:
```python
class Student:
def __init__(self, sno, name, courses):
self.sno = sno
self.name = name
self.courses = courses # 课程成绩,为一个字典,键是课程名,值是分数
class ScoreManager:
def __init__(self):
self.students = [] # 学生列表
def add_student(self, student):
self.students.append(student)
def find_by_sno(self, sno):
for student in self.students:
if student.sno == sno:
return student
return None
def find_by_name(self, name):
result = []
for student in self.students:
if student.name == name:
result.append(student)
return result
def delete_by_sno(self, sno):
for i in range(len(self.students)):
if self.students[i].sno == sno:
del self.students[i]
break
def update_by_sno(self, sno, student):
for i in range(len(self.students)):
if self.students[i].sno == sno:
self.students[i] = student
break
def sort_by_course(self, course):
self.students.sort(key=lambda s: s.courses.get(course, 0), reverse=True)
def count_by_score_range(self, start, end):
count = 0
for student in self.students:
total_score = sum(student.courses.values())
if start <= total_score <= end:
count += 1
return count
if __name__ == '__main__':
manager = ScoreManager()
while True:
print('1. 录入学生信息')
print('2. 按学号查询学生信息')
print('3. 按姓名查询学生信息')
print('4. 添加一个学生信息')
print('5. 按学号删除学生信息')
print('6. 按学号修改学生信息')
print('7. 显示所有学生信息')
print('8. 按课程排序(有高到底)输出显示学生信息')
print('9. 按分数段统计学生信息')
print('10. 退出系统')
choice = input('请选择操作:')
if choice == '1':
sno = input('请输入学号:')
name = input('请输入姓名:')
courses = {}
while True:
course = input('请输入课程名(按回车退出):')
if course == '':
break
score = input('请输入分数:')
courses[course] = int(score)
student = Student(sno, name, courses)
manager.add_student(student)
elif choice == '2':
sno = input('请输入学号:')
student = manager.find_by_sno(sno)
if student is not None:
print('学号:{},姓名:{},课程成绩:{}'.format(student.sno, student.name, student.courses))
else:
print('未找到该学生')
elif choice == '3':
name = input('请输入姓名:')
students = manager.find_by_name(name)
if len(students) > 0:
for student in students:
print('学号:{},姓名:{},课程成绩:{}'.format(student.sno, student.name, student.courses))
else:
print('未找到该学生')
elif choice == '4':
sno = input('请输入学号:')
name = input('请输入姓名:')
courses = {}
while True:
course = input('请输入课程名(按回车退出):')
if course == '':
break
score = input('请输入分数:')
courses[course] = int(score)
student = Student(sno, name, courses)
manager.add_student(student)
elif choice == '5':
sno = input('请输入学号:')
manager.delete_by_sno(sno)
elif choice == '6':
sno = input('请输入学号:')
student = manager.find_by_sno(sno)
if student is not None:
name = input('请输入姓名:')
courses = {}
while True:
course = input('请输入课程名(按回车退出):')
if course == '':
break
score = input('请输入分数:')
courses[course] = int(score)
new_student = Student(sno, name, courses)
manager.update_by_sno(sno, new_student)
else:
print('未找到该学生')
elif choice == '7':
for student in manager.students:
print('学号:{},姓名:{},课程成绩:{}'.format(student.sno, student.name, student.courses))
elif choice == '8':
course = input('请输入课程名:')
manager.sort_by_course(course)
for student in manager.students:
print('学号:{},姓名:{},{}成绩:{}'.format(student.sno, student.name, course, student.courses.get(course, '未录入')))
elif choice == '9':
start = int(input('请输入分数下限:'))
end = int(input('请输入分数上限:'))
count = manager.count_by_score_range(start, end)
print('分数在{}~{}的学生有{}个'.format(start, end, count))
elif choice == '10':
break
else:
print('输入无效,请重新输入')
```
这个代码中,我们定义了一个 `Student` 类,包含学号、姓名和课程成绩。然后定义了一个 `ScoreManager` 类,包含了各种对学生信息进行管理的方法,如添加、查询、删除、修改等。最后在主函数中实现了一个简单的菜单,让用户可以选择不同的操作。
阅读全文
相关推荐

















