python/클래스

회원관리 컨트롤러

june__Park 2021. 3. 21. 04:52
# 클래스 생성자를 활용해서, 회원관리 컨트롤러 만들기

class Member:
    log = -1
    user = []


class MemControler:
    # 클래스 리스트 형성
    name = ""
    id = ""
    pw = ""
    m = Member()

    def __init__(self, id, pw, name = "", log=-1):
        self.name = name
        self.id = id
        self.pw = pw
        if log:
            self.m.log = log
        else:
            self.m.log = self.login()

    def join(self,name,id,pw):
        log = len(self.m.user)
        self.m.user.append([""]*3)
        self.m.user[log][0] = name
        self.m.user[log][1] = id
        self.m.user[log][2] = pw
        print("%s님, 환영합니다"%(self.name))
        return self.m.user
        
    def login(self,id,pw):
        for i in range(len(self.m.user)):
            if id == self.m.user[i][1] and pw == self.m.user[i][2]:
                self.m.log = i
                print("%s님, 로그인되었습니다."%(self.m.user[i][0]))
                return self.m.log
        if self.m.log == -1:
            print("id or pw Error")
            return -1
            
        

# 기능
# 1. 회원가입
# 2. 로그인
# 2_1. 마이페이지(정보조회)
# 2_2. 비밀번호 수정
# 2_3. 탈퇴
# 3. 종료


m = Member()

def menu1():
    print("1. 회원가입")
    print("2. 로그인")
    print("3. 종료")

def menu2():
    print("1. 마이페이지(정보조회)")
    print("2. 비밀번호 수정")
    print("3. 회원탈퇴")
    print("4. 로그아웃")
    print("5. 종료")

while True:
    print(m.user)
    if m.log == -1:
        menu1()
        sel = int(input(": "))
        if sel == 1:
            name = input("이름: ")
            id = input("사용할 아이디: ")
            cnt = 0
            for i in range(len(m.user)):
                if m.user[i][1] == id:
                    cnt = 1
                    break
            if cnt == 1:
                print("id 중복")
                continue
            pw = input("사용할 비밀번호: ")
            mc = MemControler(id,pw,name)
            mc.join(name,id,pw)  
        elif sel == 2:
            id = input("ID: ")
            pw = input("PW: ")
            mc = MemControler(id,pw)
            m.log = mc.login(id, pw)
            
        elif sel == 3:
            break
    else:
        menu2()
        idx = m.log
        sel = int(input(": "))
        if sel == 1:
            print("===회원정보===")
            print(m.user[idx])
        elif sel == 2:
            pre_pw = input("현재 비밀번호: ")
            if pre_pw == m.user[idx][2]:
                nex_pw = input("변경할 비밀번호: ")
                m.user[idx][2] = nex_pw
            else:
                print("비밀번호 오류")
        elif sel == 3:
            del(m.user[idx])
            print("회원탈퇴 완료")
            m.log = -1
        elif sel == 4:
            m.log = -1
            print("로그아웃 되었습니다")
        elif sel == 5:
            break