import jsonimport sysstatus_dict={ 'username':None, 'status':False, 'id':None}def login(): #登錄函數 i = 0 while i < 3: print("校園管理系統".center(50,'*')) print("請登陸!") username = input('請輸入用戶名:').strip() password = input('請輸入密碼:').strip() if status_dict["username"] is not None and status_dict["status"] == True: print("用戶"+status_dict["username"]+"已登錄,請註銷後從新登錄。") break with open('userinfo',encoding='utf-8') as f1: for line in f1: line_list = line.strip().replace(',', ',').split(',') if username == line_list[0] and password==line_list[1]: print('登陸成功...') status_dict['username'] = username status_dict['status'] = True status_dict['id'] = line_list[2] return True else: print('帳號或者密碼不正確,請從新輸入') i += 1 if i == 3: exit()def regiter(*args,**kwargs): #註冊函數 while True: username = input('請輸入註冊用戶名:').strip() password = input('請輸入用戶名密碼:').strip() idd = input('請輸入用戶身份:').strip() with open('userinfo',encoding='utf-8') as f1: for line in f1: line_list = line.strip().replace(',', ',').split(',') if username == line_list[0]: print('用戶名存在,請從新輸入!') break else: with open('userinfo',encoding='utf-8',mode='a') as f2: f2.write('\n{},{}'.format(username,password,idd)) print('註冊成功') login()##學校類定義class School(object): ##初始化函數 def __init__(self, SchoolName, SchoolPlace, SchoolMotto): self.SchoolName = SchoolName self.SchoolPlace = SchoolPlace self.SchoolMotto = SchoolMotto ##招生函數 def RecruitStu(self): NewStuName = input("StuName:") NewStuAge = input("StuAge:") NewStuSex = input("StuSex:") NewStuSchool = input("StuSchool:") CourseNo = input("CourseNo:") NewStuID = input("StuID:") CoursePrice = input("CoursePrice:") NewStu = Stu(NewStuName, NewStuAge, NewStuSex, NewStuSchool, CourseNo, NewStuID, CoursePrice) ##實例化學員對象 stus_dict = {"StuName": NewStuName, "StuAge": NewStuAge, "StuSex": NewStuSex, "StuSchool": NewStuSchool, "CourseNo": CourseNo, "StuID": NewStuID, "CoursePrice": CoursePrice} # 用字典來存放講師信息 if not dic: dic[NewStuName] = stus_dict json.dump(dic, open("student_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) else: if dic.get(NewStuName): print("%s學生已存在,不能註冊名字相同的學生" % NewStuName) else: dic[NewStuName] = stus_dict json.dump(dic, open("student_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) print("The student has already added successfully".center(50, '-')) NewStu.StuInfo() ##聘請講師 def HireTch(self): print("Welcome to hire teacher from here~") NewTeacherName = input("Please input the teacher's name:") NewTeacherAge = input("Please input the teacher's age:") NewTeacherSex = input("Please input the teacher's sex:") NewCourseNo = input("Please input the teacher's course number:") NewSalary = input("Please input the teacher's salary:") NewTeacher = Teacher(NewTeacherName, NewTeacherAge, NewTeacherSex, NewCourseNo, NewSalary) # 實例化講師對象 teachers_dict = {"TeacherName": NewTeacherName, "TeacherAge": NewTeacherAge, "TeacherSex": NewTeacherSex, "CourseNo": NewCourseNo, "Salary": NewSalary} # 用字典來存放講師信息 # 經過json將講師的字典反序列化到dic字典中 if not dic: # 字典若是爲空 dic[NewTeacherName] = teachers_dict # 將講師名與講師對象相關聯 # 經過json將講師的字典序列化到teacher_db文件中 json.dump(dic, open("teacher_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) else: # 若是文件中已有講師信息 if dic.get(NewTeacherName): # 字典中不存在key,則返回none,不報錯 print("%s講師已存在,不能建立名字相同的講師" % NewTeacherName) else: dic[NewTeacherName] = teachers_dict json.dump(dic, open("teacher_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) NewTeacher.TeacherInfo() ##將新老師的信息打印在屏幕上 ##新增課程 def CreateCourse(self): print("Welcome to create course!") NewCourseNo = input("CourseNo:") NewCourseName = input("CourseName:") NewCoursePrice = input("CoursePrice:") NewCourse = Course(NewCourseNo, NewCourseName, NewCoursePrice) ##新建立的對象直接實例化 courses_dict = {"CourseNo": NewCourseNo, "CourseName": NewCourseName, "CoursePrice": NewCoursePrice} # 用字典來存放講師信息 if not dic: dic[NewCourseNo] = courses_dict json.dump(dic, open("course_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) else: if dic.get(NewCourseNo): print("%s課程已存在,不能註冊課程號相同的課程" % NewCourseNo) else: dic[NewCourseNo] = courses_dict json.dump(dic, open("course_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) print("Course has already created successfully".center(50, '-')) print(""" CourseNo:%s CourseName:%s CoursePrice:%s""" % (NewCourseNo, NewCourseName, NewCoursePrice))class Teacher(object): def __init__(self, TeacherName, TeacherAge, TeacherSex, CourseNo, Salary): self.TeacherName = TeacherName self.TeacherAge = TeacherAge self.TeacherSex = TeacherSex self.CourseNo = CourseNo self.Salary = Salary def TeachKnowledge(self): print("Teach Knowlege~") def TeacherInfo(self): print(""" -------------講師信息------------- Name:%s Age:%s Sex:%s CourseNo:%s Salary:%s """ % (self.TeacherName, self.TeacherAge, self.TeacherSex, self.CourseNo, self.Salary))##課程類定義class Course(object): def __init__(self, CourseNo, CourseName, CoursePrice): self.CourseNo = CourseNo self.CourseName = CourseName self.CoursePrice = CoursePrice def ShowCourseInfo(self): print(""" CourseNO:%s CourseName:%s CoursePrice:%s""" % (self.CourseNo, self.CourseName, self.CoursePrice))##學員類定義class Stu(object): def __init__(self, StuName, StuAge, StuSex, StuSchool, CourseNo, StuID, CoursePrice): self.StuName = StuName self.StuAge = StuAge self.StuSex = StuSex self.StuSchool = StuSchool self.CourseNo = CourseNo self.StuID = StuID self.CoursePrice = CoursePrice def Study(self): print("study") def PayMoney(self): print("Paying for money~") def StuInfo(self): print(""" ---------------學生信息-------------- Name:%s Age:%s Sex:%s School:%s CourseNo:%s ID:%s CoursePrice:%s """ % ( self.StuName, self.StuAge, self.StuSex, self.StuSchool, self.CourseNo, self.StuID, self.CoursePrice))def students_view(): # 學員視圖 while True: pro = """ 1.歡迎註冊 2.返回 3.退出 請選擇: """ num = input(pro) if num == '1': choice_school_obj.RecruitStu() # 調用學生註冊方法並生成學生對象 elif num == '2': break elif num == '3': sys.exit() else: continuedef teacher_view(): # 講師視圖 name = input("請輸入講師姓名:") while True: if dic.get(name) or teachers_dict.get(name): print("歡迎%s講師".center(50, '-') % name) elif not dic.get(name) and not teachers_dict.get(name): print("%s講師不存在" % name) break pro = """ 1.查看學員信息 2.返回 3.退出 請輸入你的選擇: """ num = input(pro) if num == '1': if teachers_dict.get(name): teachers_dict[name].show_student() # 查看學生信息 else: print("功能未完善,只能輸入lvah,cheng") elif num == '2': break elif num == '3': sys.exit() else: continuedef school_view(): # 學校視圖 while True: pro = """ 1.建立課程 2.招生註冊 3.聘用講師 4.返回 5.退出 請輸入你的選擇: """ num = input(pro) if num == '1': choice_school_obj.CreateCourse() elif num == '2': choice_school_obj.RecruitStu() elif num == '3': choice_school_obj.HireTch() elif num == '4': break elif num == '5': sys.exit() else: continuedef main(): global dic # 全局變量 global choice_school_obj dic = {} while True: prola = """ 1.登陸 2.註冊 請選擇您的需求序號: """ choise = input(prola) if choise == '1': login() elif choise == '2': regiter() print("請選擇學校".center(50, '*')) pro1 = """ 1. %s 2. %s 3. 返回 4. 退出 請輸入你的選擇:""" % (school1.SchoolName, school2.SchoolName) choice_school = input(pro1) if choice_school == '1': choice_school_obj = school1 # 將對象引用傳給choice_school elif choice_school == '2': choice_school_obj = school2 elif choice_school == '3': break elif choice_school == '4': sys.exit() else: continue while True: print("請選擇視圖".center(50, '*')) pro2 = """ 1.學員視圖 2.講師視圖 3.管理員視圖 4.返回 5.退出 請選擇視圖: """ num = input(pro2) if num == '1': if status_dict['id'] == 'student':#作登陸帳號判斷 print("歡迎進入學員視圖".center(50, '*')) students_view() else: print("您登陸的用戶不正確請從新登陸~") login() elif num == '2': if status_dict['id'] == 'teacher': print("歡迎進入講師視圖".center(50, '*')) teacher_view() else: print("您登陸的用戶不正確請從新登陸~") login() elif num == '3': if status_dict['id'] == 'manager': print("歡迎進入學校管理視圖".center(50, '*')) school_view() else: print("您登陸的用戶不正確請從新登陸~") login() elif num == '4': break elif num == '5': sys.exit() else: continueif __name__ == '__main__': teachers_dict = {} courses_dict = {} stus_dict = {} school1 = School("SH老男孩", "上海校區", "祖國、榮譽、責任") # 實例化兩個學校 school2 = School("BJ老男孩", "北京校區", "愛國、求是、奮進") t1 = Teacher("alex", "28", "male", "01", "10000") t2 = Teacher("太白", "26", "female", "02", "9000") # 實例化兩個講師 teachers_dict["alex"] = t1 teachers_dict["太白"] = t2 teacher_dict = {"TeacherName": "alex", "TeacherAge": "28", "TeacherSex": "male", "CourseNo": "01", "Salary": "10000"} teacher_dict = {"TeacherName": "太白", "TeacherAge": "26", "TeacherSex": "female", "CourseNo": "02", "Salary": "9000"} course1 = Course("01", "Linux雲自動化運維", "12800") # 實例化兩個課程 course2 = Course("02", "python", "9800") courses_dict["01"] = course1 courses_dict["02"] = course2 courses_dict = {"CourseNo": "01", "CourseName": "Linux雲自動化運維", "CoursePrice": "12800"} courses_dict = {"CourseNo": "02", "CourseName": "python", "CoursePrice": "9800"} stu1 = Stu("Katy", "18", "female", "alex", "01", "3150911026", "12800") ##實例化兩個學員 stu2 = Stu("Betty", "18", "male", "太白", "02", "3150911022", "12000") stus_dict["Katy"] = stu1 stus_dict["Betty"] = stu2 stu_dict = {"StuName": "靜香", "StuAge": "18", "StuSex": "女", "StuSchool": "SH老男孩", "CourseNo": "01", "StuID": "3150911026", "CoursePrice": "12800"} stu_dict = {"StuName": "大雄", "StuAge": "18", "StuSex": "男", "StuSchool": "BJ老男孩", "CourseNo": "02", "StuID": "3150911022", "CoursePrice": "12000"} print(school1, school2) main()