728x90
반응형

주제 : 고객 정보 관리 시스템

진행 인원  : 2명

진행 방법 : 짝 프로그래밍

 

짝 프로그래밍

- 중간 지점에 하나의 컴퓨터를 둔다.

- 10분 간격으로 서로 옮겨 가면서 코드를 작성한다. 

- 네비게이터(navigator)가 전략을 제시하고 드라이버(driver)가 실제 코드를 작성한다.

 

1. 주요 내용

지난 실습에 작성한 기존의 메인 로직을 함수형으로 변형시켜 로직 자체를 더욱 간단하게 만들기

 

작성한 코드

def customI():
    global index
    print('고객정보 입력')
    customer = { 'name':'', 'gender': '', 'email': '', 'year': 0 }
    customer['name'] = input('이름을 입력하세요 : ')
    customer['gender'] = get_gender()
    customer['email'] = get_email()
    customer['year'] = get_birth_year()
    print(customer)
    customers.append(customer)
    index = len(customers) -1
    print(customers)

def get_gender():
    while True:
        gender = input('성별 (M/F)를 입력하세요 : ').upper()
        if gender in ('M', 'F'):
            return gender
        else:
            print('잘못입력하셨습니다. 다시 입력해 주세요.')
def get_email():
    while True:
        email = input('이메일 주소를 입력하세요 : ')
        if '@' in email:
            return email
        else:
            print('"@"를 포함한 이메일 주소를 입력하세요.')
def get_birth_year():
    while True:
        year = input('출생년도 4자리 입력하세요 : ')
        if len(year) == 4 and year.isdigit():
            return year
        else:
            print('다시 입력해주세요.')
customers = []

def customP(index):
    print('이전 고객 정보 조회')
    if index <= 0:
        print('이전 고객 정보가 없습니다.')
        print(index)
    else:
        index -= 1
        print(f'{index + 1}번째 고객 정보 입니다.')
        print(customers[index])
    return index

def customC(index):
    print('현재 고객 정보 조회')
    if index >= -1:
        print(f'{index + 1}번째 고객 정보 입니다.')
        print(customers[index])
    else:
        print('입력된 정보가 없습니다. 정보 입력은 I를 선택하세요.')

def customN(index):
    print('다음 고객 정보 조회')
    if index > (len(customers) - 1) :
        print('다음 고객 정보가 없습니다.')
        print(index)
    else:
        index += 1
        print(f'{index + 1}번째 고객 정보 입니다.')
    return index

def customU(index):
    print('현재 고객 정보 수정')
    customer = { 'name':'', 'gender': '', 'email': '', 'year': 0 }
    customer['name'] = input('이름을 입력하세요 : ')
    customer['gender'] = get_gender()
    customer['email'] = get_email()
    customer['year'] = get_birth_year()
    print(customer)
    customers[index] = customer

def customD():
    print(f'현재 고객 정보{customers[index]["name"]} 삭제')
    del customers[index]

def customQ():
    print('안녕히가세요~')

customers = list()
index = -1
while True:
    menu = input('''
        다음 중에서 하실 작업의 메뉴를 입력하세요.
        I - 고객 정보 입력
        P - 이전 고객 정보 조회
        C - 현재 고객 정보 조회
        N - 다음 고객 정보 조회
        U - 현재 고객 정보 수정
        D - 현재 고객 정보 삭제
        Q - 프로그램 종료
    ''').upper()

    if menu == 'I':
        customI()

    elif menu == 'P':
        customP(index)

    elif menu == 'C':
        customC(index)

    elif menu == 'N':
        customN(index)

    elif menu == 'U':
        customU(index)

    elif menu == 'D':
        customD()

    elif menu == 'Q':
        customQ()
    else:
        print('잘못 입력하셨습니다. 다시 입력 해주세요')

오류사항

- 'I'를 눌러 고객 정보를 입력한 뒤 정보 조회를 했을때 오류가 발생한다. 기존에 구현하고자 했던 프로그램은 고객 정보를 입력하고 이전 또는 다음 고객 정보를 조회하려할때 입력한 데이터 값의 길이보다 넘어가면 '이전 고객 정보가 없습니다' 또는 '다음 고객 정보가 없습니다.'가 뜨게 하는 것이다.

 위의 코드를 실행하면 현재 고객 정보 조회, 이전 고객 정보 조회는 실행이 잘 되는데 다음 고객 정보 조회 실행시 입력된 데이터의 길이를 넘어가면 '다음 고객 정보가 없습니다.'가 아닌 현재 고객 정보가 계속 뜨게 된다.

728x90
반응형

+ Recent posts