要求
角色:学校、学员、课程、讲师 要求: 1. 创建北京、上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3. 课程包含,周期,价格,通过学校创建课程 4. 通过学校创建班级, 班级关联课程、讲师 5. 创建学员时,选择学校,关联班级 5. 创建讲师角色时要关联学校, 6. 提供两个角色接口 6.1 学员视图, 可以注册, 交学费, 选择班级, 6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩 6.3 管理视图,创建讲师, 创建班级,创建课程 7. 上面的操作产生的数据都通过pickle序列化保存到文件里
目录说明
leco@leco:~/data/xuanke$ tree .
.
├── bin
│ └── run.py # 启动文件
├── conf
│ ├── __init__.py
│ └── settings.py # 全局配置文件
├── core
│ ├── common.py # 公共库文件
│ ├── CourseClass.py # 课程库
│ ├── GradesClass.py # 班级库
│ ├── __init__.py
│ ├── main.py # 主文件
│ ├── ReadDb.py # 数据读写库
│ ├── SchoolClass.py # 学校类库
│ ├── SchoolPeopleBase.py # 基类库
│ ├── StudentClass.py # 学生类库
│ └── TeacherClass.py # 老师类库
├── course_selection_system.bmp # 流程图
└── db # 数据文件
├── course.txt
├── grade.txt
├── school.txt
├── student.txt
└── teacher.txt
代码
#!/usr/bin/env python import os import sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) # 引入核心main函数 from core import main # 调用main函数 if __name__ == ‘__main__‘: main.main()
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import os 5 from core.common import format_time 6 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 7 8 pj_format = "json" 9 GENDER = ["男", "male", "女", "female"] 10 DATA_PATH = os.path.join(BASE_DIR, "db") 11 if not os.path.exists(DATA_PATH): 12 os.mkdir(DATA_PATH) 13 COURSE_PATH = os.path.join(DATA_PATH, "course.txt") # 课程数据存放路径 14 SCHOOL_PATH = os.path.join(DATA_PATH, "school.txt") # 学校数据存放路径 15 TEACHER_PATH = os.path.join(DATA_PATH, "teacher.txt") # 教师数据存放路径 16 GRADE_PATH = os.path.join(DATA_PATH, "grade.txt") # 班级数据存放路径 17 STUDENT_PATH = os.path.join(DATA_PATH, "student.txt") # 学生数据存放路径 18 19 20 21 # 超级管理员账号密码 22 ROOT_NAME = "root" 23 ROOT_PASSWORD = "root" 24 25 # # 主菜单字典 26 # main_dic = { 27 # ‘1‘: ‘管理员系统‘, 28 # ‘2‘: ‘学生系统‘, 29 # ‘3‘: ‘老师系统‘, 30 # ‘4‘: ‘退出‘ 31 # } 32 # 33 # # 学生系统菜单 34 # student_main_dic = { 35 # ‘1‘: ‘注册‘, 36 # ‘2‘: ‘登录系统‘, 37 # ‘3‘: ‘退出‘ 38 # } 39 # 40 # # 学生登录系统后菜单 41 # student_dic = { 42 # ‘1‘: ‘查询个人详情‘, 43 # ‘2‘: ‘交学费‘, 44 # ‘3‘: ‘交作业‘, 45 # ‘4‘: ‘返回‘ 46 # } 47 # 48 # # 管理员系统菜单 49 # master_dic = { 50 # ‘1‘: ‘创建学校‘, 51 # ‘2‘: ‘创建老师‘, 52 # ‘3‘: ‘创建课程‘, 53 # ‘4‘: ‘创建班级‘, 54 # ‘5‘: ‘退出‘ 55 # } 56 # 57 # # 教师系统菜单 58 # teacher_dic = { 59 # ‘1‘: ‘查询个人信息‘, 60 # ‘2‘: ‘查询所管班级‘, 61 # ‘3‘: ‘创建上课记录‘, 62 # ‘4‘: ‘评分‘, 63 # ‘5‘: ‘返回‘ 64 # } 65 66 # 主菜单字典 67 main_dic = { 68 ‘1‘: ‘manage_sys()‘, 69 ‘2‘: ‘student_sys()‘, 70 ‘3‘: ‘teacher_sys()‘, 71 } 72 73 # 学生系统菜单 74 student_main_dic = { 75 ‘1‘: ‘student_register()‘, 76 ‘2‘: ‘student_login()‘, 77 } 78 79 # 学生登录系统后菜单 80 student_dic = { 81 "1": "student_show", 82 "2": "student_pay_tuition", 83 # "3": "student_pay_homework", 84 } 85 86 # 管理员系统菜单 87 master_dic = { 88 "1": "add_school()", 89 "2": "add_teacher()", 90 "3": "add_course()", 91 "4": "add_class()", 92 "5": "school_show()", 93 "6": "school_show_teacher()" 94 } 95 96 # 教师系统菜单 97 teacher_dic = { 98 "1": "teacher_show", 99 "2": "show_gradeInfo", 100 "3": "create_class", 101 # "4": "modify_score" 102 } 103 104 # 主菜单打印信息 105 msg_main = """ 106 --------------- 欢迎进入选课系统 ---------------- 107 当前日期: {time} 108 109 【1】 管理员系统 110 【2】 学生系统 111 【3】 老师系统 112 -------------------------------------------------- 113 """.format(time=format_time()) 114 115 # 学生系统打印信息 116 msg_student_main = """ 117 --------------- 欢迎进入学生系统 ---------------- 118 当前日期: {time} 119 120 【1】 注册 121 【2】 登录系统 122 -------------------------------------------------- 123 """.format(time=format_time()) 124 125 # 学生登录系统后打印信息 126 msg_student = """ 127 --------------- 欢迎学生界面 ---------------- 128 当前日期: {time} 129 130 【1】 查询个人详情 131 【2】 交学费 132 -------------------------------------------------- 133 """.format(time=format_time()) 134 135 # 管理员系统打印信息 136 msg_master = """ 137 --------------- 欢迎进入管理员界面 ---------------- 138 当前日期: {time} 139 140 【1】 创建学校 141 【2】 创建讲师 142 【3】 创建课程 143 【4】 创建班级 144 【5】 查看学校 145 【6】 查看讲师 146 -------------------------------------------------- 147 """.format(time=format_time()) 148 149 # 教师系统打印信息 150 msg_teacher = """ 151 --------------- 欢迎进入教师界面 ---------------- 152 当前日期: {time} 153 154 【1】 查询个人信息 155 【2】 查询所管班级 156 【3】 选择班级上课 157 #【4】 评分 158 -------------------------------------------------- 159 """.format(time=format_time())
1 #!/usr/bin/env python 2 # _*_ coding: utf-8 _*_ 3 4 import time 5 import pickle 6 from conf import settings 7 8 9 def format_time(): 10 return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from .ReadDb import ReadDb 5 class Course(ReadDb): 6 def __init__(self, name, class_cycle, class_price, school_name): 7 self.name = name 8 self.cycle = class_cycle 9 self.price = class_price 10 self.school_name = school_name 11 12 # 读取课程数据 13 course_list = self.readCourseDb() 14 course_list[self.name] = self 15 # 存储课程数据 16 self.writeCourseDb(course_list)
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from .ReadDb import ReadDb 5 class Greades(ReadDb): 6 def __init__(self, gread_name, course_name, teacher_name): 7 self.gread_name = gread_name 8 self.course_name = course_name 9 self.teacher_name = teacher_name 10 self.student_list = {} 11 12 # 读取班级数据 13 grade_list = self.readGradeDb() 14 grade_list[self.gread_name] = self 15 # 存储班级数据 16 self.writeGradeDb(grade_list)
#!/usr/bin/env python # -*- coding: utf-8 -*- from .StudentClass import StudentClass from .CourseClass import Course from .GradesClass import Greades from .ReadDb import ReadDb from .SchoolClass import School from .StudentClass import StudentClass from .TeacherClass import Teacher from conf import settings # ------------------------------------------------ 学校 --------------------------------------------------------------- def add_school(): while True: school_list = ReadDb.readSchoolDb() if len(school_list): print(" 目前开放的学校如下 ".center(40, "-")) for school_name in school_list: print(school_name) school_name = input("请输入创建的学校名称: ").strip() if school_name in school_list: print("抱歉,当前 %s 校区已经存在,勿需重复创建." % school_name) break else: School(school_name) print("%s 校区创建成功" % school_name) break def add_teacher(): school_all = ReadDb.readSchoolDb() while True: if not len(school_all): print("暂时还有开放学校,请联系管理员") break print("请选择您的学校: ") for i in school_all: print(i) school_name = input("请输入选择的学校名称: ").strip() if school_name in school_all: school_obj = school_all[school_name] school_obj.createTeacher() print("创建讲师成功") break else: print("输入有误") def add_course(): school_all = ReadDb.readSchoolDb() while True: print("请选择您的学校: ") for school_name in school_all: print(school_name) school_name = input("请输入选择的学校名称: ").strip() print(" 欢迎进入%s 校区 ".center(40, "-") % school_name) if school_name in school_all: school_obj = school_all[school_name] school_obj.createCourse() # print("创建课程成功") break else: print("输入有误") def add_class(): school_all = ReadDb.readSchoolDb() while True: print("请选择您的学校: ") for i in school_all: print(i) school_name = input("请输入选择的学校名称: ").strip() if school_name in school_all: school_obj = school_all[school_name] school_obj.createGrades() print("创建班级成功") break else: print("输入有误") def school_show(): school_all = ReadDb.readSchoolDb() print(" 目前开放的学校 ".center(45, "-")) for school_name in school_all: print(school_name) def school_show_teacher(): teacher_all = ReadDb.readTeacherDb() # print("teacher_all",teacher_all) print(" 目前所有教师 ".center(45, "-")) for teacher_name in teacher_all: # print(teacher_name) # print("teacher_name", teacher_all[teacher_name].__dict__) print("""--------------------------- 讲师 ----------------------------- 姓 名: %s 性 别: %s 年 龄: %s 所在学校: %s 所在班级: %s """ % (teacher_all[teacher_name].name, teacher_all[teacher_name].sex, teacher_all[teacher_name].age, teacher_all[teacher_name].school_name, teacher_all[teacher_name].greade_list)) def manage_sys(): username = input("请输入管理员姓名: ").strip() password = input("请输入管理员密码: ").strip() if username == settings.ROOT_NAME and password == settings.ROOT_PASSWORD: while True: print(settings.msg_master) select = input("请选择您要进入的系统序号<b返回|q退出>: ").strip() if select.lower() == "b": break elif select.lower() == "q": exit(" 拜拜 ".center(50, "-")) else: eval(settings.master_dic[select]) if select in settings.master_dic else print("抱歉输入编号不存在") else: print(‘用户名或者密码错误‘) # ---------------------------------------------- 学生 ----------------------------------------------------------------- def student_register(): school_all = ReadDb.readSchoolDb() while True: if not len(school_all): print("暂时还有开放学校,请联系管理员") break print("目前开放的学校: ") for school_name in school_all: print(school_name) school_name = input("请输入选择的学校名称: ").strip() if school_name in school_all: school_obj = school_all[school_name] school_obj.createStudent() break else: print("输入有误") def student_show(obj): obj.showInfo() def student_pay_tuition(obj): obj.payTuition() def student_pay_homework(obj): obj.submitTask() def student_login(): student_obj = StudentClass.login() if student_obj: while True: print(settings.msg_student) select = input("请选择要进入的系统序号<b返回|q退出>: ").strip() if select.lower() == "b": break elif select.lower() == "q": exit(" 拜拜 ".center(50, "-")) else: eval(settings.student_dic[select])(student_obj) if select in settings.student_dic else print("抱歉输入编号不存在") def student_sys(): while True: print(settings.msg_student_main) select = input("请选择要进入的系统序号<b返回|q退出>: ").strip() if select.lower() == "b": break elif select.lower() == "q": exit(" 拜拜 ".center(50, "-")) else: eval(settings.student_main_dic[select]) if select in settings.student_main_dic else print("抱歉输入编号不存在") # ----------------------------------------------------- 老师 ----------------------------------------------------------- def teacher_show(obj): obj.show_info() def show_gradeInfo(obj): obj.show_grade_info() def create_class(obj): obj.create_class_record() def modify_score(obj): """ :param obj: :return: """ obj.change_score() def teacher_sys(): teacher_obj = Teacher.login() if teacher_obj: while True: print(settings.msg_teacher) select = input("请选择要进入的系统序号<b返回|q退出>: ").strip() if select.lower() == "b": break elif select.lower() == "q": exit(" 拜拜 ".center(50, "-")) else: eval(settings.teacher_dic[select])(teacher_obj) if select in settings.teacher_dic else print("抱歉输入编号不存在") # -------------------------------------- 入口 -------------------------------------------------------------------------- def main(): print("管理员默认账号是%s 密码是: %s" % (settings.ROOT_NAME, settings.ROOT_PASSWORD)) while True: print(settings.msg_main) select = input(‘请选择要进入的系统序号<b返回|q退出>: ‘).strip() if select.lower() == "b": break elif select.lower() == "q": exit(" 拜拜 ".center(50, "-")) else: eval(settings.main_dic[select]) if select in settings.main_dic else print("抱歉输入编号不存在")
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import pickle 5 import json 6 import os 7 # import sys 8 # BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 9 # sys.path.append(BASE_DIR) 10 from conf import settings 11 12 class ReadDb: 13 @staticmethod 14 def readCourseDb(): 15 # 通过调用pickle的load方法读取课程信息 16 if os.path.exists(settings.COURSE_PATH): 17 with open(settings.COURSE_PATH, "rb") as course_file: 18 course_info = pickle.load(course_file) 19 else: 20 course_info = {} 21 return course_info 22 23 @staticmethod 24 def writeCourseDb(info): 25 # 序列化课程到文件 26 with open(settings.COURSE_PATH, "wb") as course_file: 27 pickle.dump(info, course_file) 28 29 @staticmethod 30 def readSchoolDb(): 31 # 反序列school 32 if os.path.exists(settings.SCHOOL_PATH): 33 with open(settings.SCHOOL_PATH, "rb") as school_file: 34 school_info = pickle.load(school_file) 35 else: 36 school_info = {} 37 return school_info 38 @staticmethod 39 def writeSchoolDb(info): 40 #序列化学校到文件 41 with open(settings.SCHOOL_PATH, "wb") as school_file: 42 pickle.dump(info, school_file) 43 44 @staticmethod 45 def readTeacherDb(): 46 # 反序列化读到内存 47 if os.path.exists(settings.TEACHER_PATH): 48 with open(settings.TEACHER_PATH, "rb") as teacher_file: 49 teacher_info = pickle.load(teacher_file) 50 else: 51 teacher_info = {} 52 return teacher_info 53 54 @staticmethod 55 def writeTeacherDb(info): 56 # 序列化老师到文件 57 with open(settings.TEACHER_PATH, "wb") as teacher_file: 58 pickle.dump(info, teacher_file) 59 60 @staticmethod 61 def readGradeDb(): 62 # 反序列化班级 63 if os.path.exists(settings.GRADE_PATH): 64 with open(settings.GRADE_PATH, "rb") as grade_file: 65 grade_info = pickle.load(grade_file) 66 else: 67 grade_info = {} 68 69 return grade_info 70 71 @staticmethod 72 def writeGradeDb(info): 73 # 序列化班级 74 with open(settings.GRADE_PATH, "wb") as grade_file: 75 pickle.dump(info, grade_file) 76 77 @staticmethod 78 def readStudentDb(): 79 # 反序列化学生 80 if os.path.exists(settings.STUDENT_PATH): 81 with open(settings.STUDENT_PATH, "rb") as student_file: 82 student_info = pickle.load(student_file) 83 else: 84 student_info = {} 85 return student_info 86 87 @staticmethod 88 def writeStudentDb(info): 89 # 序列化学生 90 with open(settings.STUDENT_PATH, "wb") as student_file: 91 pickle.dump(info, student_file)
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from .CourseClass import Course 5 from .ReadDb import ReadDb 6 from .TeacherClass import Teacher 7 from .GradesClass import Greades 8 from .CourseClass import Course 9 from .StudentClass import StudentClass 10 from conf import settings 11 class School(ReadDb): 12 ‘‘‘学校类‘‘‘ 13 def __init__(self,name): 14 self.school_name = name 15 self.school_course_list = {} 16 self.school_teacher_list = {} 17 self.school_greades_list = {} 18 self.school_student_list = {} 19 # 读取学校数据 20 school_list = self.readSchoolDb() 21 school_list[self.school_name] = self 22 # 存储学校数据 23 self.writeSchoolDb(school_list) 24 25 def createCourse(self): 26 ‘‘‘创建课程方法‘‘‘ 27 while True: 28 school_list = self.readSchoolDb() 29 print("目前该校区,开放的课程如下") 30 for course_name in school_list[self.school_name].school_course_list: 31 print("开放的课程 --> ",course_name) 32 course_name = input("请输入课程名称: ").strip() 33 course_cycle = input("请输入课程周期: ").strip() 34 course_price = input("请输入课程价格: ").strip() 35 # 创建课程对象 36 course_obj = Course(course_name, course_cycle, course_price, self.school_name) 37 # 读取课程数据 38 course_list = self.readCourseDb() 39 # print("course_list__dict = ",course_obj.__dict__) 40 course_list[course_name] = course_obj 41 # 存储课程信息 42 # self.writeCourseDb(course_list) ##### 43 self.school_course_list[course_name] = course_name 44 # 读取学校数据 45 # school_list = self.readSchoolDb() 46 if course_name in school_list[self.school_name].school_course_list: 47 print("抱歉,你新增的课程已经存在,创建失败") 48 break 49 # 存储学校数据 50 school_list[self.school_name] = self 51 # print("school_list = ",school_list) 52 # print("school_list.school_name = ",school_list[self.school_name].__dict__) 53 54 self.writeCourseDb(course_list) ##### 55 self.writeSchoolDb(school_list) #### 56 break 57 58 59 def createTeacher(self): 60 ‘‘‘创建教师方法‘‘‘ 61 school_all = ReadDb.readSchoolDb() 62 while True: 63 teacher_name = input("请输入教师姓名: ").strip() 64 if teacher_name in school_all[self.school_name].school_teacher_list: 65 print("抱歉该 %s 校区的%s 老师已经存在,请勿重复创建" % (self.school_name, teacher_name)) 66 else: 67 break 68 teacher_password = input("请输入教师登录密码: ").strip() 69 teacher_age = input("请输入教师年龄: ").strip() 70 teacher_sex = input("请输入教师性别: ").strip() 71 school_name = self.school_name 72 teacher = Teacher(teacher_name,teacher_password,teacher_age,teacher_sex,school_name) 73 74 # 读取教师数据 75 teacher_info = self.readTeacherDb() 76 teacher_info[teacher_name] = teacher 77 # 存储教师数据 78 self.writeTeacherDb(teacher_info) 79 80 self.school_teacher_list[teacher_name] = teacher_name 81 # 读取学校数据 82 school_list = self.readSchoolDb() 83 # 存储学校数据 84 school_list[self.school_name] = self 85 self.writeSchoolDb(school_list) 86 print("""------------ 恭喜注册成功 【 %s 】 老师注册详细信息如下 87 姓 名: %s 88 密 码: %s 89 年 龄: %s 90 性 别: %s 91 所在学校: %s 92 请妥善保存好您的信息 93 """ % (teacher_name, teacher_name, teacher_password, teacher_age, teacher_sex, self.school_name)) 94 95 def showTeacher(self): 96 teacher_info = self.readTeacherDb() 97 print("teacher_info = ", teacher_info.__dict__) 98 99 def createGrades(self): 100 ‘‘‘创建班级方法‘‘‘ 101 # 读取教师数据 102 teacher_info = self.readTeacherDb() 103 greade_name = input("请输入班级名称: ").strip() 104 # 选择教师 105 while True: 106 print("请选择本校老师: ") 107 for name in self.school_teacher_list: 108 print(name) 109 teacher_name = input("请输入你要选择的老师姓名: ").strip() 110 if teacher_name not in self.school_teacher_list: 111 print("您输入的有误") 112 else: 113 break 114 115 #选择课程 116 while True: 117 print("请选择本校课程:") 118 for course in self.school_course_list: 119 print(course) 120 grade_course = input("请输入你要选择的课程名称: ").strip() 121 if grade_course not in self.school_course_list: 122 print("您输入的有误") 123 else: 124 break 125 grade = Greades(greade_name, grade_course, teacher_name) 126 # 写入学校数据库 127 self.school_greades_list[greade_name] = greade_name 128 # 读取学校数据 129 school_list = self.readSchoolDb() 130 # 存储学校数据 131 school_list[self.school_name] = self 132 self.writeSchoolDb(school_list) 133 134 # 写入教师数据库 135 teacher_info[teacher_name].greade_list[greade_name] = greade_name 136 self.writeTeacherDb(teacher_info) 137 138 # 写入班级数据库 139 grade_info = self.readGradeDb() 140 grade_info[greade_name] = grade 141 self.writeGradeDb(grade_info) 142 143 def createStudent(self): 144 ‘‘‘创建学生‘‘‘ 145 while True: 146 name = input("请输入您的姓名: ").strip() 147 pass_word = input("请输入您的密码: ").strip() 148 while True: 149 print(" ------ > 年龄必须是大于0整数") 150 age = input("请输入您的年龄: ").strip() 151 if age.isdigit(): 152 if int(age) <= 0: 153 print(" -- > 年龄必须是大于0") 154 else: 155 break 156 else: 157 print(" -- > 年龄必须是整数") 158 while True: 159 print(" ------ > 性别你只能输入以下可选选项") 160 for sex in settings.GENDER: 161 print(sex, end=" | ") 162 print("") 163 sex = input("请输入您的性别: ").strip() 164 if sex in settings.GENDER: break 165 grade_list = self.readGradeDb() 166 school_list = self.readSchoolDb() 167 # print("grade_list = ",grade_list) 168 # print("type(school_list) = ",type(school_list)) 169 # print("school_list.school_name = ",school_list[school_name]) 170 # print("grade_list = ",school_list[school_name].__dict__) 171 print("该校区目前可选择班级信息如下: ") 172 for class_name in school_list[self.school_name].school_greades_list: 173 print(class_name) 174 175 grade_name = input("请输入要注册班级名称: ").strip() 176 if grade_name in grade_list: 177 if name in grade_list[grade_name].student_list: 178 # print("抱歉该班级学生 %s 已经存在" % name) 179 print("抱歉该班级学生 %s 已经存在,新增学生失败" % name) 180 break 181 else: 182 print("您输入的班级名称有问题") 183 break 184 185 grade_obj = grade_list[grade_name] 186 grade_obj.student_list[name] = name 187 grade_list[grade_name] = grade_obj 188 # print("grade_list = ",grade_list) 189 # print("grade_list = ",grade_list[grade_name].student_list) 190 191 # 写入班级学生列表 192 self.writeGradeDb(grade_list) 193 194 course_all = self.readCourseDb() 195 course_price = course_all[grade_obj.course_name].price 196 student_obj = StudentClass(name,pass_word,age,sex,grade_name,grade_obj.course_name,self.school_name,course_price) 197 student_all = self.readStudentDb() 198 student_all[name] = student_obj 199 self.writeStudentDb(student_all) 200 print(""" ------------ 恭喜注册成功 【 %s 】 同学注册详细信息如下 -------------- 201 姓名: %s 202 密码: %s 203 年龄: %s 204 性别: %s 205 学校: %s 206 班级: %s 207 请妥善保存好您的信息 208 """ % (name, name, pass_word, age, sex, self.school_name, grade_name)) 209 break
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 class SchoolPeople: 5 def __init__(self, name, pass_word, age, sex): 6 self.name = name 7 self.pass_word = pass_word 8 self.age = age 9 self.sex = sex
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import time 5 from .SchoolPeopleBase import SchoolPeople 6 from .ReadDb import ReadDb 7 class StudentClass(SchoolPeople,ReadDb): 8 9 def __init__(self, name, pass_word, age, sex, class_name, course_name, school_name, tuition, is_pay=0): 10 super().__init__(name, pass_word, age, sex) 11 self.class_name = class_name 12 self.tuition = tuition 13 self.is_pay = is_pay 14 # self.submit_task = {} 15 self.course_name = course_name 16 self.school_name = school_name 17 18 # 读取学生数据 19 student_list = self.readStudentDb() 20 # print("student_list = ", student_list) 21 student_list[self.name] = self 22 # 存储学生数据 23 self.writeStudentDb(student_list) 24 25 26 def payTuition(self): 27 ‘‘‘支付学费方法‘‘‘ 28 if self.is_pay == 1: 29 print("学费已交,无需再交") 30 else: 31 print("您当前需要付学费: ", self.tuition, ‘元‘) 32 while True: 33 tuition = input("请输入您要交的学费: ").strip() 34 if tuition.isdigit() and (int(tuition) - int(self.tuition) >= 0): 35 print("学费已交,谢谢") 36 self.is_pay = 1 37 # 写入学生db 38 student_info = self.readSchoolDb() 39 # print("student_info = ",student_info) 40 student_info[self.name] = self 41 self.writeStudentDb(student_info) 42 return True 43 else: 44 print("您输入学费不够支付") 45 46 def showInfo(self): 47 ‘‘‘展示个人信息‘‘‘ 48 msg = """ 49 亲爱的同学 %s 你好,你详细信息如下 50 姓 名: %s 51 性 别: %s 52 年 龄: %s 53 所在学校: %s 54 所在班级: %s 55 """ % (self.name, self.name, self.sex, self.age, self.school_name, self.course_name) 56 print(msg) 57 58 @staticmethod 59 def login(): 60 student_all = ReadDb.readStudentDb() 61 # print("student_all = ",student_all) 62 name = input("请输入您的姓名: ").strip() 63 if name in student_all: 64 student_info = student_all[name] 65 # print("student_info = ", student_info) 66 # print("student_info.__dict__ = ", student_info.__dict__) 67 pass_word = input("请输入您的密码: ").strip() 68 if pass_word == student_info.pass_word: 69 print(‘登录成功‘) 70 return student_info 71 else: 72 print(‘您输入的密码有误‘) 73 else: 74 print("抱歉 学生 %s 在本系统中不存在" % name)
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from .SchoolPeopleBase import SchoolPeople 5 from .ReadDb import ReadDb 6 from .StudentClass import StudentClass 7 from .GradesClass import Greades 8 import time 9 class Teacher(SchoolPeople,ReadDb): 10 def __init__(self, name, pass_word, age, sex, school_name): 11 super().__init__(name, pass_word, age, sex) 12 self.greade_list = {} 13 self.school_name = school_name 14 self.class_record = [] 15 16 # 读取班级数据 17 teacher_list = self.readTeacherDb() 18 teacher_list[self.name] = self 19 # 存储班级数据 20 self.writeTeacherDb(teacher_list) 21 22 def show_grade_info(self): 23 ‘‘‘展示自己所教班级‘‘‘ 24 print("您所教的班级如下:") 25 for i in self.greade_list: 26 print(i) 27 28 def create_class_record(self): 29 ‘‘‘展示创建上课记录‘‘‘ 30 # 展示自己所教班级 31 while True: 32 print("您所教的班级如下: ") 33 for i in self.greade_list: 34 print(i) 35 greade_name = input("请选择上课的班级: ") 36 if greade_name in self.greade_list: 37 break 38 else: 39 print(‘您输入班级有问题,请重新输入‘) 40 continue 41 string = greade_name + time.strftime("%Y-%m-%d %X") + "上课记录" 42 self.class_record.append(string) 43 print("上课成功") 44 # 读取班级数据 45 teacher_list = self.readTeacherDb() 46 # print("teacher_list = ",teacher_list) 47 teacher_list[self.name] = self 48 # print("teacher_list = ", teacher_list) 49 # 存储班级数据 50 self.writeTeacherDb(teacher_list) 51 52 @staticmethod 53 def login(): 54 """ 55 教师登录验证 56 :return: 57 """ 58 teacher_all = ReadDb.readTeacherDb() 59 username = input("请输入您的姓名: ").strip() 60 if username in teacher_all: 61 teacher_info = teacher_all[username] 62 pass_word = input("请输入您的密码: ").strip() 63 if pass_word == teacher_info.pass_word: 64 # print("teacher_info = ",teacher_info.__dict__) 65 return teacher_info 66 else: 67 print("您输入的密码有误,请重新输入") 68 else: 69 print("抱歉 老师 %s 在本系统中不存在" % username) 70 71 def show_info(self): 72 ‘‘‘展示老师信息‘‘‘ 73 msg = """ 74 亲爱的老师 %s 你好,你详细信息如下 75 姓 名: %s 76 性 别: %s 77 年 龄: %s 78 所在学校: %s 79 """ % (self.name, self.name, self.sex, self.age, self.school_name) 80 print(msg)
运行环境
Python 3.5.2
流程图
亿图 7.8
功能介绍
选课本系统共分为3大环节 在系统首次启动之后,会固化一个超级管理员root,密码也是root,会打印相关信息 1. 管理员系统 1. 创建学校 2. 创建讲师 3. 创建课程 4. 创建班级 5. 查看老师 6. 查看讲师 2. 学生系统 1. 注册 - 学校 - 班级 2. 登录 3. 老师系统 1. 登录 - 查看个人信息 - 查看所带的班级 - 创建上课记录
测试记录
[BEGIN] 2018/2/11 15:21:22 leco@leco:~/data/xuanke$ ls bin conf core leco@leco:~/data/xuanke$ python3 bin/run.py 管理员默认账号是root 密码是: root --------------- 欢迎进入选课系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 管理员系统 【2】 学生系统 【3】 老师系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 请输入管理员姓名: root 请输入管理员密码: root --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 1 请输入创建的学校名称: 北京 北京 校区创建成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 1 -------------- 目前开放的学校如下 --------------- 北京 请输入创建的学校名称: 上海 上海 校区创建成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 2 请选择您的学校: 北京 上海 请输入选择的学校名称: 北京 请输入教师姓名: alex 请输入教师登录密码: alex 请输入教师年龄: 20 请输入教师性别: male ------------ 恭喜注册成功 【 alex 】 老师注册详细信息如下 姓 名: alex 密 码: alex 年 龄: 20 性 别: male 所在学校: 北京 请妥善保存好您的信息 创建讲师成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 2 请选择您的学校: 上海 北京 请输入选择的学校名称: 上海 请输入教师姓名: egon 请输入教师登录密码: egon 请输入教师年龄: 20 请输入教师性别: male ------------ 恭喜注册成功 【 egon 】 老师注册详细信息如下 姓 名: egon 密 码: egon 年 龄: 20 性 别: male 所在学校: 上海 请妥善保存好您的信息 创建讲师成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 3 请选择您的学校: 北京 上海 请输入选择的学校名称: 北京 -------------- 欢迎进入北京 校区 --------------- 目前该校区,开放的课程如下 请输入课程名称: python 请输入课程周期: 3mons 请输入课程价格: 3000 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 3 请选择您的学校: 上海 北京 请输入选择的学校名称: 上海 -------------- 欢迎进入上海 校区 --------------- 目前该校区,开放的课程如下 请输入课程名称: go 请输入课程周期: 3mons 请输入课程价格: 3000 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 4 请选择您的学校: 北京 上海 请输入选择的学校名称: 比较^H 输入有误 请选择您的学校: 北京 上海 请输入选择的学校名称: 北京 请输入班级名称: python-1 请选择本校老师: alex 请输入你要选择的老师姓名: alex 请选择本校课程: python 请输入你要选择的课程名称: python 创建班级成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 4 请选择您的学校: 上海 北京 请输入选择的学校名称: 上海 请输入班级名称: go-1 请选择本校老师: egon 请输入你要选择的老师姓名: egon 请选择本校课程: go 请输入你要选择的课程名称: go 创建班级成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 2 请选择您的学校: 北京 上海 请输入选择的学校名称: 北京 请输入教师姓名: oldboy 请输入教师登录密码: oldboy 请输入教师年龄: 20 请输入教师性别: male ------------ 恭喜注册成功 【 oldboy 】 老师注册详细信息如下 姓 名: oldboy 密 码: oldboy 年 龄: 20 性 别: male 所在学校: 北京 请妥善保存好您的信息 创建讲师成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 3 请选择您的学校: 上海 北京 请输入选择的学校名称: 北京 -------------- 欢迎进入北京 校区 --------------- 目前该校区,开放的课程如下 开放的课程 --> python 请输入课程名称: linux 请输入课程周期: 3mons 请输入课程价格: 3000 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 4 请选择您的学校: 北京 上海 请输入选择的学校名称: 北京 请输入班级名称: linux-1 请选择本校老师: oldboy alex 请输入你要选择的老师姓名: oldboy 请选择本校课程: python linux 请输入你要选择的课程名称: linux 创建班级成功 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 5 ------------------ 目前开放的学校 ------------------ 上海 北京 --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: 6 ------------------- 目前所有教师 ------------------ --------------------------- 讲师 ----------------------------- 姓 名: oldboy 性 别: male 年 龄: 20 所在学校: 北京 所在班级: {‘linux-1‘: ‘linux-1‘} --------------------------- 讲师 ----------------------------- 姓 名: egon 性 别: male 年 龄: 20 所在学校: 上海 所在班级: {‘go-1‘: ‘go-1‘} --------------------------- 讲师 ----------------------------- 姓 名: alex 性 别: male 年 龄: 20 所在学校: 北京 所在班级: {‘python-1‘: ‘python-1‘} --------------- 欢迎进入管理员界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 创建学校 【2】 创建讲师 【3】 创建课程 【4】 创建班级 【5】 查看学校 【6】 查看讲师 -------------------------------------------------- 请选择您要进入的系统序号<b返回|q退出>: b --------------- 欢迎进入选课系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 管理员系统 【2】 学生系统 【3】 老师系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 目前开放的学校: 上海 北京 请输入选择的学校名称: 北京 请输入您的姓名: cmz 请输入您的密码: cmz ------ > 年龄必须是大于0整数 请输入您的年龄: 20 ------ > 性别你只能输入以下可选选项 男 | male | 女 | female | 请输入您的性别: male 该校区目前可选择班级信息如下: python-1 linux-1 请输入要注册班级名称: python-1 ------------ 恭喜注册成功 【 cmz 】 同学注册详细信息如下 -------------- 姓名: cmz 密码: cmz 年龄: 20 性别: male 学校: 北京 班级: python-1 请妥善保存好您的信息 --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 请输入您的姓名: cmz 请输入您的密码: cmz 登录成功 --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 您当前需要付学费: 3000 元 请输入您要交的学费: 3000 学费已交,谢谢 student_info = {‘上海‘: <core.SchoolClass.School object at 0x7f23c445ae80>, ‘北京‘: <core.SchoolClass.School object at 0x7f23c5bb76a0>} --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 学费已交,无需再交 --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 亲爱的同学 cmz 你好,你详细信息如下 姓 名: cmz 性 别: male 年 龄: 20 所在学校: 北京 所在班级: python --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: b --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 目前开放的学校: 上海 北京 请输入选择的学校名称: 上海 请输入您的姓名: leco 请输入您的密码: leco ------ > 年龄必须是大于0整数 请输入您的年龄: 20 ------ > 性别你只能输入以下可选选项 男 | male | 女 | female | 请输入您的性别: male 该校区目前可选择班级信息如下: go-1 请输入要注册班级名称: go-1 ------------ 恭喜注册成功 【 leco 】 同学注册详细信息如下 -------------- 姓名: leco 密码: leco 年龄: 20 性别: male 学校: 上海 班级: go-1 请妥善保存好您的信息 --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 请输入您的姓名: leco 请输入您的密码: leco 登录成功 --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 亲爱的同学 leco 你好,你详细信息如下 姓 名: leco 性 别: male 年 龄: 20 所在学校: 上海 所在班级: go --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: b --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 目前开放的学校: 上海 北京 请输入选择的学校名称: 北京 请输入您的姓名: 朵朵 请输入您的密码: duoduo ------ > 年龄必须是大于0整数 请输入您的年龄: 3 ------ > 性别你只能输入以下可选选项 男 | male | 女 | female | 请输入您的性别: female 该校区目前可选择班级信息如下: python-1 linux-1 请输入要注册班级名称: linux-1 ------------ 恭喜注册成功 【 朵朵 】 同学注册详细信息如下 -------------- 姓名: 朵朵 密码: duoduo 年龄: 3 性别: female 学校: 北京 班级: linux-1 请妥善保存好您的信息 --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 请输入您的姓名: 朵朵 请输入您的密码: duoduo 登录成功 --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 亲爱的同学 朵朵 你好,你详细信息如下 姓 名: 朵朵 性 别: female 年 龄: 3 所在学校: 北京 所在班级: linux --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 您当前需要付学费: 3000 元 请输入您要交的学费: 4000 学费已交,谢谢 student_info = {‘上海‘: <core.SchoolClass.School object at 0x7f23c445aef0>, ‘北京‘: <core.SchoolClass.School object at 0x7f23c44f8710>} --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: ^Hb 抱歉输入编号不存在 --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: b --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: b --------------- 欢迎进入选课系统 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 管理员系统 【2】 学生系统 【3】 老师系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 3 请输入您的姓名: alex 请输入您的密码: alex teacher_info = {‘class_record‘: [], ‘name‘: ‘alex‘, ‘sex‘: ‘male‘, ‘pass_word‘: ‘alex‘, ‘school_name‘: ‘北京‘, ‘age‘: ‘20‘, ‘greade_list‘: {‘python-1‘: ‘python-1‘}} --------------- 欢迎进入教师界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人信息 【2】 查询所管班级 【3】 选择班级上课 #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 您所教的班级如下: python-1 --------------- 欢迎进入教师界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人信息 【2】 查询所管班级 【3】 选择班级上课 #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 3 您所教的班级如下: python-1 请选择上课的班级: python-1 上课成功 --------------- 欢迎进入教师界面 ---------------- 当前日期: 2018-02-11 15:21:52 【1】 查询个人信息 【2】 查询所管班级 【3】 选择班级上课 #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: q ----------------------- 拜拜 ----------------------- leco@leco:~/data/xuanke$ ls bin conf core db leco@leco:~/data/xuanke$ leco@leco:~/data/xuanke$ du -sh * 8.0K bin 24K conf 112K core 24K db leco@leco:~/data/xuanke$ tar zcvf db.tar.gz db/ db/ db/student.txt db/teacher.txt db/course.txt db/grade.txt db/school.txt leco@leco:~/data/xuanke$ sz db.tar.gz leco@leco:~/data/xuanke$ ls bin conf core db db.tar.gz leco@leco:~/data/xuanke$ cd co -bash: cd: co: No such file or directory leco@leco:~/data/xuanke$ cd core/ leco@leco:~/data/xuanke/core$ ls common.py GradesClass.py main.py ReadDb.py SchoolPeopleBase.py TeacherClass.py CourseClass.py __init__.py __pycache__ SchoolClass.py StudentClass.py leco@leco:~/data/xuanke/core$ vim TeacherClass.py #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: q ----------------------- 拜拜 ----------------------- leco@leco:~/data/xuanke$ ls bin conf core db leco@leco:~/data/xuanke$ leco@leco:~/data/xuanke$ du -sh * 8.0K bin 24K conf 112K core 24K db leco@leco:~/data/xuanke$ tar zcvf db.tar.gz db/ db/ db/student.txt db/teacher.txt db/course.txt db/grade.txt db/school.txt leco@leco:~/data/xuanke$ sz db.tar.gz leco@leco:~/data/xuanke$ ls bin conf core db db.tar.gz leco@leco:~/data/xuanke$ cd co -bash: cd: co: No such file or directory leco@leco:~/data/xuanke$ cd core/ leco@leco:~/data/xuanke/core$ ls common.py GradesClass.py main.py ReadDb.py SchoolPeopleBase.py TeacherClass.py CourseClass.py __init__.py __pycache__ SchoolClass.py StudentClass.py leco@leco:~/data/xuanke/core$ vim TeacherClass.py leco@leco:~/data/xuanke/core$ ^C leco@leco:~/data/xuanke/core$ vim StudentClass.py leco@leco:~/data/xuanke$ du -sh * 8.0K bin 24K conf 112K core 24K db leco@leco:~/data/xuanke$ tar zcvf db.tar.gz db/ db/ db/student.txt db/teacher.txt db/course.txt db/grade.txt db/school.txt leco@leco:~/data/xuanke$ sz db.tar.gz leco@leco:~/data/xuanke$ ls bin conf core db db.tar.gz leco@leco:~/data/xuanke$ cd co -bash: cd: co: No such file or directory leco@leco:~/data/xuanke$ cd core/ leco@leco:~/data/xuanke/core$ ls common.py GradesClass.py main.py ReadDb.py SchoolPeopleBase.py TeacherClass.py CourseClass.py __init__.py __pycache__ SchoolClass.py StudentClass.py leco@leco:~/data/xuanke/core$ vim TeacherClass.py leco@leco:~/data/xuanke/core$ ^C leco@leco:~/data/xuanke/core$ vim StudentClass.py leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ leco@leco:~/data/xuanke/core$ cd .. leco@leco:~/data/xuanke$ python3 bin/run.py 管理员默认账号是root 密码是: root --------------- 欢迎进入选课系统 ---------------- 当前日期: 2018-02-11 15:33:02 【1】 管理员系统 【2】 学生系统 【3】 老师系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 --------------- 欢迎进入学生系统 ---------------- 当前日期: 2018-02-11 15:33:02 【1】 注册 【2】 登录系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 请输入您的姓名: 朵朵 请输入您的密码: duoduo 登录成功 --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:33:02 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 亲爱的同学 朵朵 你好,你详细信息如下 姓 名: 朵朵 性 别: female 年 龄: 3 所在学校: 北京 所在班级: linux --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:33:02 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 学费已交,无需再交 --------------- 欢迎学生界面 ---------------- 当前日期: 2018-02-11 15:33:02 【1】 查询个人详情 【2】 交学费 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: q ----------------------- 拜拜 ----------------------- leco@leco:~/data/xuanke$ python3 bin/run.py 管理员默认账号是root 密码是: root --------------- 欢迎进入选课系统 ---------------- 当前日期: 2018-02-11 15:33:20 【1】 管理员系统 【2】 学生系统 【3】 老师系统 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 3 请输入您的姓名: alex 请输入您的密码: alex --------------- 欢迎进入教师界面 ---------------- 当前日期: 2018-02-11 15:33:20 【1】 查询个人信息 【2】 查询所管班级 【3】 选择班级上课 #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 1 亲爱的老师 alex 你好,你详细信息如下 姓 名: alex 性 别: male 年 龄: 20 所在学校: 北京 --------------- 欢迎进入教师界面 ---------------- 当前日期: 2018-02-11 15:33:20 【1】 查询个人信息 【2】 查询所管班级 【3】 选择班级上课 #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 2 您所教的班级如下: python-1 --------------- 欢迎进入教师界面 ---------------- 当前日期: 2018-02-11 15:33:20 【1】 查询个人信息 【2】 查询所管班级 【3】 选择班级上课 #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: 3 您所教的班级如下: python-1 请选择上课的班级: python 您输入班级有问题,请重新输入 您所教的班级如下: python-1 请选择上课的班级: python-1 上课成功 --------------- 欢迎进入教师界面 ---------------- 当前日期: 2018-02-11 15:33:20 【1】 查询个人信息 【2】 查询所管班级 【3】 选择班级上课 #【4】 评分 -------------------------------------------------- 请选择要进入的系统序号<b返回|q退出>: q ----------------------- 拜拜 ----------------------- leco@leco:~/data/xuanke$ ls bin conf core db db.tar.gz leco@leco:~/data/xuanke$ rm db.tar.gz leco@leco:~/data/xuanke$ ls bin conf core db leco@leco:~/data/xuanke$ rz -E rz waiting to receive. leco@leco:~/data/xuanke$ ls bin conf core course_selection_system.bmp db leco@leco:~/data/xuanke$ tree . . ├── bin │?? └── run.py ├── conf │?? ├── __init__.py │?? ├── __pycache__ │?? │?? ├── __init__.cpython-35.pyc │?? │?? └── settings.cpython-35.pyc │?? └── settings.py ├── core │?? ├── common.py │?? ├── CourseClass.py │?? ├── GradesClass.py │?? ├── __init__.py │?? ├── main.py │?? ├── __pycache__ │?? │?? ├── common.cpython-35.pyc │?? │?? ├── CourseClass.cpython-35.pyc │?? │?? ├── GradesClass.cpython-35.pyc │?? │?? ├── __init__.cpython-35.pyc │?? │?? ├── main.cpython-35.pyc │?? │?? ├── ReadDb.cpython-35.pyc │?? │?? ├── SchoolClass.cpython-35.pyc │?? │?? ├── SchoolPeopleBase.cpython-35.pyc │?? │?? ├── StudentClass.cpython-35.pyc │?? │?? └── TeacherClass.cpython-35.pyc │?? ├── ReadDb.py │?? ├── SchoolClass.py │?? ├── SchoolPeopleBase.py │?? ├── StudentClass.py │?? └── TeacherClass.py ├── course_selection_system.bmp └── db ├── course.txt ├── grade.txt ├── school.txt ├── student.txt └── teacher.txt 6 directories, 31 files [END] 2018/2/11 15:36:15