本节作业:选课系统
角色:学校、学员、课程、讲师
要求:
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. 退出 #代码不是很完整,后续会进行改进