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()
相关文章
相关标签/搜索