2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

주소록 관리

2025. 4. 28. 12:30ㆍ개발공부/생성형 AI 기반 개발자 과정
728x90

주소록 관리

Address.py

class Addr:
    def __init__(self,name,phone,email,address,group):
        self.__name = name
        self.__phone = phone
        self.__email = email
        self.__address = address
        self.__group = group

    @property
    def name(self):
        return self.__name
    @name.setter
    def name(self,value):
        self.__name = value

    @property
    def phone(self):
        return self.__phone
    @phone.setter
    def phone(self, value):
        self.__phone = value

    @property
    def email(self):
        return self.__email
    @property
    def address(self):
        return self.__address
    @property
    def group(self):
        return self.__group
    def print_info(self):
        print(f"이름: {self.name}")
        print(f"전화번호: {self.phone}")
        print(f"이메일: {self.email}")
        print(f"주소: {self.address}")
        print(f"그룹(친구/가족): {self.group}")

SmartPhone.py

import Address as ad

class SmartPhone:
    def __init__(self):
        self.addr = None
        self.name_list = []
        self.phone_list = []
        self.email_list = []
        self.address_list = []
        self.group_list = []

    def inputAddrData(self):
        return ad.Addr(input("이름: "), input("전화번호: "), input("이메일: "), input("주소: "), input("그룹(친구/가족): "))
    def addAddr(self, addr):
        self.name_list.append(addr.name)
        self.phone_list.append(addr.phone)
        self.email_list.append(addr.email)
        self.address_list.append(addr.address)
        self.group_list.append(addr.group)

    def printAddr(self):
        print(f"이름: {self.addr.name}"
              f"\n전화번호: {self.addr.phone}"
              f"\n이메일: {self.addr.email}"
              f"\n주소: {self.addr.address}"
              f"\n그룹(친구/가족): {self.addr.group}")

    def printAllAddr(self):
        for i in range(0, len(self.name_list)):
            print(f"이름: {self.name_list[i]}"
              f"\n전화번호: {self.phone_list[i]}"
              f"\n이메일: {self.email_list[i]}"
              f"\n주소: {self.address_list[i]}"
              f"\n그룹(친구/가족): {self.group_list[i]}")

    def searchAddr(self, name):
        for i in range(0, len(self.name_list)):
            if(self.name_list[i] == name):
                self.addr = ad.Addr(self.name_list[i], self.phone_list[i], self.email_list[i], self.address_list[i], self.group_list[i])
                self.printAddr()

    def deleteAddr(self, name):
        for i in range(0, len(self.name_list)):
            if(self.name_list[i] == name):
                self.name_list.pop(i)
                self.phone_list.pop(i)
                self.email_list.pop(i)
                self.address_list.pop(i)
                self.group_list.pop(i)
                break

    def editAddr(self, name, newAddr):
        for i in range(0, len(self.name_list)):
            if(self.name_list[i] == name):
                self.name_list[i] = newAddr.name
                self.phone_list[i] = newAddr.phone
                self.email_list[i] = newAddr.email
                self.address_list[i] = newAddr.address
                self.group_list[i] = newAddr.group

SmartPhoneMain.py

import SmartPhone as sp

class SmartPhoneMain:

    def __init__(self):
         pass
    def print_menu(self):
         print("1. 연락처등록"
               "\n2. 모든 연락처 출력"
               "\n3. 연락처 검색"
               "\n4. 연락처 삭제"
               "\n5. 연락처 수정"
               "\n6. 프로그램 종료")

    def start(self):
            addr_list = sp.SmartPhone()

            while True:
                self.print_menu()
                choice = input("원하는 작업을 선택하세요 (1-6): ")

                if choice == '1':
                     addr = sp.SmartPhone().inputAddrData()
                     addr_list.addAddr(addr)
                elif choice == '2':
                     addr_list.printAllAddr()
                elif choice == '3':
                     name = input("검색할 이름을 입력하세요: ")
                     addr_list.searchAddr(name)
                elif choice == '4':
                     name = input("삭제할 이름을 입력하세요: ")
                     addr_list.deleteAddr(name)
                elif choice == '5':
                     name = input("수정할 이름을 입력하세요: ")
                     print("새로운 연락처 정보를 입력하세요.")
                     new_addr = addr_list.inputAddrData()
                     addr_list.editAddr(name, new_addr)
                elif choice == '6':
                     print("프로그램을 종료합니다.")
                     break
                else:
                     print("잘못된 입력입니다. 다시 선택하세요.")

if __name__ == "__main__":
    SmartPhoneMain().start()
728x90

'개발공부 > 생성형 AI 기반 개발자 과정' 카테고리의 다른 글

공공데이터 크롤링(api 활용)  (0) 2025.04.28
크롤링 활용(selenium 활용)  (0) 2025.04.17
크롤링 기초(api 활용편 - xml)  (0) 2025.04.16
pandas - 7  (0) 2025.04.06
pandas - 6  (0) 2025.04.06