python學習day7

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()
相關文章
相關標籤/搜索