请你给出一份SASD模式的python案例
时间: 2024-04-06 21:28:57 浏览: 101
SAS编程案例教程
好的,以下是一个使用SASD模式的Python案例:
场景:设计一个系统来管理学生的课程成绩信息。
1. 分析阶段:
Student(学生):属性包括学号,姓名,性别,年龄,班级等。
Course(课程):属性包括课程编号,课程名称,学分等。
Score(成绩):属性包括学号,课程编号,成绩等。
2. 设计阶段:
在设计阶段,我们需要根据分析阶段得出的实体和属性,设计对应的类。
class Student:
def __init__(self, stu_id, name, gender, age, clazz):
self.stu_id = stu_id
self.name = name
self.gender = gender
self.age = age
self.clazz = clazz
class Course:
def __init__(self, course_id, name, credit):
self.course_id = course_id
self.name = name
self.credit = credit
class Score:
def __init__(self, stu_id, course_id, score):
self.stu_id = stu_id
self.course_id = course_id
self.score = score
3. 实现阶段:
在实现阶段,我们需要将类实例化并实现对应的功能。
# 实例化学生、课程和成绩
s1 = Student('001', '张三', '男', 20, '计算机科学与技术1班')
s2 = Student('002', '李四', '女', 19, '计算机科学与技术2班')
c1 = Course('001', 'Python编程', 3)
c2 = Course('002', '算法设计', 4)
sc1 = Score('001', '001', 90)
sc2 = Score('001', '002', 85)
sc3 = Score('002', '001', 92)
sc4 = Score('002', '002', 88)
# 学生信息管理
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 find_student(self, stu_id):
for student in self.students:
if student.stu_id == stu_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):
self.courses.remove(course)
def find_course(self, course_id):
for course in self.courses:
if course.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, score):
self.scores.remove(score)
def find_score(self, stu_id, course_id):
for score in self.scores:
if score.stu_id == stu_id and score.course_id == course_id:
return score
return None
# 实例化学生、课程和成绩管理器
sm = StudentManager()
cm = CourseManager()
scm = ScoreManager()
# 添加学生、课程和成绩信息
sm.add_student(s1)
sm.add_student(s2)
cm.add_course(c1)
cm.add_course(c2)
scm.add_score(sc1)
scm.add_score(sc2)
scm.add_score(sc3)
scm.add_score(sc4)
# 查找学生、课程和成绩信息
student = sm.find_student('001')
print(student.name)
course = cm.find_course('002')
print(course.name)
score = scm.find_score('002', '002')
print(score.score)
以上就是一个使用SASD模式的Python案例,实现了学生、课程和成绩信息的管理。
阅读全文