1. 程式人生 > >第六周作業——選課系統

第六周作業——選課系統

sse 修改 exist logs 查看 __name__ stat 功能 退出

選課系統:

角色:學校、學員、課程、講師

要求:

1. 創建北京、上海 2 所學校

2. 創建linux , python , go 3個課程 , linux\py 在北京開, go 在上海開

3. 課程包含,周期,價格,通過學校創建課程

4. 通過學校創建班級, 班級關聯課程、講師

5. 創建學員時,選擇學校,關聯班級

5. 創建講師角色時要關聯學校,

6. 提供兩個角色接口

6.1 學員視圖, 可以註冊, 交學費, 選擇班級,

6.2 講師視圖, 講師可管理自己的班級, 上課時選擇班級, 查看班級學員列表 , 修改所管理的學員的成績

6.3 管理視圖,創建講師, 創建班級,創建課程

7. 上面的操作產生的數據都通過pickle序列化保存到文件裏

import pickle
import os

BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
db_path = BASE_PATH + /db
admin_path  = db_path + /admin
classes_path = db_path + /classes
course_path = db_path + /course
school_path = db_path + /school
student_path = db_path + /student
teacher_path 
= db_path + /teacher # with open(classes_path + ‘/1‘,‘r‘) as f: # for line in f: # print(line) class Admin_base(object): def __init__(self): pass #創建類方法,本身就是類的功能,不需要進行實例化,分別為存入和取出數據 @staticmethod def save_pickle(save_dict,save_path): pickle.dump(save_dict,open(save_path,
wb)) @staticmethod def read_pickle(save_path): read_dict = pickle.load(open(save_path,rb)) return read_dict #創建學校的方法 @staticmethod def create_school(): school_name = input(請輸入學校名稱:).strip() school_add = input(請輸入學校地址:).strip() school_classes = input(請輸入學校班級:).strip() school_course = input(請輸入學校課程:).strip() school_teacher = input(請輸入老師姓名:).strip() save_dict = {} save_dict[name] = school_name save_dict[address] = school_add save_dict[classes] = school_classes save_dict[course] = school_course save_dict[teacher] = school_teacher save_path = school_path + /%s%s%(school_name,school_add) Admin_base.save_pickle(save_dict,save_path) #創建班級的方法 @staticmethod def create_classes(): classes_name = input(請輸入班級名稱:).strip() classes_course = input(請輸入班級課程:).strip() save_dict = {} save_dict[name] = classes_name save_dict[course] = classes_course save_path = classes_path + /%s%(classes_name) Admin_base.save_pickle(save_dict, save_path) #創建老師 @staticmethod def create_teacher(): teacher_name = input(請輸入老師名稱:).strip() teacher_course = input(請輸入課程名稱:).strip() save_dict = {} save_dict[name] = teacher_name save_dict[course] = teacher_course save_path = teacher_path + /%s % (teacher_name) Admin_base.save_pickle(save_dict, save_path) #創建課程 @staticmethod def create_course(): course_name = input(請輸入課程名稱:).strip() course_teacher = input(請輸入老師名稱:).strip() save_dict = {} save_dict[name] = course_name save_dict[course] = course_teacher save_path = course_path + /%s % (course_name) Admin_base.save_pickle(save_dict, save_path) # 創建學生 @staticmethod def create_student(): student_name = input(請輸入學生名稱:).strip() student_course = input(請輸入課程名稱:).strip() save_dict = {} save_dict[name] = student_name save_dict[course] = student_course save_dict[school] = None save_path = student_path + /%s % (student_name) Admin_base.save_pickle(save_dict, save_path) class Student(Admin_base): def __init__(self): Admin_base.__init__(self) @staticmethod def student_option(): username = input(請輸入您的姓名:).strip() school_all = os.listdir(school_path) school_name_list = [] for school_name in school_all: school_dict = Admin_base.read_pickle(school_path + /%s%(school_name)) school_name_list.append(school_dict[name]) course_all = os.listdir(course_path) print(可選的學校如下:,school_name_list) school_option = input(請輸入您選擇的學校:).strip() print(可選的課程如下:,course_all) course_option = input(請輸入您選擇的課程:).strip() save_dict = {} save_dict[name] = username save_dict[course] = course_option save_dict[school] = school_option save_path = classes_path + /%s % (username) Admin_base.save_pickle(save_dict, save_path) class Teacher(Admin_base): def __init__(self): Admin_base.__init__(self) @staticmethod def check_course(): course_all = os.listdir(course_path) print(課程如下:,course_all) course_option = input(請選擇您的課程:).strip() student_all = os.listdir(student_path) student_now_course = [] for student_one in student_all: save_path = student_path + /%s%(student_one) save_dict = Admin_base.read_pickle(save_path) if save_dict[course] == course_option: student_now_course.append(save_dict[name]) else: pass print(您的學生列表:,student_now_course) def login_read(): while 1: option = input(請選擇您要進行的操作: 1.管理 2.學生 3.老師 4.退出) a = True while a: if option == 1: username = input(請輸入用戶名:) password = input(請輸入密碼:) username_path = admin_path + /%s%(username) if os.path.exists(username_path): admin_dict = Admin_base.read_pickle(username_path) if password == admin_dict[password]: print(登錄成功!) option_next = input(請選擇您要進行的操作: 1.新建學校 2.新建班級 3.新建課程 4.新建老師 5.新建學生 6.返回) if option_next == 1: Admin_base.create_school() break if option_next == 2: Admin_base.create_classes() break if option_next == 3: Admin_base.create_course() break if option_next == 4: Admin_base.create_teacher() break if option_next == 5: Admin_base.create_student() break if option_next == 6: a = False else: print(輸入有誤!) break else: print(密碼錯誤!) break else: print(用戶名錯誤!) break if option == 2: Student.student_option() break if option == 3: Teacher.check_course() break if option == 4: exit() else: print(輸入錯誤!) break # a = pickle.load(open(school_path + ‘/老男孩北京‘,‘rb‘)) # print(a) # a = os.listdir(admin_path) # print(a) if __name__ == __main__: login_read() # login_read() # save_dict = {‘username‘:‘admin‘,‘password‘:‘admin‘} # save_path = admin_path + ‘/admin‘ # Admin_base.save_pickle(save_dict,save_path)

7. 上面的操作產生的數據都通過pickle序列化保存到文件裏

第六周作業——選課系統