• 2019年7月31日 选课系统


     import pickle

    
    
    import pickle
    class Base:
        def save(self,address):
            with open(address,'wb')as f:#wb 写入字符串
                pickle.dump(self,f)#注意这里用self 代表实例化后的自身
    
    class School(Base):
        def __init__(self):
            self.name=input('请输入新学校%s名字:'%i)
            self.addr=input('请输入学校%s地址:'%i)
    
    class Lesson(Base):
        def __init__(self,name,school):
            self.name=name
            self.school=school
    
    
    class Teacher(Base):
        def __init__(self,name,school,lesson):
            self.name=name
            self.school=school
            self.lesson=lesson
    
    msg='1.创建学校
    ' 
        '2.创建课程
    ' 
        '3.创建老师
    ' 
        '4.exit
    '
    s_info=[]
    l_info=[]
    i,j,k=0,0,0
    while True:
        print(msg)
        choice=input('请输入需要创建的内容:')
        if choice=='1':
            i=i+1
            s_info.append(School())
            s_info[i-1].save('school%s.db'%i) #保存在文档内
            school_obj=pickle.load(open('school%s.db'%i,'rb'))
            print(i,school_obj.addr)
    
        elif choice=='2':
            j=j+1
            lesson_name=input('请输入课程%s名称:'%j)
            if lesson_name=='python' or lesson_name=='linux':
                l1=Lesson(lesson_name,pickle.load(open('school1.db','rb')))
                l1.save('lesson%s.db'%j)
                print(j,l1.school.addr)
            elif lesson_name=='go':
                l2=Lesson(lesson_name,pickle.load(open('school2.db','rb')))
                l2.save('lesson%s.db'%j)
                print(j,l2.school.addr)
            else:
                print('只能创建python,linux,go三门课程')
                j=j-1 #如果输入错误j会自动+1,所以需要对j做修正
    
        elif choice=='3':
            k=k+1
            if k>2:
                print('只要2位老师')
                exit()
            else:
                teacher_name = input('请输入老师%s姓名:' % k)
                t = Teacher(teacher_name, pickle.load(open('school%s.db'%k,'rb')), pickle.load(open('lesson%s.db' % k, 'rb')))
                t.save('teacher%s.db'%k)
                print(k,pickle.load(open('teacher%s.db'%k,'rb')).__dict__)
        elif choice=='4':
            print('game over')
            exit()
        else:
            print('请输入1,2,3,4
    ')
    
    
    
     

    》》》》》 

    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:1
    请输入新学校1名字:newboy
    请输入学校1地址:shanghai
    1 shanghai
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:1
    请输入新学校2名字:oldboy
    请输入学校2地址:beijing
    2 beijing
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:2
    请输入课程1名称:python
    1 shanghai
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:linux
    请输入1,2,3,4

    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:2
    请输入课程2名称:linux
    2 shanghai
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:2
    请输入课程3名称:go
    3 beijing
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:2
    请输入课程4名称:ada
    只能创建python,linux,go三门课程
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:3
    请输入老师1姓名:sxj
    1 {'name': 'sxj', 'school': <__main__.School object at 0x0388B6B0>, 'lesson': <__main__.Lesson object at 0x0388B730>}
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:3
    请输入老师2姓名:zyk
    2 {'name': 'zyk', 'school': <__main__.School object at 0x0388B5D0>, 'lesson': <__main__.Lesson object at 0x0388B650>}
    1.创建学校
    2.创建课程
    3.创建老师
    4.exit

    请输入需要创建的内容:3
    只要2位老师

  • 相关阅读:
    二叉平衡树
    红黑树
    [leetcode] LCP 比赛
    二叉搜索树
    面向对象的二叉树的实现
    二叉树的序列化与反序列化
    [leetcode] 基本计算器
    【pandas】玩转一行拆多行,多行并一行(分分合合你说了算)
    【VBA】数据溢出与解决
    【VBA】criterial 未找到命名参数
  • 原文地址:https://www.cnblogs.com/python1988/p/11279070.html
Copyright © 2020-2023  润新知