zoukankan      html  css  js  c++  java
  • 面向对象

    一、
    创建一个父类Schoolmember,代表学校成员
    创建一个老师的子类Teacher继承父类,实例化时候赋予老师姓名(name)、年龄(age)、和薪水(salary)
    创建一个学生的子类Student继承父类,实例化时候赋予学生姓名(name)、年龄(age)、和性别(sex)
    Teacher类有一个方法打印出老师的姓名和年龄还有薪水
    Student类有一个方法打印出学生的姓名和年龄还有性别
    
    请用继承的思想来写出实例化的代码逻辑和方法的代码逻辑
    (提示:相同的部分可以提出来放在父类里面,不同的部分在子类完成)
    
    二、
    1、定义一个用户类,定义注册用户的方法。执行方法,让用户输入用户名和密码
    如果文件中存在该用户,提示用户已存在,继续让用户输入
    如果用户不存在,则生成如下格式的字典,保存在文件里面
    例如{ "用户名":{"密码":"123",'状态':False,'锁定时间': 9:38:10} }
    {
        "egon":{"password":"123",'status':False,'timeout':0},
    }
    每注册一个人在字典里面添加多一个用户字典。状态默认为False,锁定时间默认为0
    {
        "egon":{"password":"123",'status':False,'timeout':0},
        "alex":{"password":"456",'status':False,'timeout':0},
    }
    然后把字典信息写入文本中(利用json)
    
    2、定义一个对象的方法db,例如 执行obj.db(把方法当做属性调用)可以拿到用户数据结构
    
    3、定义一个登录方法, 用户输入用户名和密码,如果用户名和密码都正确,登录成功,将该用户状态(status)修改为True,
      如果用户名错误一直让该用户输入。 
      如果用户名正确,密码错误,则继续输入,直到密码错误次数达到三次将为该用户设置锁定时间(锁定时间为20s,即20s之内不允许登录,提示锁定状态。  20s之后才能登录).

    -----------------------答案-------------------------------

    一、
    class SchoolMember():
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def get_info(self):
            print(self.name, self.age)
    
    class Teacher(SchoolMember):
    
        def __init__(self, name, age, salary):
            super().__init__(name, age)
            self.salary = salary
    
        def get_info(self):
            super().get_info()
            print(self.salary)
    
    class Student(SchoolMember):
    
        def __init__(self, name, age, sex):
            super().__init__(name, age)
            self.sex = sex
    
        def get_info(self):
            super().get_info()
            print(self.sex)
    
    t = Teacher('ben', 20, 7000)
    t.get_info()
    
    二、
    import json,time
    class User():
        def register(self):
            data = self.db
            while 1:
                username = input('请输入用户名>>:')
                password = input('请输入密码>>:')
                if username in data:
                    print('用户名已存在')
                else:
                    data[username] = {'password':password, 'status':False, 'timeout':0}
                    self.write_data(data)
                    print('注册成功')
                    break
        @property
        def db(self):
    
            with open('a.txt', 'r') as f:
                data = f.read()
                if data:
                    data = json.loads(data)
                else:
                    data = {}
    
                return data
    
        def write_data(self, data):
            with open('a.txt', 'w') as f:
                json.dump(data, f)
    
        def login(self):
            num = 0
            while 1:
                username = input('请输入用户名>>:')
                password = input('请输入密码>>:')
                data = self.db
                if username in data:
                    if time.time() - data[username]['timeout'] > 20:
                        if data[username]['password'] == password:
                            print('登录成功!')
                            data[username]['status'] = True
                            self.write_data(data)
                            break
                        else:
                            num += 1
                            if num == 3:
                                print('密码次数以达到3次,锁定20s')
                                data[username]['timeout'] = time.time()
                                self.write_data(data)
                                break
                            else:
                                print('密码错误%s次'%num)
                    else:
                        print('用户在锁定状态中,20s之后再登录')
                        break
                else:
                    print('用户名错误')
    u = User()
    # print(u.db)
    # u.register()
    u.login()
  • 相关阅读:
    冲销收货
    收货MIGO
    删除PO
    创建po
    File的功能--> 获取功能-->所有的根目录 | 创建文件功能,但是如果文件已经存在-->不再创建(新手)
    在d盘创建文件夹,里面有aaa.txt/bbb.txt/ccc.txt,然后遍历出aaa文件夹下的文件(新手)
    创建一个唱歌类集合,创建一个电影类集合,让其归类打印(新手)
    抛出异常(新手)
    Map-->HashMap练习(新手)
    JAVA-迭代器增强型for循环。(新手)
  • 原文地址:https://www.cnblogs.com/renshaoqi/p/10182159.html
Copyright © 2011-2022 走看看