人生与戏

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.效果图

2.python code:

class studentSys(object):
    '''
    _init_(self) 被称为类的构造函数或初始化方法,
    self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
    '''
    def _init_(self):
        #全局变量
        self.students = []#列表[{"name":"刘备", "age":20, "sex":"男"},{"name":"关羽", "age":20, "sex":"男"}]
        "打印输入提示信息"
    def print_menu(self):
        #输出50个连续的等于号(50个=)
        print("="*50)
        # \t : 横向制表符
        print("="*50 + \
            "\n\t\t学生管理系统1.00版本" + \
            "\n\t\t1:添加学生信息" + \
            "\n\t\t2:删除学生信息" + \
            "\n\t\t3:修改学生信息" + \
            "\n\t\t4:查找学生信息" + \
            "\n\t\t5:显示学生信息" + \
            "\n\t\t6:退出学生管理系统\n" + \
            "="*50 )
        #打印一行空白
        print("\n")


    #添加学生信息的函数
    def add_info(self):
        #修改全局变量
        #global students
        #字典
        student = {}
        name = input("请输入要添加学生的姓名:")
        age = input("请输入要添加学生的年龄:")
        sex = input("请输入要添加学生的性别:")
        phone = input("请输入要添加学生的电话:")
        QQ = input("请输入要添加学生的QQ:")
        #往字典里添加输入的数据
        student["name"] = name
        student["age"] = age
        student["sex"] = sex
        student["phone"] = phone
        student["QQ"] = QQ
        #把字典添加到列表(末尾)中去
        self.students.append(student)
        self.save_info()
        

    #删除学生信息函数
    def delete_info(self):
        name = input("请输入要删除的学生姓名:")
        for student in self.students:
            if name == student.get("name"):
                self.students.remove(student)
        self.save_info()
        self.show_info()
        

    #修改学生信息函数
    def modify_info(self):
        name = input("请输入要修改学生的姓名:")
        for student in self.students:
            if name == student.get("name"):
                info = input("请输入要修改的信息标题:")
                if info == "name":
                    new_name = input("请输入新的姓名:")
                    student["name"] = new_name
                elif info == "age":
                    new_age = input("请输入新的年龄:")
                    student["age"] = new_age
                elif info == "sex":
                    new_sex = input("请输入新的性别:")
                    student["sex"] = new_sex
                elif info == "phone":
                    new_phone = input("请输入新的电话:")
                    student["phone"] = new_phone
                elif info == "QQ":
                    new_QQ = input("请输入新的QQ:")
                    student["QQ"] = new_QQ
                else:
                    print("请输入含有的信息标题")
        self.save_info()
        self.show_info()
        
        

    #查找学生信息函数
    def find_info(self):
        name = input("请输入要查找的学生姓名:")
        flag = 0 #找到一个就是找到了
        for student in self.students:
            if name == student.get("name"):
                print(student)
                print("\t" + student["name"] +\
                  "\t\t" + student["age"] +\
                  "\t\t" + student["sex"] +\
                  "\t\t" + student["phone"] +\
                  "\t\t" + student["QQ"])
                flag = 1
        #循环结束后判断       
        if flag == 0:
                print("无此人信息")
       
        
    #显示学生信息函数              
    def show_info(self):
        print("\t\t\t\t当前学生信息\n" + \
              "-"*80 + "\n\t姓名\t\t年龄\t\t性别\t\t电话\t\tQQ")
        for student in self.students:
            print("\t" + student["name"] +\
                  "\t\t" + student["age"] +\
                  "\t\t" + student["sex"] +\
                  "\t\t" + student["phone"] +\
                  "\t\t" + student["QQ"])
            
        print("-"*80,"\n")


    #保存信息
    def save_info(self):
        f = open("students.txt","w")#每次保存都会覆盖,覆盖保存w
        f.write(str(self.students))#保存
        f.close()#关闭资源


    #读取运行时的信息
    def load_info(self):
        f = open("students.txt","a+")
        f.seek(0)
        content = f.read()
        if len(content) > 0:
            self.students = eval(content)
        f.close()#关闭资源

        
    #定义一个入口函数
    def main(self):
        self.print_menu()
        self.load_info()
        while True:
            print("\t\t操作指令\n" + \
                  "~"*50 + \
                  "\n 1:添加|2:删除|3:修改|4:查找|5:显示|6:退出 \n" + \
                  "~"*50 )
            #输入的内容都当做字符串
            input_num = input("请按照提示输入相应的指令:")
            

            #判断用户输入的内容
            if input_num == "1":
                #print("增加\n")
                self.add_info()
            elif input_num == "2":
                #print("删除\n")
                self.delete_info()
            elif input_num == "3":
                #print("修改\n")
                self.modify_info()
            elif input_num == "4":
                #print("查找\n")
                self.find_info()
            elif input_num == "5":
                #print("显示\n")
                self.show_info()
            elif input_num == "6":
                print("退出\n")
                break
            else: 
                print ("请不要瞎玩,这里需要输入对应的数字!\n")
                
                   
#创建实例对象,调用方法             
studentSys().main()
3.文件和软件IDLE (在IDLE编码后运行即可增删改查)

 

  拓展:如果报错 :AttributeError: 'studentSys' object has no attribute 'students'  ,  那就再重新定义下 students

 

posted on 2019-05-15 17:53  人生与戏  阅读(12670)  评论(2编辑  收藏  举报