本节作业:选课系统
角色:学校、学员、课程、讲师
要求:
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\函数\模块\类知识
程序结构:
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()
course.py
主程序 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")
main.py
生成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()
uid.py
数据库目录
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. 退出
#代码不是很完整,后续会进行改进