本節作業:選課系統
角色:學校、學員、課程、講師
要求:
1. 創建北京、上海 2 所學校
2. 創建linux , python , go 3個課程 , linux\py 在北京開, go 在上海開
3. 課程包含,周期,價格,通過學校創建課程
4. 通過學校創建班級, 班級關聯課程、講師
5. 創建學員時,選擇學校,關聯班級
5. 創建講師角色時要關聯學校,
6. 提供兩個角色接口
6.1 學員視圖, 可以注冊, 交學費, 選擇班級,
6.2 講師視圖, 講師可管理自己的班級, 上課時選擇班級, 查看班級學員列表 , 修改所管理的學員的成績
6.3 管理視圖,創建講師, 創建班級,創建課程
7. 上面的操作產生的數據都通過pickle序列化保存到文件里
程序:
1、README
作者:wangeq 版本:示例版本 v0.1 程序介紹: 實現選課系統 常用功能 功能全部用python的基礎知識實現,用到了os\sys\json\pickle\函數\模塊\類知識 程序:http://www.cnblogs.com/wangeq/p/6504644.html 程序結構: day06/ ├── course system #coure主程目錄 ├── __init__.py ├── bin #course 執行文件 目錄 │ ├── __init__.py │ ├── course.py #course system 執行程序 ├── core #主要程序邏輯都 在這個目錄 里 │ ├── __init__.py │ ├── main.py #主要程序交互 │ ├── uid.py #生成uid信息 ├── db #用戶數據存儲的地方 ├── __init__.py └── admin #存管理員信息 └── classes #存班級信息 └── school #存學校信息 └── course #存課程信息 └── student #存學員信息 └── teacher #存講師信息 └── class_grade #存講師創建的學生成績 └── class_record #存講師創建的學生上課記錄
2、程序目錄結構
3、程序
執行文件入口 cource.py

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #version:3.5.2 4 #author:wangeq 5 6 import sys,os 7 8 #程序主目錄 9 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 10 #添加環境變量 11 sys.path.append(BASE_DIR) 12 13 from core import main 14 15 if __name__ == '__main__': 16 a =main.Run() 17 a.interactive()
主程序 main.py

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #version:3.5.2 4 #author:wangeq 5 6 import sys,os 7 import json 8 import pickle 9 10 from bin import course 11 from core import uid 12 13 #數據庫文件路徑 14 db_DIR = course.BASE_DIR + r"\db" 15 db_school = db_DIR + r"\school" 16 db_teacher = db_DIR + r"\teacher" 17 db_student = db_DIR + r"\student" 18 db_classes = db_DIR + r"\classes" 19 db_course = db_DIR + r"\course" 20 db_admin = db_DIR + r"\admin" 21 db_class_record = db_DIR + r"\class_record" 22 db_class_grade = db_DIR + r"\class_grade" 23 24 #基礎類,主要包括文件的讀寫操作 25 class Baseclass(object): 26 def __init__(self): 27 pass 28 def save(self,type,dict): 29 filename = uid.create_md() 30 dict['uid'] = filename 31 file_path = "%s\%s" %(db_DIR,type) 32 ab_file = "%s\%s" %(file_path,filename) 33 if os.path.isdir(file_path): 34 with open(ab_file,"wb") as f: 35 f.write(pickle.dumps(dict)) 36 if True: 37 print( 38 "-------",type,"創建成功","-------") 39 for key in dict: 40 print(key,":\t",dict[key]) 41 def seek_list(self,type,list): 42 filename = uid.create_md() 43 file_path = "%s\%s" %(db_DIR,type) 44 ab_file = "%s\%s" %(file_path,filename) 45 if os.path.isdir(file_path): 46 with open(ab_file,"wb") as f: 47 f.write(pickle.dumps(list)) 48 if True: 49 print( 50 "-------",type,"創建成功","-------") 51 for i in list: 52 for key in i: 53 print(key,i[key]) 54 print("\n") 55 return True 56 57 def open(self,type): 58 all_data = [] 59 db_path = "%s\%s" %(db_DIR,type) 60 for i in os.listdir(db_path): 61 if os.path.isfile(os.path.join(db_path,i)): 62 db_file = os.path.join(db_path,i) 63 with open(db_file,"rb") as f: 64 file_dict = pickle.load(f) 65 all_data.append(file_dict) 66 return all_data 67 68 #管理員類 69 class Admin(Baseclass): 70 def __init__(self): 71 Baseclass.__init__(self) 72 def create_school(self): 73 school_dict = {} 74 school_name = input("校名:") 75 school_address = input("地址:") 76 s1 = School(school_name, school_address) 77 school_dict["校名"] = s1.school_name 78 school_dict["地址"] = s1.school_address 79 Baseclass.save(self, "school", school_dict) 80 def create_teacher(self): 81 teacher_dict = {} 82 teacher_name = input("講師姓名:") 83 teacher_salary = input("講師工資:") 84 teacher_school = input("所屬學校:") 85 t1 = Teacher(teacher_name, teacher_salary, teacher_school) 86 teacher_dict["姓名"] = t1.teacher_name 87 teacher_dict["工資"] = t1.teacher_salary 88 teacher_dict["所屬學校"] = t1.teacher_school 89 print(teacher_dict) 90 Baseclass.save(self, "teacher", teacher_dict) 91 def create_student(self): 92 student_dict = {} 93 student_name = input("學員姓名:") 94 student_sex = input("學員性別:") 95 student_school = input("所屬學校:") 96 student_classes = input("學員班級:") 97 st1 = Student(student_name, student_sex, student_school, student_classes) 98 student_dict["姓名"] = st1.student_name 99 student_dict["性別"] = st1.student_sex 100 student_dict["學校"] = st1.student_school 101 student_dict["班級"] = st1.student_classes 102 Baseclass.save(self, "student", student_dict) 103 def create_course(self): 104 course_dict = {} 105 course_name = input("課程名:") 106 course_period = input("周期:") 107 course_prices = input("價格:") 108 c1 = Course(course_name, course_period, course_prices) 109 course_dict["課程名"] = c1.course_name 110 course_dict["周期"] = c1.course_period 111 course_dict["價格"] = course_prices 112 Baseclass.save(self, "course", course_dict) 113 def create_classes(self): 114 classes_dict = {} 115 classes_name = input("班級名:") 116 classes_teachter = input("負責講師:") 117 classes_course = input("所學課程:") 118 cs1 = Classes(classes_name, classes_teachter, classes_course) 119 classes_dict["班級名"] = cs1.classes_name 120 classes_dict["負責講師"] = cs1.classes_teacher 121 classes_dict["課程"] = cs1.classes_course 122 Baseclass.save(self, "classes", classes_dict) 123 124 #學校類 125 class School(Baseclass): 126 def __init__(self,school_name,school_address): 127 Baseclass.__init__(self) 128 self.school_name = school_name 129 self.school_address = school_address 130 131 #講師類 132 class Teacher(Baseclass): 133 def __init__(self,teacher_name,teacher_salary,teacher_school): 134 Baseclass.__init__(self) 135 self.teacher_name = teacher_name 136 self.teacher_salary = teacher_salary 137 self.teacher_school = teacher_school 138 def create_class_record(self): 139 class_record = [] 140 student_school = input("選擇學校:") 141 student_classes = input("選擇班級:") 142 student_times = input("課次:") 143 student_list = Baseclass.open(self,"student") 144 for i in student_list: 145 if i["學校"] == student_school and i["班級"] == student_classes: 146 student_name = i["姓名"] 147 student_status = input("%s 上課情況:" % student_name) 148 i["上課情況"] = student_status 149 i["課次"] = student_times 150 class_record.append(i) 151 Baseclass.seek_list(self,"class_record",class_record) 152 def create_class_grade(self): 153 class_grade = [] 154 student_school = input("選擇學校:") 155 student_classes = input("選擇班級:") 156 student_times = input("課次:") 157 student_list = Baseclass.open(self,"student") 158 for i in student_list: 159 if i["學校"] == student_school and i["班級"] == student_classes: 160 student_name = i["姓名"] 161 student_grade = input("%s 成績:" % student_name) 162 i["成績"] = student_grade 163 i["課次"] = student_times 164 class_grade.append(i) 165 Baseclass.seek_list(self,"class_grade",class_grade) 166 def teacher_view_grade(self): 167 grade_list = [] 168 student_school = input("校名:") 169 student_class = input("班級:") 170 student_times = input("課次:") 171 class_grade_list = Baseclass.open(self, "class_grade") 172 for i in class_grade_list: 173 for j in i: 174 if j["學校"] == student_school and j["班級"] == student_class and j["課次"] == student_times: 175 grade_list.append(j) 176 for i in grade_list: 177 for key in i: 178 print(key,i[key]) 179 print("\n") 180 181 def tacher_view_record(self): 182 record_list = [] 183 student_school = input("校名:") 184 student_class = input("班級:") 185 student_times = input("課次:") 186 class_record_list = Baseclass.open(self, "class_record") 187 for i in class_record_list: 188 for j in i: 189 if j["學校"] == student_school and j["班級"] == student_class and j["課次"] == student_times: 190 record_list.append(j) 191 for i in record_list: 192 for key in i: 193 print(key,i[key]) 194 print("\n") 195 196 #課程類 197 class Course(Baseclass): 198 def __init__(self,course_name,course_period,course_prices): 199 Baseclass.__init__(self) 200 self.course_name = course_name 201 self.course_period = course_period 202 self.course_prices = course_prices 203 204 #學員類 205 class Student(Baseclass): 206 207 def __init__(self,student_name,student_sex,student_school,student_classes): 208 Baseclass.__init__(self) 209 self.student_name = student_name 210 self.student_sex = student_sex 211 self.student_school = student_school 212 self.student_classes = student_classes 213 def student_registered(self): 214 student_dict = {} 215 print("歡迎進入學生注冊系統") 216 student_name = input("注冊姓名:") 217 student_sex = input("性別:") 218 student_school = input("學校:") 219 student_class = input("班級:") 220 st1 = Student(student_name,student_sex,student_school,student_class) 221 student_dict["姓名"] = st1.student_name 222 student_dict["性別"] = st1.student_sex 223 student_dict["學校"] = st1.student_school 224 student_dict["班級"] = st1.student_classes 225 Baseclass.save(self, "student", student_dict) 226 def student_pay_fees(self): 227 pass 228 def student_view_grade(self): 229 student_school = input("校名:") 230 student_class = input("班級:") 231 student_times = input("課次:") 232 student_name = input("姓名:") 233 class_grade_list = Baseclass.open(self,"class_grade") 234 for i in class_grade_list: 235 for j in i: 236 if j["學校"] == student_school and j["班級"] == student_class and j["課次"] == student_times \ 237 and j["姓名"] == student_name: 238 for key in j: 239 print(key,j[key]) 240 print("\n") 241 def student_view_record(self): 242 student_school = input("校名:") 243 student_class = input("班級:") 244 student_times = input("課次:") 245 student_name = input("姓名:") 246 class_record_list = Baseclass.open(self,"class_record") 247 for i in class_record_list: 248 for j in i: 249 if j["學校"] == student_school and j["班級"] == student_class and j["課次"] == student_times \ 250 and j["姓名"] == student_name: 251 for key in j: 252 print(key,j[key]) 253 print("\n") 254 255 #課程類 256 class Classes(Baseclass): 257 def __init__(self,classes_name,classes_teachter,classes_course): 258 Baseclass.__init__(self) 259 self.classes_name = classes_name 260 self.classes_teacher = classes_teachter 261 self.classes_course = classes_course 262 263 #管理員視圖,繼承Admin類 264 class Admin_view(Admin): 265 def __init__(self): 266 Admin.__init__(self) 267 def auth(self,username,password): 268 admin_file = "%s/%s.json" %(db_admin,username) 269 if os.path.isfile(admin_file): 270 with open(admin_file, 'r') as f: 271 admin_data = json.load(f) 272 if admin_data["name"] == username and admin_data["password"] == password: 273 return True 274 else: 275 print("用戶名或密碼錯誤") 276 def login(self): 277 menu = u''' 278 ------- 歡迎進入管理視圖 --------- 279 \033[32;1m 1. 校區管理 280 2. 講師管理 281 3. 學員管理 282 4. 課程管理 283 5. 返回 284 \033[0m''' 285 menu_dic = { 286 '1': Admin_view.school_manager, 287 '2': Admin_view.teacher_manager, 288 '3': Admin_view.student_manager, 289 '4': Admin_view.course_manager, 290 '5': "logout", 291 } 292 username = input("輸入用戶名:").strip() 293 password = input("輸入密碼:").strip() 294 auth = Admin_view.auth(self,username,password) 295 if auth: 296 exit_flag = False 297 while not exit_flag: 298 print(menu) 299 option = input("請選擇:").strip() 300 if option in menu_dic: 301 if int(option) == 5: 302 exit_flag = True 303 else: 304 print(menu_dic[option]) 305 menu_dic[option](self) 306 else: 307 print("\033[31;1m輸入錯誤,重新輸入\033[0m") 308 def school_manager(self): 309 exit_flag = False 310 while not exit_flag: 311 print(""" 312 ------- 歡迎進入校區管理 --------- 313 \033[32;1m1. 創建校區 314 2. 創建班級 315 3. 返回 316 \033[0m 317 """) 318 option = input("請選擇:").strip() 319 if int(option) == 1: 320 Admin.create_school(self) 321 elif int(option) == 2: 322 Admin.create_classes(self) 323 else: 324 exit_flag = True 325 def teacher_manager(self): 326 exit_flag = False 327 while not exit_flag: 328 print(""" 329 ------- 歡迎進入講師管理 --------- 330 \033[32;1m 1. 創建講師 331 2. ... 332 3. 返回 333 \033[0m 334 """) 335 option = input("請選擇:").strip() 336 if int(option) == 1: 337 Admin.create_teacher(self) 338 elif int(option) == 2: 339 print("擴展中") 340 else: 341 exit_flag = True 342 343 def student_manager(self): 344 exit_flag = False 345 while not exit_flag: 346 print(""" 347 ------- 歡迎進入學員管理 --------- 348 \033[32;1m 1. 創建學員 349 2. ... 350 3. 返回 351 \033[0m 352 """) 353 option = input("請選擇:").strip() 354 if int(option) == 1: 355 Admin.create_student(self) 356 elif int(option) == 2: 357 print("擴展中") 358 else: 359 exit_flag = True 360 def course_manager(self): 361 exit_flag = False 362 while not exit_flag: 363 print(""" 364 ------- 歡迎進入課程管理 --------- 365 \033[32;1m 1. 創建課程 366 2. ... 367 3. 返回 368 \033[0m 369 """) 370 option = input("請選擇:").strip() 371 if int(option) == 1: 372 Admin.create_course(self) 373 elif int(option) == 2: 374 print("擴展中") 375 else: 376 exit_flag = True 377 378 #講師視圖類,繼承Teacher類 379 class Teacher_view(Teacher,): 380 def __init__(self,teacher_name,teacher_salary,teacher_school): 381 Teacher.__init__(self,teacher_name,teacher_salary,teacher_school) 382 def login(self): 383 menu = u''' 384 ------- 歡迎進入講師視圖 --------- 385 \033[32;1m 1. 創建上課記錄 386 2. 創建學員成績 387 3. 查看學員上課記錄 388 4. 查看學員成績 389 5. 返回 390 \033[0m''' 391 menu_dic = { 392 '1': Teacher.create_class_record, 393 '2': Teacher.create_class_grade, 394 '3': Teacher.tacher_view_record, 395 '4': Teacher.teacher_view_grade, 396 '5': "logout", 397 } 398 if True: 399 exit_flag = False 400 while not exit_flag: 401 print(menu) 402 option = input("請選擇:").strip() 403 if option in menu_dic: 404 if int(option) == 5: 405 exit_flag = True 406 else: 407 print(menu_dic[option]) 408 menu_dic[option](self) 409 else: 410 print("\033[31;1m輸入錯誤,重新輸入\033[0m") 411 412 #學員視圖類,繼承Student類 413 class Student_view(Student): 414 def __init__(self,student_name,student_sex,student_school,student_classes): 415 Student.__init__(self,student_name,student_sex,student_school,student_classes) 416 417 def login(self): 418 menu = u''' 419 ------- 歡迎進入學生管理視圖 --------- 420 \033[32;1m 1. 注冊 421 2. 交學費 422 3. 查看上課記錄 423 4. 查看作業成績 424 5. 返回 425 \033[0m''' 426 menu_dic = { 427 '1': Student.student_registered, 428 '2': Student.student_pay_fees, 429 '3': Student.student_view_record, 430 '4': Student.student_view_grade, 431 '5': "logout", 432 } 433 if True: 434 exit_flag = False 435 while not exit_flag: 436 print(menu) 437 option = input("請選擇:").strip() 438 if option in menu_dic: 439 if int(option) == 5: 440 exit_flag = True 441 else: 442 menu_dic[option](self) 443 else: 444 print("\033[31;1m輸入錯誤,重新輸入\033[0m") 445 446 #程序交互類 447 class Run(object): 448 def __init__(self): 449 pass 450 def interactive(self): 451 menu = u''' 452 ------- 歡迎進入選課系統 --------- 453 \033[32;1m 1. 學生視圖 454 2. 講師視圖 455 3. 管理視圖 456 4. 退出 457 \033[0m''' 458 menu_dic = { 459 '1': Student_view, 460 '2': Teacher_view, 461 '3': Admin_view, 462 # '4': logout, 463 } 464 exit_flag = False 465 while not exit_flag: 466 print(menu) 467 option_view = input("請選擇視圖:").strip() 468 if option_view in menu_dic: 469 if int(option_view) == 4: 470 exit_flag = True 471 else: 472 menu_dic[option_view].login(self) 473 else: 474 print("\033[31;1m輸入錯誤,重新輸入\033[0m")
生成uid程序 uid.py

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #version:3.5.2 4 #author:wangeq 5 6 import hashlib 7 import time 8 9 def create_md(): 10 m = hashlib.md5() 11 m.update(bytes(str(time.time()),encoding='utf-8')) 12 return m.hexdigest()
數據庫目錄
4、程序演示:
管理視圖: "D:\Program Files (x86)\Python35-32\python.exe" "D:/PycharmProjects/wangeq/day06/作業/course system/bin/course.py" ------- 歡迎進入選課系統 --------- 1. 學生視圖 2. 講師視圖 3. 管理視圖 4. 退出 請選擇視圖:3 輸入用戶名:admin 輸入密碼:admin ------- 歡迎進入管理視圖 --------- 1. 校區管理 2. 講師管理 3. 學員管理 4. 課程管理 5. 返回 請選擇:1 <function Admin_view.school_manager at 0x006D41E0> ------- 歡迎進入校區管理 --------- 1. 創建校區 2. 創建班級 3. 返回 請選擇:1 校名:oldboy 地址:beijing ------- school 創建成功 ------- uid : bbdd5b596750c01a674cba867cdb6fbd 地址 : beijing 校名 : oldboy ------- 歡迎進入校區管理 --------- 1. 創建校區 2. 創建班級 3. 返回 請選擇:1 校名:oldboy 地址:shanghai ------- school 創建成功 ------- uid : b9f82d9c1365bde4840c3f216b298f1b 地址 : shanghai 校名 : oldboy ------- 歡迎進入校區管理 --------- 1. 創建校區 2. 創建班級 3. 返回 請選擇:2 班級名:16 負責講師:alex 所學課程:python ------- classes 創建成功 ------- uid : d07434b43fb00a4ca43ca408fcd8980e 負責講師 : alex 課程 : python 班級名 : 16 ------- 歡迎進入校區管理 --------- 1. 創建校區 2. 創建班級 3. 返回 請選擇:2 班級名:15 負責講師:wpq 所學課程:python ------- classes 創建成功 ------- uid : 5e4fc15541e713ee06a56ecd13162e55 負責講師 : wpq 課程 : python 班級名 : 15 ------- 歡迎進入校區管理 --------- 1. 創建校區 2. 創建班級 3. 返回 請選擇:3 ------- 歡迎進入管理視圖 --------- 1. 校區管理 2. 講師管理 3. 學員管理 4. 課程管理 5. 返回 請選擇:2 <function Admin_view.teacher_manager at 0x006E4228> ------- 歡迎進入講師管理 --------- 1. 創建講師 2. ... 3. 返回 請選擇:1 講師姓名:alex 講師工資:100000 所屬學校:oldboy {'姓名': 'alex', '所屬學校': 'oldboy', '工資': '100000'} ------- teacher 創建成功 ------- 姓名 : alex uid : ffb19d722dc47b6d2e370690a4b6644d 所屬學校 : oldboy 工資 : 100000 ------- 歡迎進入講師管理 --------- 1. 創建講師 2. ... 3. 返回 請選擇:3 ------- 歡迎進入管理視圖 --------- 1. 校區管理 2. 講師管理 3. 學員管理 4. 課程管理 5. 返回 請選擇:3 <function Admin_view.student_manager at 0x006E4270> ------- 歡迎進入學員管理 --------- 1. 創建學員 2. ... 3. 返回 請選擇:1 學員姓名:jack 學員性別:F 所屬學校:oldboy 學員班級:16 ------- student 創建成功 ------- 姓名 : jack uid : 4617ecffc46045db1bf14529aef5bb47 性別 : F 學校 : oldboy 班級 : 16 ------- 歡迎進入學員管理 --------- 1. 創建學員 2. ... 3. 返回 請選擇:3 ------- 歡迎進入管理視圖 --------- 1. 校區管理 2. 講師管理 3. 學員管理 4. 課程管理 5. 返回 請選擇:4 <function Admin_view.cource_manager at 0x006E42B8> ------- 歡迎進入課程管理 --------- 1. 創建課程 2. ... 3. 返回 請選擇:1 課程名:python 周期:7 價格:110000 ------- cource 創建成功 ------- uid : 59bd676e9fb5ab1fd70d91582fd65cec 課程名 : python 周期 : 7 價格 : 110000 講師視圖 ------- 歡迎進入選課系統 --------- 1. 學生視圖 2. 講師視圖 3. 管理視圖 4. 退出 請選擇視圖:2 ------- 歡迎進入講師視圖 --------- 1. 創建上課記錄 2. 創建學員成績 3. 查看學員上課記錄 4. 查看學員成績 5. 返回 請選擇:1 <function Teacher.create_class_record at 0x006BDDB0> 選擇學校:oldboy 選擇班級:16 課次:1 jack 上課情況:chuqin wangeq 上課情況:queqin ------- class_record 創建成功 ------- 班級 16 uid 4617ecffc46045db1bf14529aef5bb47 姓名 jack 課次 1 學校 oldboy 上課情況 chuqin 性別 F 班級 16 uid cc151d309c4d50e516b0eb4cc1257c1c 姓名 wangeq 課次 1 學校 oldboy 上課情況 queqin 性別 F ------- 歡迎進入講師視圖 --------- 1. 創建上課記錄 2. 創建學員成績 3. 查看學員上課記錄 4. 查看學員成績 5. 返回 請選擇:2 <function Teacher.create_class_grade at 0x006BDDF8> 選擇學校:oldboy 選擇班級:16 課次:1 jack 成績:B wangeq 成績:A ------- class_grade 創建成功 ------- 班級 16 uid 4617ecffc46045db1bf14529aef5bb47 姓名 jack 成績 B 課次 1 學校 oldboy 性別 F 班級 16 uid cc151d309c4d50e516b0eb4cc1257c1c 姓名 wangeq 成績 A 課次 1 學校 oldboy 性別 F ------- 歡迎進入講師視圖 --------- 1. 創建上課記錄 2. 創建學員成績 3. 查看學員上課記錄 4. 查看學員成績 5. 返回 請選擇:3 <function Teacher.tacher_view_record at 0x006BDE88> 校名:oldboy 班級:16 課次:1 班級 16 uid 4617ecffc46045db1bf14529aef5bb47 姓名 jack 課次 1 學校 oldboy 上課情況 chuqin 性別 F 班級 16 uid cc151d309c4d50e516b0eb4cc1257c1c 姓名 wangeq 課次 1 學校 oldboy 上課情況 queqin 性別 F ------- 歡迎進入講師視圖 --------- 1. 創建上課記錄 2. 創建學員成績 3. 查看學員上課記錄 4. 查看學員成績 5. 返回 請選擇:4 <function Teacher.teacher_view_grade at 0x006BDE40> 校名:oldboy 班級:16 課次:1 班級 16 uid 4617ecffc46045db1bf14529aef5bb47 姓名 jack 成績 B 課次 1 學校 oldboy 性別 F 班級 16 uid cc151d309c4d50e516b0eb4cc1257c1c 姓名 wangeq 成績 A 課次 1 學校 oldboy 性別 F ------- 歡迎進入講師視圖 --------- 1. 創建上課記錄 2. 創建學員成績 3. 查看學員上課記錄 4. 查看學員成績 5. 返回 請選擇:5 ------- 歡迎進入選課系統 --------- 1. 學生視圖 2. 講師視圖 3. 管理視圖 4. 退出 學生視圖: ------- 歡迎進入選課系統 --------- 1. 學生視圖 2. 講師視圖 3. 管理視圖 4. 退出 請選擇視圖:1 ------- 歡迎進入學生管理視圖 --------- 1. 注冊 2. 交學費 3. 查看上課記錄 4. 查看作業成績 5. 返回 請選擇:1 歡迎進入學生注冊系統 注冊姓名:wangeq 性別:F 學校:oldboy 班級:16 ------- student 創建成功 ------- uid : 3fefbe9155d868ebea7cc7aa56f714e5 班級 : 16 姓名 : wangeq 學校 : oldboy 性別 : F ------- 歡迎進入學生管理視圖 --------- 1. 注冊 2. 交學費 3. 查看上課記錄 4. 查看作業成績 5. 返回 請選擇:3 校名:oldboy 班級:16 課次:1 姓名:wangeq 上課情況 queqin uid cc151d309c4d50e516b0eb4cc1257c1c 班級 16 姓名 wangeq 學校 oldboy 課次 1 性別 F ------- 歡迎進入學生管理視圖 --------- 1. 注冊 2. 交學費 3. 查看上課記錄 4. 查看作業成績 5. 返回 請選擇:4 校名:oldboy 班級:16 課次:1 姓名:wangeq uid cc151d309c4d50e516b0eb4cc1257c1c 班級 16 姓名 wangeq 學校 oldboy 課次 1 性別 F 成績 A ------- 歡迎進入學生管理視圖 --------- 1. 注冊 2. 交學費 3. 查看上課記錄 4. 查看作業成績 5. 返回 請選擇:5 ------- 歡迎進入選課系統 --------- 1. 學生視圖 2. 講師視圖 3. 管理視圖 4. 退出 #代碼不是很完整,后續會進行改進