本節作業: 選課系統
角色:學校、學員、課程、講師
要求:
1. 創建北京、上海 2 所學校
2. 創建linux , python , go 3個課程 , linux\py 在北京開, 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) + '\n' 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查看班級列表\n%s' % (self.name, self.grade_teacher)) 208 209 def check_student_grade_student(selfs, obj_grades): 210 print('%s查看%s學生列表\n%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\n價格:%s\n周期:%s\n'%(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\n價格:%s\n周期:%s\n'%(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了,暫時不修了,我的時間不多了,我得抓緊。