帮我写一个学生成绩管理系统
时间: 2023-06-13 19:09:08 浏览: 32
好的,学生成绩管理系统可以分为以下几个模块:
1. 学生信息管理模块:用于添加、修改、删除和查询学生信息,包括学生的学号、姓名、性别、联系方式等。
2. 课程信息管理模块:用于添加、修改、删除和查询课程信息,包括课程的编号、名称、学分等。
3. 成绩信息管理模块:用于添加、修改、删除和查询学生成绩信息,包括学生的学号、课程的编号、成绩等。
4. 统计分析模块:用于统计学生的平均成绩、总成绩、及格率等。
以下是一个简单的学生成绩管理系统的 Python 代码示例:
```python
class Student:
def __init__(self, id, name, gender, phone):
self.id = id
self.name = name
self.gender = gender
self.phone = phone
class Course:
def __init__(self, id, name, credit):
self.id = id
self.name = name
self.credit = credit
class Score:
def __init__(self, student_id, course_id, score):
self.student_id = student_id
self.course_id = course_id
self.score = score
class StudentManager:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def remove_student(self, student_id):
for student in self.students:
if student.id == student_id:
self.students.remove(student)
break
def modify_student(self, student_id, name=None, gender=None, phone=None):
for student in self.students:
if student.id == student_id:
if name:
student.name = name
if gender:
student.gender = gender
if phone:
student.phone = phone
break
def search_student(self, student_id):
for student in self.students:
if student.id == student_id:
return student
return None
class CourseManager:
def __init__(self):
self.courses = []
def add_course(self, course):
self.courses.append(course)
def remove_course(self, course_id):
for course in self.courses:
if course.id == course_id:
self.courses.remove(course)
break
def modify_course(self, course_id, name=None, credit=None):
for course in self.courses:
if course.id == course_id:
if name:
course.name = name
if credit:
course.credit = credit
break
def search_course(self, course_id):
for course in self.courses:
if course.id == course_id:
return course
return None
class ScoreManager:
def __init__(self):
self.scores = []
def add_score(self, score):
self.scores.append(score)
def remove_score(self, student_id, course_id):
for score in self.scores:
if score.student_id == student_id and score.course_id == course_id:
self.scores.remove(score)
break
def modify_score(self, student_id, course_id, score):
for s in self.scores:
if s.student_id == student_id and s.course_id == course_id:
s.score = score
break
def search_score(self, student_id, course_id):
for score in self.scores:
if score.student_id == student_id and score.course_id == course_id:
return score
return None
def average_score(self, student_id):
total_score = 0
count = 0
for score in self.scores:
if score.student_id == student_id:
total_score += score.score
count += 1
if count == 0:
return 0
else:
return total_score / count
def total_score(self, student_id):
total_score = 0
for score in self.scores:
if score.student_id == student_id:
total_score += score.score
return total_score
def pass_rate(self, student_id):
passed = 0
total = 0
for score in self.scores:
if score.student_id == student_id:
total += 1
if score.score >= 60:
passed += 1
if total == 0:
return 0
else:
return passed / total
student_manager = StudentManager()
course_manager = CourseManager()
score_manager = ScoreManager()
while True:
print('1. 学生信息管理')
print('2. 课程信息管理')
print('3. 成绩信息管理')
print('4. 统计分析')
print('0. 退出')
choice = input('请选择操作:')
if choice == '1':
print('1. 添加学生')
print('2. 删除学生')
print('3. 修改学生')
print('4. 查找学生')
choice = input('请选择操作:')
if choice == '1':
id = input('请输入学号:')
name = input('请输入姓名:')
gender = input('请输入性别:')
phone = input('请输入联系方式:')
student = Student(id, name, gender, phone)
student_manager.add_student(student)
print('添加成功!')
elif choice == '2':
id = input('请输入要删除的学生的学号:')
student_manager.remove_student(id)
print('删除成功!')
elif choice == '3':
id = input('请输入要修改的学生的学号:')
name = input('请输入新的姓名(不修改请按回车):')
gender = input('请输入新的性别(不修改请按回车):')
phone = input('请输入新的联系方式(不修改请按回车):')
student_manager.modify_student(id, name, gender, phone)
print('修改成功!')
elif choice == '4':
id = input('请输入要查找的学生的学号:')
student = student_manager.search_student(id)
if student:
print('学号:', student.id)
print('姓名:', student.name)
print('性别:', student.gender)
print('联系方式:', student.phone)
else:
print('查找失败!')
elif choice == '2':
print('1. 添加课程')
print('2. 删除课程')
print('3. 修改课程')
print('4. 查找课程')
choice = input('请选择操作:')
if choice == '1':
id = input('请输入课程编号:')
name = input('请输入课程名称:')
credit = input('请输入学分:')
course = Course(id, name, credit)
course_manager.add_course(course)
print('添加成功!')
elif choice == '2':
id = input('请输入要删除的课程编号:')
course_manager.remove_course(id)
print('删除成功!')
elif choice == '3':
id = input('请输入要修改的课程编号:')
name = input('请输入新的课程名称(不修改请按回车):')
credit = input('请输入新的学分(不修改请按回车):')
course_manager.modify_course(id, name, credit)
print('修改成功!')
elif choice == '4':
id = input('请输入要查找的课程编号:')
course = course_manager.search_course(id)
if course:
print('课程编号:', course.id)
print('课程名称:', course.name)
print('学分:', course.credit)
else:
print('查找失败!')
elif choice == '3':
print('1. 添加成绩')
print('2. 删除成绩')
print('3. 修改成绩')
print('4. 查找成绩')
choice = input('请选择操作:')
if choice == '1':
student_id = input('请输入学生学号:')
course_id = input('请输入课程编号:')
score = input('请输入成绩:')
score = Score(student_id, course_id, score)
score_manager.add_score(score)
print('添加成功!')
elif choice == '2':
student_id = input('请输入学生学号:')
course_id = input('请输入课程编号:')
score_manager.remove_score(student_id, course_id)
print('删除成功!')
elif choice == '3':
student_id = input('请输入学生学号:')
course_id = input('请输入课程编号:')
score = input('请输入新的成绩:')
score_manager.modify_score(student_id, course_id, score)
print('修改成功!')
elif choice == '4':
student_id = input('请输入学生学号:')
course_id = input('请输入课程编号:')
score = score_manager.search_score(student_id, course_id)
if score:
print('学生学号:', score.student_id)
print('课程编号:', score.course_id)
print('成绩:', score.score)
else:
print('查找失败!')
elif choice == '4':
student_id = input('请输入学生学号:')
print('平均成绩:', score_manager.average_score(student_id))
print('总成绩:', score_manager.total_score(student_id))
print('及格率:', score_manager.pass_rate(student_id))
elif choice == '0':
break
else:
print('无效的输入,请重新输入!')
```
以上代码只是一个简单的示例,可以根据具体需求进行修改和扩展。