class Person(object):#人类
def __init__(self,name,age):#属性:姓名 年龄
self.name=name
self.age=age
def info(self):#方法:打印个人的名字和年龄
print('我叫{},我今年{}岁了'.format(self.name,self.age))
class Course(object):#课程类
def __init__(self,name,info,hours):#属性:课程名 课程信息 学时
self.name=name
self.info=info
self.hours=hours
self.students=[] #注册该课程的学生类表
self.teachers=[]
def add_student(self,student):#方法:将学生添加到课程中
if student not in self.students:#如果学生不在列表里
self.students.append(student)#添加进列表
def add_teacher(self,teacher):#方法:将学生添加到课程中
if teacher not in self.teachers:#如果学生不在列表里
self.teachers.append(teacher)#添加进列表
def show_list(self):#方法:列出选了课程的学生
print('选择{}课程的学生有:'.format(self.name))
for i in self.students:#遍历列表
print(i.name)
def show_course(self):#方法:打印课程信息
print('{}课程的信息如下:'.format(self.name))
print(self.name,self.info,self.hours)
class Student(Person):#学生类 继承人类
def __init__(self,name,age):
super().__init__(name,age)
self.grades={}#字典储存学生课程,课程名,成绩
self.courses=[]#列表储存学生选择的课程
def choose_course(self,course):#方法:选择课程
if course in self.courses:#如果已经选择
print('{}已经选了{}课程'.format(self.name,course.name))
else:
self.courses.append(course)#添加进课程列表
course.add_student(self)#将学生添加进课程中
print('{}成功选择了{}课程'.format(self.name, course.name))
def get_grade(self,course):#方法:获取指定课程的成绩
if course.name not in self.grades:
return None
return self.grades[course.name]
def show_info(self):#方法:显示课程名,课程信息,学时,成绩
print('{}的选课信息如下:'.format(self.name))
print('课程名\t课程信息\t学时\t成绩\t任课老师')
for i in self.courses:
print('{}{}{}{}'.format(i.name,i.info,i.hours,self.grades[i.name],i.teachers[0]))
def eva_course(self,course,message):
print('{}对{}课程的评价是:{}'.format(self.name,course.name,message))
class Teacher(Person):#老师类 继承人类
def __init__(self, name, age):
super().__init__(name, age)
self.courses=[]
def teach_course(self,course):#方法:添加新课程到老师列表
if course not in self.courses:
self.courses.append(course)
print('{}教授{}课程'.format(self.name,course.name))
def give_grade(self,student,course,grade):#方法:为学生的某门课打分
if course in self.courses and student in course.students:#如果老师教这门课,学生选了这门课
student.grades[course.name]=grade
print('{}给{}同学{}课程打了{}分'.format(self.name,student.name,course.name,grade))
else:
print('{}同学没有选择{}课,或者{}不教{}课'.format(self.name,student.name,course.name,grade))
# def eva_student(self,student,course,evaluation):#评价学生在某门课中的表现
# self.evaluation=evaluation
# if course in self.courses and student in course.students:
# print('{}给{}同学{}的评价是{}'.format(self.name, student.name, course.name, evaluation))
s1=Student('张三',18)
teacher=Teacher('王老师',45)
math=Course('数学','高等数学',64)
english=Course('英语','大学英语',48)
s1.choose_course(math)
s1.choose_course(english)
teacher.teach_course(math)
teacher.teach_course(english)
teacher.give_grade(s1,math,99)
# teacher.eva_student(math,'xiao','sada')
teacher.give_grade(s1,english,90)
s1.show_info()
学生选课系统
最新推荐文章于 2024-06-10 22:18:41 发布