zoukankan      html  css  js  c++  java
  • 作业 选课系统

     

    本节作业: 选课系统

    角色:学校、学员、课程、讲师
    要求:
    1. 创建北京、上海 2 所学校
    2. 创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开
    3. 课程包含,周期,价格,通过学校创建课程 
    4. 通过学校创建班级, 班级关联课程、讲师
    5. 创建学员时,选择学校,关联班级
    5. 创建讲师角色时要关联学校, 
    6. 提供两个角色接口
    6.1 学员视图, 可以注册, 交学费, 选择班级,
    6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩 
    6.3 管理视图,创建讲师, 创建班级,创建课程

    7. 上面的操作产生的数据都通过pickle序列化保存到文件里

    这几天烦心事情太多了,没法很好的专注,陆陆续续写了一个周。

    我问了下同事,他们说他们初学的时候也就是一天就能写好,很受伤。

    目前只有序列化这里没做,但是有思路了,有了实现的方法。写在最后边

      1 # coding=utf-8
      2 import time
      3 import pickle
      4 
      5 
      6 def log(a):
      7     log_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
      8     b = str(log_time)
      9     c = str(a) + str(b) + '
    '
     10     with open('log.text', 'ab')as s:
     11         s.write(pickle.dumps(c))
     12 
     13 class School(object):
     14     def __init__(self, name, addr, city):
     15         self.name = name  # 这个名字是学校的
     16         self.addr = addr  # 办学地址
     17         self.city = city  # 办学城市
     18         self.teacher_list = []  # 老师
     19         self.student_list = []  # 学生
     20         self.courese_list = []  # 开设课程
     21         self.grades_list = []  # 班级
     22         self.save_stud_id = []  # 储存stduID,不知道以后能不能用的,先创建
     23         self.save_stud_pwd = []
     24         self.grades_name = []
     25         self.courese_name = []
     26         self.teacher_name = []
     27         self.student_name = []
     28 
     29     def creation_techer(self, teacher_obj):
     30         a = '为 %s 老师办理上岗' % teacher_obj.name  # 这个名字是实力类的
     31         print(a)
     32         log(a)
     33         self.teacher_list.append(teacher_obj)
     34         self.teacher_name.append(teacher_obj.name)
     35 
     36     def baocun_studentId(self, obj_stuent):
     37         print('为%s 同学办理入学手续' % obj_stuent.name)  # 这里的名字也是实例的名字
     38         self.student_list.append(obj_stuent)
     39         self.student_name.append(obj_stuent.name)
     40         self.save_stud_id.append(obj_stuent.stud_id)
     41 
     42     def chuangjian_laoshi(self):
     43         pass
     44 
     45     def creation_course(self, course_type, pice, time):  # 创建课程
     46         a = '创建课程%s' % course_type
     47         print(a)
     48         self.courese_list.append(Course(course_type, pice, time))
     49         self.courese_name.append(course_type)
     50         log(a)
     51 
     52     def creation_grade(self, grade_name):  # 创建班级
     53         a = '创建班级%s' % grade_name
     54         log(a)
     55         self.grades_list.append(Grade(grade_name))  # 把类加进去了
     56         self.grades_name.append(grade_name)  # 保存班级姓名
     57     def tell_school(self):  #self, name, addr, city):
     58         a = ('''
     59                         ----info of School:%s----   
     60                         Name:%s
     61                         Addr:%s
     62                         City:%s
     63                         Course:%s
     64                         Grade:%s
     65                         ''' % (self.name, self.name, self.addr, self.city,self.courese_name,self.grades_name))
     66         print(a)
     67         log(a)
     68 
     69 class School_number(object):
     70     def __int__(self, name, age, sex):
     71         self.name = name
     72         self.age = age
     73         self.sex = sex
     74 
     75 
     76 class Course():  # 课程
     77     def __init__(self, type, price, time):
     78         self.type = type
     79         self.price = price
     80         self.time = time
     81 
     82     def tell(self):
     83         a = ('''
     84                 ----info of Course:%s----   
     85                 Type:%s
     86                 Price:%s
     87                 Time:%s
     88                 ''' % (self.type, self.type, self.price, self.time))
     89         print(a)
     90         # f = open('teacher_acount.text', 'ab+')
     91         # f.write(pickle.dumps(a))
     92         # f.close()
     93 
     94 
     95 class Grade():  # 班级   这里再试试
     96     def __init__(self, grade_name):
     97         # super(Course,self).__int__(type)  #班级关联课程跟讲师
     98         self.grade_name = grade_name
     99         # self.grade_all=[]
    100         self.courese_type = []
    101         self.teacher_grade = []
    102         self.student_grade = []
    103         self.student_grade_name=[] #用于老师视图显示班级信息
    104         self.teacher_grade_name=[] #用于老师视图显示班级信息
    105 
    106     def add_course(self, obj_course):
    107         self.courese_type.append(obj_course.type)
    108         print('%s添加课程%s' % (self.grade_name, obj_course.type))
    109 
    110     def add_student(self, obj_stduent):
    111         self.courese_type.append(obj_stduent.courese_class_student)  #添加学生选择的课程
    112         self.student_grade.append(obj_stduent)
    113         self.student_grade_name.append(obj_stduent.name)
    114         print('添加%s到班级学生列表' % obj_stduent.name)
    115 
    116     def add_teacher(self, obj_teancher):
    117         self.teacher_grade.append(obj_teancher)
    118         self.teacher_grade_name.append(obj_teancher.name)
    119         print('添加%s到班级老师列表' % obj_teancher.name)
    120 
    121     def tell_student_grade(self):
    122         for index, i in enumerate(self.student_grade):
    123             print(self.student_grade[index].name,'in garde %s'%self.grade_name)
    124 
    125     def teall_teacher_grade(self):
    126         for index, i in enumerate(self.teacher_grade):
    127             print(self.teacher_grade[index].name,'in garde %s'%self.grade_name)
    128 
    129 
    130 class Student(School, Grade, Course):
    131     def __init__(self, name, age, sex, stud_id, stud_pwd, money):
    132         # Grade.__int__(self,type)
    133         # super(Student, self).__init__(courese)  # 关联班级
    134         self.name = name
    135         self.age = age
    136         self.sex = sex
    137         self.stud_id = stud_id
    138         self.stud_pwd = stud_pwd
    139         self.money = money
    140         self.courese_class_student = [] #学生选的课程
    141         self.grade_class_student = [] #学生加入的班级
    142 
    143     def serch_school_and_enroll(self, obj_serch_school, obj_student):  # 选择实例学校
    144         print('选择学校%s' % obj_serch_school.name)
    145         obj_serch_school.save_stud_id.append(self.stud_id)
    146         obj_serch_school.save_stud_pwd.append(self.stud_pwd)
    147         obj_serch_school.student_list.append(obj_student)
    148         obj_serch_school.student_name.append(obj_student.name)
    149         print('为%s 同学办理入学手续' % self.name)
    150 
    151     # def zhuc_student(self,obj_school,obj_student):
    152     #
    153     #     print('为%s 同学办理入学手续'%obj_student.name)
    154 
    155     def serh_grade_student(self, obj_student,obj_grade):  #这里我改了一下,这里不通顺
    156         print('录入班级%s' % obj_grade.grade_name)
    157         obj_grade.student_grade_name.append(self.name)  # 添加班级名字到班级类文件夹$$$$$$$$$$$$$$$$$$$$$$$
    158         obj_grade.student_grade.append(obj_student) #添加实类到班级,好像没大有用
    159         self.grade_class_student.append(obj_grade.grade_name)
    160         print('班级%s选择成功,已将班级信息添加到班级类,学生类'%obj_grade.grade_name)
    161 
    162     def serch_courese_student(self, obj_courese):  # 这里选择课程也是实例
    163         print('%s选择课程%s' % (self.name, obj_courese.type))
    164         print('您选择的课程价格为%s,周期为%s' % (obj_courese.price, obj_courese.time))
    165         self.courese_class_student.append(obj_courese.type)
    166 
    167     def pay_courese_price(self, obj_course):
    168             print('正在支付学费%s' % obj_course.price)
    169             time.sleep(3)
    170             self.money = float(self.money) - float(obj_course.price)
    171             print('还剩学费%s' % self.money)
    172 
    173 
    174     def tell(self):
    175         a = ('''
    176         ----info of Student:%s----   
    177         Name:%s
    178         Age:%s
    179         Sex:%s
    180         Student_ID:%s
    181         Money:%s
    182         Grade:%s
    183         Course:%s
    184         ''' % (self.name, self.name, self.age, self.sex, self.stud_id, self.money, self.grade_class_student,
    185                self.courese_class_student))
    186         print(a)
    187         f = open('student_acount.text', 'wb+')
    188         f.write(pickle.dumps(a))
    189         f.close()
    190 
    191 
    192 class Teacher(School_number, Grade):  # 这里不知道对不对,我不继承学校,继承了学校成员,课程,班级
    193     def __init__(self, name, age, sex):
    194         super(Teacher, self).__int__(name, age, sex)  ####我曹,这里是int!!!!
    195         self.grade_teacher = []  #老师加入的班级
    196         self.courese_teacher = [] #老师教的课程
    197 
    198     def serch_courese_teacher(self, obj_courese):
    199         print('%s老师选择课程%s' % (self.name, obj_courese.type))
    200         self.courese_teacher.append(obj_courese.type)
    201 
    202     def serch_grade_teacher(self, obj_garde):
    203         print('%s老师选择班级%s' % (self.name, obj_garde.grade_name))
    204         self.grade_teacher.append(obj_garde.grade_name)
    205 
    206     def check_grades(self):
    207         print('%s查看班级列表
    %s' % (self.name, self.grade_teacher))
    208 
    209     def check_student_grade_student(selfs, obj_grades):
    210         print('%s查看%s学生列表
    %s' % (selfs.name, obj_grades.grade_name, obj_grades.student_grade))  ##这里不对,一会再屡屡,
    211 
    212     def rec_student_score(self):  # 修改分数
    213         pass
    214 
    215     def teaching(self, obj_grade,obj_course):
    216         a=print('%s选择%s班级,上%s课程' % (self.name, obj_grade.grade_name,obj_course.type))
    217         print(a)
    218         log(a)
    219     def tell(self):
    220         a = ('''
    221         ----info of Teacher:%s----   
    222         Name:%s
    223         Age:%s
    224         Sex:%s
    225         Course:%s
    226         Grade:%s
    227         ''' % (self.name, self.name, self.age, self.sex, self.courese_teacher, self.grade_teacher))
    228         print(a)
    229         # f = open('teacher_acount.text', 'ab+')
    230         # f.write(pickle.dumps(a))
    231         # f.close()
    232 
    233 
    234 # 创建两所学校
    235 school_bj = School('北京python', '海淀', 'beijing')
    236 school_sh = School('上海python', '浦东', 'shanghai')
    237 # 创建三个课程,其中lunix,python在北京,go在上海
    238 school_bj.creation_course('lunix', '5000', '30day')
    239 lunix = school_bj.courese_list[0]
    240 school_bj.creation_course('python', '15000', '90day')
    241 python = school_bj.courese_list[1]
    242 school_sh.creation_course('go', '10000', '60day')
    243 go = school_sh.courese_list[0]
    244 # 创建三位老师,给三个选择擅长课程
    245 zhanggavin = Teacher('zhanggavin', '33', 'M')
    246 zhanggavin.serch_courese_teacher(lunix)
    247 zhanggavin.serch_courese_teacher(python)
    248 egbert = Teacher('egbert', '30', 'm')
    249 egbert.serch_courese_teacher(lunix)
    250 egbert.serch_courese_teacher(python)
    251 slem = Teacher('slem', '30', 'w')
    252 slem.serch_courese_teacher(go)
    253 # 为三位老师注册学校
    254 school_bj.creation_techer(zhanggavin)
    255 school_bj.creation_techer(egbert)
    256 school_sh.creation_techer(slem)
    257 # 创建班级三个班级,北方的教python,liunix,南方的教go
    258 school_bj.creation_grade('1n1b_python_lunix')
    259 yin1b = school_bj.grades_list[0]
    260 school_bj.creation_grade('2n1b_lunix')
    261 ern1b = school_bj.grades_list[1]
    262 school_sh.creation_grade('3n1b_go')
    263 sann1b = school_sh.grades_list[0]
    264 school_bj.creation_grade('sinianji') #创建一个四年级,为了后边的比对
    265 sannianj=school_bj.grades_list[2]
    266 # 给三个班级选择老师
    267 yin1b.add_course(python)
    268 yin1b.add_course(lunix)
    269 yin1b.add_teacher(zhanggavin)
    270 yin1b.add_teacher(egbert)
    271 ern1b.add_course(lunix)
    272 ern1b.add_teacher(zhanggavin)
    273 ern1b.add_teacher(egbert)
    274 sann1b.add_course(go)
    275 sann1b.add_teacher(slem)
    276 sannianj.add_course(python)
    277 # 老师同步班级资料
    278 zhanggavin.serch_grade_teacher(yin1b)
    279 zhanggavin.serch_grade_teacher(ern1b)
    280 egbert.serch_grade_teacher(yin1b)
    281 egbert.serch_grade_teacher(ern1b)
    282 slem.serch_grade_teacher(sann1b)
    283 # 生成几个学生先(self,name,age,sex,stud_id,stud_pwd,money):
    284 hanmeimei = Student('韩梅梅', '18', 'w', '0001', '1234', '5000')
    285 lilei = Student('李雷', '18', 'm', '0002', '1234', '15000')
    286 wangyuyan = Student('王语嫣', '18', 'w', '0003', '1234', '8000')
    287 # 注册学校,课程,班级
    288 hanmeimei.serch_school_and_enroll(school_bj, hanmeimei)
    289 hanmeimei.serch_courese_student(python)
    290 hanmeimei.serh_grade_student(hanmeimei,yin1b) #这里不通顺,好气啊
    291 lilei.serch_school_and_enroll(school_bj, lilei)
    292 lilei.serch_courese_student(python)
    293 lilei.serch_courese_student(lunix)
    294 lilei.serh_grade_student(lilei,yin1b)#这里不通顺,好气啊
    295 lilei.serh_grade_student(lilei,ern1b)#这里不通顺,好气啊
    296 wangyuyan.serch_school_and_enroll(school_sh, wangyuyan)
    297 wangyuyan.serch_courese_student(go)
    298 wangyuyan.serh_grade_student(wangyuyan,sann1b)#这里不通顺,好气啊
    299 #
    300 # def inupt_grade(a,school,):
    301 #     global b
    302 #     for index,i in enumerate(school.grades_name):
    303 #         if a == i:
    304 #             a=school.grades_list[index]
    305 #             # print(a)
    306 #             # print(a.grade_name)
    307 #             b=a
    308 #             # print(a,'333')
    309 
    310 if __name__ == '__main__':
    311     big_flag=False
    312     while not big_flag:
    313         choose_user = input('''
    314         请选择您的角色:
    315         1,管理员
    316         2,老师
    317         3,学生
    318         ''')
    319         if choose_user == '1':
    320             flag = False
    321             choose_school = input('请选择学校:1,北京学校 2,上海学校 q,按q返回上一层')
    322 
    323             if choose_school == '1':  # 这里是个骚操作
    324                 a = school_bj
    325 
    326             if choose_school == '2':
    327                 a = school_sh
    328 
    329             while not flag:
    330                 print('------显示学校信息如下------')
    331                 print('现有班级', a.grades_name)
    332                 print('现有老师', a.teacher_name)
    333                 print('现有课程', a.courese_name)
    334                 print('现有学生', a.student_name)
    335                 choose_fun = input('请选择功能:1,创建班级 2,创建讲师,3,创建课程 q,按q返回上一层')
    336                 if choose_fun == '1':
    337                     inpu_gradename = input('班级名称')
    338                     a.creation_grade(inpu_gradename)
    339                     for index, i in enumerate(a.grades_name):
    340                         if inpu_gradename == i:
    341                             inpu_gradename = a.grades_list[index]
    342                     # inupt_grade(inpu_gradename,school_bj) #执行找班级类的方法
    343                     # inupt_grade()
    344                     while not flag:
    345                         choose_grade_fuc = input('班级功能如下:1,班级添加学生 2,班级添加老师 q,按q退回上一界面')
    346                         if choose_grade_fuc == '1':
    347                             print('可添加的学生列表如下')
    348                             print(a.student_name)
    349                             ipt_s_g_st = input('请选择学生')
    350                             ipt_s_g_st_flage = False
    351                             for index, i in enumerate(a.student_name):
    352                                 if ipt_s_g_st == i:
    353                                     ipt_s_g_st = a.student_list[index]
    354                                     ipt_s_g_st_flage = True
    355                                     break
    356                             if ipt_s_g_st_flage is False:
    357                                 print('请输入有效的学生名')
    358                             inpu_gradename.add_student(ipt_s_g_st)
    359                             print('当前班级学生列表如下')
    360                             inpu_gradename.tell_student_grade()
    361                         if choose_grade_fuc == '2':
    362                             print('可添加的老师列表如下')
    363                             print(a.teacher_name)
    364                             ipt_s_g_te = input('请选择老师')
    365                             ipt_s_g_te_flage = False
    366                             for index, i in enumerate(a.teacher_name):
    367                                 if ipt_s_g_te == i:
    368                                     ipt_s_g_te = a.teacher_list[index]
    369                                     ipt_s_g_te_flage = True
    370                                     break
    371                             if ipt_s_g_te_flage is False:  #这里多理解一下
    372                                 print('请输入有效的老师名')
    373                             inpu_gradename.add_teacher(ipt_s_g_te)  # inpu_gradename是个班级实例
    374                             print('当前班级老师列表如下')
    375                             inpu_gradename.teall_teacher_grade()
    376                         if choose_grade_fuc == 'q':
    377                             break
    378                 if choose_fun == '2':
    379                     print('请输入教师信息')
    380                     ipt_t_name = input('姓名')
    381                     ipt_t_age = input('年龄')
    382                     ipt_t_sex = input('性别')
    383                     ipt_t_courese = input('擅长课程')
    384                     course_flag = False
    385                     for index, i in enumerate(a.courese_name):
    386                         if ipt_t_courese == i:
    387                             ipt_t_courese = a.courese_list[index]
    388                             course_flag = True
    389                             break
    390                     if course_flag is False:
    391                         print('你输入的课程不在课程库')
    392                     ipt_t_grade = input('分配班级')
    393                     garde_flag = False
    394                     for index, i in enumerate(a.grades_name):
    395                         if ipt_t_grade == i:
    396                             ipt_t_grade = a.grades_list[index]
    397                             garde_flag = True
    398                             break
    399                     if garde_flag is False:
    400                         print('你输入的班级不存在')
    401                     if garde_flag is True:
    402                         '''
    403                         这一块相当重要,这里是同步数据的,后边学生模块也能用到类似的
    404                     '''
    405                         ipt_t_name = Teacher(ipt_t_name, ipt_t_age, ipt_t_sex)
    406                         ipt_t_name.serch_courese_teacher(ipt_t_courese)
    407                         ipt_t_name.serch_grade_teacher(ipt_t_grade)
    408                         a.creation_techer(ipt_t_name)
    409                         ipt_t_grade.add_course(ipt_t_courese)
    410                         ipt_t_grade.add_teacher(ipt_t_name)
    411                         ipt_t_name.tell()
    412 
    413                 if choose_fun == '3':
    414                     input_course = input('请输入课程名称')
    415                     input_price = input('课程价格')
    416                     input_time = input('课程周期')
    417                     a.creation_course(input_course, input_price, input_time)
    418                     for index, i in enumerate(a.courese_name):
    419                         if input_course == i:
    420                             input_course = a.courese_list[index]
    421                     input_course.tell()
    422                 if choose_fun == 'q':
    423                     break
    424 
    425             if choose_school == 'q':
    426                 flag = True
    427 
    428         if choose_user == '2':
    429             teacher_fun_flag=False   #以后用的到
    430             while not teacher_fun_flag:
    431                 teacher_name = input('请输入姓名以便查找,或者按q返回:::')
    432                 pwd = input('请输入密码')  # 这里假装有个密码
    433                 teacher_name_flag=False
    434                 if teacher_name in school_bj.teacher_name and pwd == '1234':  # 这里是个骚操作
    435                     a = school_bj
    436                     teacher_name_flag=True
    437                 if teacher_name in school_sh.teacher_name and pwd == '1234':
    438                     a = school_sh
    439                     teacher_name_flag= True
    440                 if teacher_name=='q':
    441                     break
    442                 if teacher_name_flag is False:
    443                     print('该老师不存在')
    444                 if teacher_name_flag is True:
    445                     for index, i in enumerate(a.teacher_name):
    446                         if teacher_name == i:
    447                             teacher_name = a.teacher_list[index]
    448                             # teacher_name_school_teacherlist=teacher_name
    449                             # course_flag = True
    450                     print('登陆成功,信息如下')
    451                     teacher_name.tell()  # '这里teacher_name 是学校的teacher_list里边的类'
    452 
    453                     while not teacher_fun_flag:
    454                         choose_teacher = input('请选择功能 1,查看班级信息 2,选择班级上课 3,查看班级学员列表 4,修改所管理的学员成绩 q,返回上一菜单')
    455                         if choose_teacher == '1':
    456                             input_gardename_fun1=input('请输入要查询的班级名称,名称必须写对')
    457                             jiuyaoli_falg = False
    458                             for index,i in  enumerate(teacher_name.grade_teacher):  #这里teacher_name 是个老师类实例
    459                                 if input_gardename_fun1==i:                         #输入的名称存在老师类实例里的班级列表里
    460                                     jiuyaoli_falg=True
    461                                     break
    462                             if jiuyaoli_falg is False:
    463                                 print('请输入有效的班级名称')
    464                             if jiuyaoli_falg is True:
    465                                 for index,i in enumerate(a.grades_name):        #这里a.grades_name 是学校实例的班级名称
    466                                     if input_gardename_fun1==i:
    467                                         input_gardename_fun1=a.grades_list[index] #我怀疑这里变成的学校里边班级列表里的班级实例了 因为只有学校列表里有班级实例
    468                                         # print(input_gardename_fun2.teacher_grade_name)
    469                                         # print(input_gardename_fun2.student_grade_name)
    470                                         # print(input_gardename_fun2)
    471                                         # print(input_gardename_fun2.teacher_grade_name,'老师名字')
    472                                         # print(input_gardename_fun2.teacher_grade,'这个是teachergrade里边放着类')
    473                                         # print(input_gardename_fun2.student_grade,'这应该是类才对')
    474                                         # print(input_gardename_fun2.student_grade_name,'学生名字')
    475                                         print('-----%s学生列表-----'%input_gardename_fun1.grade_name)  #这里调用班级实例的方法
    476                                         input_gardename_fun1.tell_student_grade()
    477                                         print('-----%s老师列表-----' % input_gardename_fun1.grade_name)
    478                                         input_gardename_fun1.teall_teacher_grade()
    479                                         print('-----%s课程内容-----' % input_gardename_fun1.grade_name)
    480                                         print(input_gardename_fun1.courese_type)
    481 
    482                         if choose_teacher  == '2':
    483                             teacher_name.check_grades()
    484                             # teacher_name.check_student_grade_student()
    485                             input_gardename_fun2=input('输入上课的班级名称')
    486                             inpu_fun_falg_111 = False
    487                             for i in teacher_name.grade_teacher:
    488                                 if input_gardename_fun2==i:
    489                                     print(i)
    490                                     input_course_fun2 = input('请输入课程')
    491                                     for i in teacher_name.courese_teacher:
    492                                         if input_course_fun2==i:
    493                                             inpu_fun_falg_111 = True
    494                             if inpu_fun_falg_111 is False:
    495                                 print('请输入正确的班级名称')
    496                             if inpu_fun_falg_111 is True:
    497                                 a=print('%s在%s班,上%s课程'%(teacher_name.name,input_gardename_fun2,input_course_fun2))
    498                                 log(a)
    499                             #
    500                             # inpu_fun_falg_111=False
    501                             # inpu_fun_falg_222=False
    502                             # for index,i in enumerate(teacher_name.grade_teacher):  #这里的teacher_name 还是老师的实例类(in school).grade_teacher就是实例类里的班级列表
    503                             #     if input_gardename_fun2 == i:  #
    504                             #         input_gardename_fun2 = a.grades_list[index]  #这里变成了班级实例类
    505                             #         print(input_gardename_fun2.grades_name,'看看这是什么')
    506                             #         inpu_fun_falg_111 = True
    507                             #         break
    508                             # if inpu_fun_falg_111 is False:
    509                             #     print('你输入的班级不存在')
    510                             # if inpu_fun_falg_111 is True:
    511                             #     print(input_gardename_fun2.grade_name, 'kan ,mingzi 这里变成了类')
    512                             #     for index, i in enumerate(teacher_name.courese_teacher):
    513                             #         if input_course_fun2 == i:
    514                             #             input_course_fun2 = a.courese_list[index]  #这里变成了课程实例类
    515                             #             print(input_course_fun2.type, '这里应该是个类')
    516                             #             inpu_fun_falg_222 = True
    517                             #             flag = False
    518                             # if inpu_fun_falg_222 is False:
    519                             #     print('你输入的课程不存在')
    520                             # if inpu_fun_falg_222 is True:
    521                             #     # print(input_gardename_fun2.courese_type,'班级的课程列表')
    522                             #     teacher_name.teaching(teacher_name,teacher_name)
    523                         if choose_teacher=='3':
    524                             teacher_name.check_grades()
    525                             print('将查询%s名下所有班级的成员'%teacher_name.grade_teacher)
    526                             #将查询['1n1b_python', '2n1b_lunix']名下所有班级的成员
    527                             # print(a.grades_name,'eee')
    528                             #['1n1b_python', '2n1b_lunix', 'sinianji'] eee
    529                             # for index,i in enumerate(a.grades_name):
    530                             #     if i==a.grades_name[index]:
    531                             #         i=a.grades_list[index]
    532                             #         print(teacher_name.grade_teacher[index])
    533                             #         print(i.student_grade_name)
    534                             wusong_flag=False
    535                             list_i = []
    536                             for i in teacher_name.grade_teacher:
    537                                 for index,j in enumerate(a.grades_name):
    538                                     if i ==j:
    539                                         i= a.grades_list[index]
    540                                         list_i.append(i)
    541                                         wusong_flag=True
    542                             if wusong_flag is False:
    543                                 print('名下没学生')
    544                             if wusong_flag is True:
    545                                 # print(list_i,'3333')
    546                                 # print(list_i[0].grade_name,'4444') #这里是学校里的班级类实力?
    547                                 for index,i in enumerate(list_i):
    548                                     print(i.grade_name)
    549                                     print(i.student_grade_name)
    550                                         # print(teacher_name.grade_teacher[index])
    551                                         # print(i.student_grade_name)
    552                                         # inpu_fun_falg_111 = False
    553                                         # for i in teacher_name.grade_teacher:
    554                                         #     if input_gardename_fun2 == i:
    555                                         #         print(i)
    556                                         #         input_course_fun2 = input('请输入课程')
    557                                         #         for i in teacher_name.courese_teacher:
    558                                         #             if input_course_fun2 == i:
    559                                         #                 inpu_fun_falg_111 = True
    560                                         # if inpu_fun_falg_111 is False:
    561                                         #     print('请输入正确的班级名称')
    562                                         # if inpu_fun_falg_111 is True:
    563                                         #     a = print('%s在%s班,上%s课程' % (teacher_name.name, input_gardename_fun2, input_course_fun2))
    564                                         #     log(a)
    565                         if choose_teacher=='4':
    566                             print('修改你MB,啥玩意没有改啥')
    567 
    568                         if choose_teacher=='q':
    569                             break
    570         if choose_user == '3':
    571             stu_falg=False
    572             while not stu_falg:
    573                 print('欢迎学习')
    574                 print('请先注册你的信息')
    575                 name_stu=input('请输入你的名字')
    576                 age_stu=input('请输入你的年龄')
    577                 sex_stu=input('请输入性别')
    578                 stuid_stu=input('请输入一个你喜欢的学生编号,反正没用')
    579                 pwd_stu=input('密码请输入1234')
    580                 money_stu=input('请玩命充钱,谢谢')
    581                 stu_class = Student(name_stu,age_stu,sex_stu,stuid_stu,pwd_stu,money_stu) #这里是实类
    582                 print('根据学校信息选择适合你的学校')
    583                 print('-----1,北方-----')
    584                 school_bj.tell_school()
    585                 print('-----2,南方-----')
    586                 school_sh.tell_school()
    587                 zhuce_flag=False
    588                 choose_stu=input('请选择学校名称的编号')
    589 
    590                 if choose_stu =='1':  # 这里是个骚操作
    591                     a = school_bj
    592 
    593                 if choose_stu =='2':
    594                     a = school_sh
    595 
    596 
    597                 stu_class.serch_school_and_enroll(a,stu_class)
    598                 zhuce_flag=True
    599 
    600                 if zhuce_flag is True:
    601                     print('课程内容如下',a.courese_name)
    602                     choose_stu_course=input('请选择课程')
    603                     xuanzekecheng_falg=False
    604                     for index,i in enumerate(a.courese_name):
    605                         if choose_stu_course==i:
    606                             choose_stu_course=a.courese_list[index]
    607                             #print(choose_stu_course,'应该是个类,应该是学校列表里边的coures实例')
    608                             print('你选择的课程信息如下')
    609                             print('课程名称:%s
    价格:%s
    周期:%s
    '%(choose_stu_course.type,choose_stu_course.price,choose_stu_course.time))
    610                             yesorno=input('请选择yes or no')
    611                             if yesorno=='yes':
    612                                 xuanzekecheng_falg=True
    613                                 break
    614                             if yesorno=='no':
    615                                 print('知识无价,还请好好考虑')
    616                                 xuanzekecheng_falg=False
    617                                 break
    618                             else:
    619                                 print('你输入的信息不正确,我当你不同意处理')
    620                                 xuanzekecheng_falg = False
    621                                 break
    622                     # if xuanzekecheng_falg is False:
    623                     #     print('失败了???????????????????????')
    624                     #     break
    625                     jiagepanduan_flag = False
    626                     if xuanzekecheng_falg is True:
    627                         # print(stu_class.money)
    628                         # print(type(stu_class.money))
    629                         # print(choose_stu_course.price)
    630                         # print(type(choose_stu_course.price))
    631                         if float(stu_class.money) > float(choose_stu_course.price):
    632                             stu_class.serch_courese_student(choose_stu_course)
    633                             stu_class.pay_courese_price(choose_stu_course)
    634                             jiagepanduan_flag =True
    635                         else:
    636                             print('请继续充钱')
    637                     if jiagepanduan_flag is  True:
    638                         print('钱都花了,选个班吧')
    639                     suibian_name_list=[]
    640                     suibian_calss_list=[]
    641                     kecheng_name=choose_stu_course.type #提取课程名称
    642                     for index,i in enumerate(a.grades_list):
    643                         # print(i.grade_name,'这里应该是班级类的name')
    644                         # 1n1b_python 这里应该是类的name
    645                         for j in i.courese_type: #在班级的课程列表里循环
    646                             if kecheng_name==j:
    647                                 # print(i.grade_name,'这里应该打印含有该课程的班级')
    648                                 suibian_name_list.append(i.grade_name)
    649                                 suibian_calss_list.append(i)
    650                     print('有以下班级开展%s'%choose_stu_course.type)
    651                     print(suibian_name_list)
    652                     choose_grade_stu=input('选择班级')
    653                     for index,i in enumerate(a.grades_name):
    654                         if choose_grade_stu == i :
    655                             choose_grade_stu = a.grades_list[index]
    656                             stu_class.serh_grade_student(stu_class,choose_grade_stu)
    657                             print('胜利!')
    658 
    659 
    660 
    661                             # def serh_grade_student(self, obj_student, obj_grade):  # 这里我改了一下,这里不通顺
    662                             #     print('录入班级%s' % obj_grade.grade_name)
    663                             #     obj_grade.student_grade_name.append(self.name)  # 添加班级名字到班级类文件夹$$$$$$$$$$$$$$$$$$$$$$$
    664                             #     obj_grade.student_grade.append(obj_student)  # 添加实类到班级,好像没大有用
    665                             #     self.grade_class_student.append(obj_grade.grade_name)
    666                             #     print('班级%s选择成功,已将班级信息添加到班级类,学生类' % obj_grade.grade_name)
    667 
    668                     # for index,i in enumerate(a.courese_name):
    669                     #     if choose_stu_course==i:
    670                     #         choose_stu_course=a.courese_list[index]
    671                     #         #print(choose_stu_course,'应该是个类,应该是学校列表里边的coures实例')
    672                     #         print('你选择的课程信息如下')
    673                     #         print('课程名称:%s
    价格:%s
    周期:%s
    '%(choose_stu_course.type,choose_stu_course.price,choose_stu_course.time))
    674 
    675 
    676 
    677                                     # list_i = []
    678                                     # for i in teacher_name.grade_teacher:
    679                                     #     for index, j in enumerate(a.grades_name):
    680                                     #         if i == j:
    681                                     #             i = a.grades_list[index]
    682                                     #             list_i.append(i)
    683                                     # # print(list_i,'3333')
    684                                     # # print(list_i[0].grade_name,'4444') #这里是学校里的班级类实力?
    685                                     # for index, i in enumerate(list_i):
    686                                     #     print(i.grade_name)
    687                                     #     print(i.student_grade_name)
    688 
    689 
    690                     # print('北方学校的课程如下')
    691                     # print(school_bj.courese_name)  def serh_grade_student(self, obj_student,obj_grade):
    692                     # stu_courese=input('请选择课程名称')
    693                     # for index ,i  in  school_bj.courese_name: #这里不着急,一会再屡屡
    694                     #     if stu_courese==i:
    695                     #         stu_courese=school_bjdadad
    696 
    697 
    698 
    699 
    700         if choose_user=='q':
    701             break
    702 
    703 
    704 
    705 
    706 
    707 
    708                     # if choose_teacher == '1':
    709                     #     print(a.grades_name)
    710                     #     for index, i in enumerate(a.grades_name):
    711                     #         print(a.grades_name[index])
    712                     #         print(i,'i')
    713                     #         for index,i in enumerate(a.grades_name)
    714                     #
    715 
    716 
    717                         # for index, i in enumeratddadadadaddade(a.grades_name):
    718                         #     if b == i:
    719                         #         b = a.grades_list[index]
    720                         #         # ipt_s_g_te_flage = True
    721                         #         if teacher_name i

    运行效果

    可以创建班级,创建课程

    创建老师

    查询班级的相关数据都可以实现

    学生识图也可以实现。

    第7个要求,序列化我想的办法

    使用拼接字符串的功能生成多个text文件用来储存各个类的信息,调用的时候input生成a,b两个变量,其中一个变成类,另一个变成字符串,然后调用他的内容。

     1 def pickle_dump(a):
     2     f=open('data_save.text','ab')
     3     pickle.dump(a,f)
     4     f.close()
     5 def pickle_load(a):
     6     f=open('data_save.text','rb')
     7     a=pickle.load(f)
     8 
     9 a='school_bj'
    10 f=open(a+'.txt','ab')
    11 pickle.dump(school_bj,f)
    12 f.close()
    13 
    14 f=open(a+'.txt','rb')
    15 data=pickle.load(f)
    16 data.tell_school()

    执行效果

    运行过程会有些小bug了,暂时不修了,我的时间不多了,我得抓紧。

  • 相关阅读:
    WebRequest 超时不起作用
    nutch导入ide nutch1.3
    nutch 设置抓取间隔策略
    c#: Error: Crossthread operation not valid
    mysql命令行基本操作
    Boost String Algorithms Library 函数详解三 (find)
    boost::timer 的替代方案
    windows驱动程序开发初探
    深入浅出Win32多线程程序设计之线程通信
    深入浅出Win32多线程设计之MFC的多线程(1)
  • 原文地址:https://www.cnblogs.com/PYlog/p/9039822.html
Copyright © 2011-2022 走看看