学生选课系统


学生:


信息: 学号, 姓名, 住址. 选的课程列列表。
功能:
查看: 查看该学生所有课程信息.
添加课程: 把选好的课程添加到课程列列表中 (传参)


课程:


信息: 课程编号, 课程名称. 老师。
功能:
查看: 查看该课程的全部信息
设置老师: 给当前课程设置一个老师. (传参)


老师:


信息: 老师编号, 老师名称. 电话
功能: 无
请完成以上三个类. 创建6个课程, 6个老师. 给课程安排好老师. 然后创建30个学生.
每个学生随机被分配3个课程. 最终显示出这30个学生的选课情况以及任课老师的电话

class Student:
def __init__(self, sno, sname):
self.sno = sno
self.sname = sname
self.cour_list = []

def chakan(self): # 查看课程
for c in self.cour_list:
print(f"{self.sname}选了{c.cname}")

def tianjia(self, cour): # 添加课程
self.cour_list.append(cour)


class Course:
def __init__(self, cno, cname, teacher=None):
self.cno = cno
self.cname = cname
self.teacher = teacher

def chakan(self):
print(f"{self.cno}, {self.cname}, {self.teacher.tname}")

# 设置老师
def shezhilaoshi(self, teacher):
self.teacher = teacher

class Teacher:
def __init__(self, tno, tname, tphone):
self.tno = tno
self.tname = tname
self.tphone = tphone

'''
请完成以上三个类. 创建6个课程, 6个老师. 给课程安排好老师. 然后创建30个学⽣.
每个学⽣随机被分配3个课程. 最终显⽰出这三⼗个学⽣的选课情况以及任课老师的电话
'''

# 准备生成随机数
from random import randint


c1 = Course("01", "抽烟")
c2 = Course("02", "喝酒")
c3 = Course("03", "烫头")
c4 = Course("04", "点烟")
c5 = Course("05", "倒酒")
c6 = Course("06", "给人烫头")

t1 = Teacher("01", "唐伯虎", "13301122001")
t2 = Teacher("02", "祝枝山", "13301122002")
t3 = Teacher("03", "文征明", "13301122003")
t4 = Teacher("04", "李白", "13301122004")
t5 = Teacher("05", "黄冠", "13301122005")
t6 = Teacher("06", "谢晋", "13301122006")

# 给课程设置老师
c1.shezhilaoshi(t1)
c2.shezhilaoshi(t2)
c3.shezhilaoshi(t3)
c4.shezhilaoshi(t4)
c5.shezhilaoshi(t5)
c6.shezhilaoshi(t6)

# 0 1 2 3 4 5 # 0-5
c_lst = [c1, c2, c3, c4, c5, c6]

stu_lst = []

for i in range(30): # 循环30次.
stu = Student(i, "学生"+str(i)) # 创建30个学生

# 生成随机的三个数字. 对应的是三个课程索引
s = set()
while len(s) < 3:
s.add(randint(0, 5))

# 把随机的三个课程索引对应的课程设置给学生
for n in s:
# print(n) # ???? 随机出来的课程的索引
stu.tianjia(c_lst[n])

stu_lst.append(stu) # 加到列表


# 显示学生的选课情况以及老师的电话
for s in stu_lst:
print(f"学生编号:{s.sno}, 学生姓名:{s.sname}")

# 拿到学生的课程信息
for c in s.cour_list:
print(f"\t课程编号:{c.cno}, 课程名称: {c.cname}, 任课老师的电话是:{c.teacher.tphone}")


'''
面向对象:
1. 先写类. 属性,功能 -> 对需求了如指掌
2. 对象就是一坨内存地址.
'''

 

posted @ 2019-01-02 16:00  威霸  阅读(518)  评论(0编辑  收藏  举报