基本信息管理模块的主要功能有学生信息的添加、删除、修改、显示和学生数据的导入导出,学生成绩管理模块的主要功能有统计课程最高分、最低分和平均分。要求按照面向对象思维进行编写,按照以下模式完成:1、设计一个学生类,包含学号、姓名、语文成绩、数学成绩和英语成绩等数据成员。2、引入OS模块,用于导入导出路径文件信息3、设计一个学生管理类,用于定义各个模块的具体功能函数。4、设计一个主菜单,两个子菜单,分别管理学生基本信息和学生成绩信息。用python语言
时间: 2024-04-23 12:26:59 浏览: 71
好的,我明白你的问题了。下面是一个简单的示例代码,它可以实现你提到的功能:
```python
import os
class Student:
def __init__(self, id, name, chinese, math, english):
self.id = id
self.name = name
self.chinese = chinese
self.math = math
self.english = english
class StudentManager:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def remove_student(self, student):
self.students.remove(student)
def modify_student(self, student):
for i in range(len(self.students)):
if self.students[i].id == student.id:
self.students[i] = student
break
def show_student(self):
for student in self.students:
print("学号:{},姓名:{},语文成绩:{},数学成绩:{},英语成绩:{}".format(student.id, student.name, student.chinese, student.math, student.english))
def import_student(self, path):
if not os.path.exists(path):
print("文件不存在!")
return
with open(path, 'r') as f:
lines = f.readlines()
for line in lines:
id, name, chinese, math, english = line.strip().split(',')
self.add_student(Student(id, name, float(chinese), float(math), float(english)))
def export_student(self, path):
with open(path, 'w') as f:
for student in self.students:
f.write("{},{},{},{},{}\n".format(student.id, student.name, student.chinese, student.math, student.english))
def calculate_score(self):
chinese_scores = [student.chinese for student in self.students]
math_scores = [student.math for student in self.students]
english_scores = [student.english for student in self.students]
print("语文最高分:{},最低分:{},平均分:{}".format(max(chinese_scores), min(chinese_scores), sum(chinese_scores) / len(chinese_scores)))
print("数学最高分:{},最低分:{},平均分:{}".format(max(math_scores), min(math_scores), sum(math_scores) / len(math_scores)))
print("英语最高分:{},最低分:{},平均分:{}".format(max(english_scores), min(english_scores), sum(english_scores) / len(english_scores)))
def main():
manager = StudentManager()
while True:
print("请选择操作:")
print("1. 学生基本信息管理")
print("2. 学生成绩管理")
print("0. 退出系统")
choice = input("请输入操作编号:")
if choice == '1':
while True:
print("请选择操作:")
print("1. 添加学生")
print("2. 删除学生")
print("3. 修改学生")
print("4. 显示所有学生")
print("5. 导入学生信息")
print("6. 导出学生信息")
print("0. 返回上一级菜单")
choice = input("请输入操作编号:")
if choice == '1':
id = input("请输入学号:")
name = input("请输入姓名:")
chinese = float(input("请输入语文成绩:"))
math = float(input("请输入数学成绩:"))
english = float(input("请输入英语成绩:"))
manager.add_student(Student(id, name, chinese, math, english))
print("添加成功!")
elif choice == '2':
id = input("请输入要删除的学生学号:")
for student in manager.students:
if student.id == id:
manager.remove_student(student)
print("删除成功!")
break
else:
print("未找到该学生!")
elif choice == '3':
id = input("请输入要修改的学生学号:")
for student in manager.students:
if student.id == id:
name = input("请输入姓名:")
chinese = float(input("请输入语文成绩:"))
math = float(input("请输入数学成绩:"))
english = float(input("请输入英语成绩:"))
manager.modify_student(Student(id, name, chinese, math, english))
print("修改成功!")
break
else:
print("未找到该学生!")
elif choice == '4':
manager.show_student()
elif choice == '5':
path = input("请输入文件路径:")
manager.import_student(path)
print("导入成功!")
elif choice == '6':
path = input("请输入文件路径:")
manager.export_student(path)
print("导出成功!")
elif choice == '0':
break
else:
print("输入有误,请重新输入!")
elif choice == '2':
manager.calculate_score()
elif choice == '0':
break
else:
print("输入有误,请重新输入!")
if __name__ == '__main__':
main()
```
这段代码中,我们定义了一个 `Student` 类,用于表示学生的基本信息;定义了一个 `StudentManager` 类,用于管理学生信息;同时,我们还定义了一个主函数 `main()`,用于实现菜单功能。在 `main()` 函数中,我们首先输出一个菜单供用户选择操作,随后根据用户选择的操作编号进入相应的子菜单,执行相应的操作。其中,子菜单1包括添加学生、删除学生、修改学生、显示所有学生、导入学生信息和导出学生信息等功能;子菜单2包括统计课程最高分、最低分和平均分等功能。
阅读全文