首页 >
资讯 > 正文:python面向对象大作业(学生成绩统计系统)
python面向对象大作业(学生成绩统计系统)
2025-7-24 11:11:48
浏览32次
实现一个相对完整的学生成绩统计系统,所有数据持久化保存到文本文件中。
1. 类设计
1.1 Person类(抽象基类)
属性:姓名(name)、性别(gender)、年龄(age)
方法:
显示基本信息(display_info()) - 抽象方法
静态方法:validate_gender(gender) - 验证性别有效性
静态方法:validate_age(age) - 验证年龄有效性
1.2 Student类(继承自Person)
额外属性:学号(student_id)、所属班级(class_name)、成绩字典(scores)
方法:
实例方法:add_score(course, score) - 添加成绩
实例方法:calculate_average() - 计算平均分
类方法:get_top_student(cls) - 获取成绩最好的学生
类方法:get_class_average(cls, class_name) - 计算班级平均分
静态方法:validate_score(score) - 验证成绩有效性
1.3 Teacher类(继承自Person)
额外属性:工号(teacher_id)、所教课程(teaching_courses)
方法:
实例方法:add_course(course) - 添加课程
类方法:get_teacher_by_course(cls, course_name) - 根据课程获取教师
静态方法:validate_teacher_id(teacher_id) - 验证工号格式
1.4 Course类
属性:课程编号(course_id)、课程名称(course_name)、学分(credit)
方法:
实例方法:display_info() - 显示课程信息
类方法:get_most_popular_course(cls) - 获取选课人数最多的课程
静态方法:validate_credit(credit) - 验证学分有效性
2. 成绩管理功能
2.1 成绩录入与查询
添加学生成绩(自动保存到文件)
查询学生所有课程成绩
查询课程所有学生成绩
查询班级所有学生成绩
2.2 成绩统计与分析
计算学生平均分(实例方法)
计算课程平均分(类方法)
计算班级平均分(类方法)
学生成绩排名(类方法)
2.3 数据导入导出
从文件加载所有数据(类方法)
保存所有数据到文件(类方法)
导出学生成绩单(实例方法)
3. 数据文件结构
data/
├── students.txt
├── teachers.txt
├── courses.txt
├── scores.txt
└── logs/
└── system.log
文件操作要求
使用类方法实现数据导入导出
静态方法验证文件路径有效性
4. 异常处理增强
4.1 自定义异常类
InvalidScoreError - 无效成绩异常
DuplicateIDError - ID重复异常
FileOperationError - 文件操作异常
4.2 异常处理场景
数据验证失败时抛出相应异常,保存异常信息到logs/system.log