python 开发程序:选课系统

本节作业:选课系统

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

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

程序:

1、README

作者:wangeq
版本:示例版本 v0.1
程序介绍:
    实现选课系统 常用功能
    功能全部用python的基础知识实现,用到了ossysjsonpickle函数模块类知识
    程序: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()
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"	eacher"
 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,":	",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("
")
 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("
")
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("
")
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("
")
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("
")
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             33[32;1m 1.  校区管理
280             2.  讲师管理
281             3.  学员管理
282             4.  课程管理
283             5.  返回
284             33[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("33[31;1m输入错误,重新输入33[0m")
308     def school_manager(self):
309         exit_flag = False
310         while not exit_flag:
311             print("""
312                 ------- 欢迎进入校区管理 ---------
313                 33[32;1m1.  创建校区
314                 2.  创建班级
315                 3.  返回
316                 33[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                 33[32;1m 1.  创建讲师
331                 2.  ...
332                 3.  返回
333                 33[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                 33[32;1m 1.  创建学员
349                 2.  ...
350                 3.  返回
351                 33[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                 33[32;1m 1.  创建课程
366                 2.  ...
367                 3.  返回
368                 33[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             33[32;1m  1.  创建上课记录
386             2.  创建学员成绩
387             3.  查看学员上课记录
388             4.  查看学员成绩
389             5.  返回
390             33[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("33[31;1m输入错误,重新输入33[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         33[32;1m 1.  注册
421         2.  交学费
422         3.  查看上课记录
423         4.  查看作业成绩
424         5.  返回
425         33[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("33[31;1m输入错误,重新输入33[0m")
445 
446 #程序交互类
447 class Run(object):
448     def __init__(self):
449         pass
450     def interactive(self):
451         menu = u'''
452         ------- 欢迎进入选课系统 ---------
453         33[32;1m 1.  学生视图
454         2.  讲师视图
455         3.  管理视图
456         4.  退出
457         33[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("33[31;1m输入错误,重新输入33[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-32python.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.  退出

#代码不是很完整,后续会进行改进
作者:wangeq
出处:http://www.cnblogs.com/wangeq/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
原文地址:https://www.cnblogs.com/wangeq/p/6504644.html