반응형
심심해서 만들어 본 좌석 예약 코드
좌석 예약 코드를 작성하고 난 뒤, 좌석의 예약을 취소하는 동작도 구현해보고 싶어졌다.
함수 s_d 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
def s_d() : # 좌석 예약 취소
row = int(input("좌석의 행 번호를 입력하세요(종료는 -1): "))
if (row == -1) : my_exit()
else :
col = int(input("좌석의 열 번호를 입력하세요(종료는 -1): "))
if (col == -1) : my_exit()
if (T_Table[row-1][col-1] == 1) :
print("정말 취소하시겠습니까? (Yes, No)")
print("취소하시려면 Yes를 입력해주세요. ")
temp_1 = input("입력: ")
if (temp_1 == "Yes") :
T_Table[row-1][col-1] = 0
f_T_Table()
print("%d행, %d열 좌석 예약이 정상적으로 취소되었습니다." % (row, col))
elif (temp_1 == "No") :
print("처음 화면으로 돌아갑니다.")
f_T_Table()
else : print("ERROR_유효하지_않은_입력")
elif (T_Table[row-1][col-1] == 0) : print("예약되지 않은 자리입니다.")
else : print("ERROR")
|
cs |
함수 s_d()는 좌석 예약을 취소하는 함수이다. 앞서 만든 함수 s_r()과 마찬가지로 좌석의 행 번호와 열 번호를 입력받아 예약을 취소한다. 예약 유무를 확인하며, 예약이 되어 있지 않은 좌석의 경우, 예약이 되어있지 않음을 알려준다. 예약 취소 이전 한번 더 확인하여 취소 유무를 최종 결정한다. -1 입력 시 프로그램을 종료한다.
코드 설명
1 ~ 21: 함수 s_d() 선언
2 ~ 6: 행 번호 및 열 번호 입력
3, 6: -1 입력 시 프로그램 종료
8, 20 ~ 21: 예약 유무 확인
9 ~ 12, 16, 19: 예약 취소 최종 확인
13 ~ 15: 예약 취소 진행
17 ~ 18: 예약 취소 진행 취소
19, 21: Error 확인 코드
실행부 작성
1
2
3
4
5
6
7
8
9
|
while True :
print("예약: 0 취소: 1 종료: -1")
sere = int(input("입력 위치: "))
if (sere == -1) : my_exit()
elif (sere == 0) :
s_r()
elif (sere == 1) :
s_d()
else : print("ERROR 잘못된 입력입니다.")
|
cs |
좌석 예약 동작 코드를 바탕으로 작성하였다. 좌석 예약과 마찬가지로 예약 취소 역시 프로그램이 종료되기 전까지 지속적으로 정보를 받거나 종료된 이후에도 계속 정보를 저장할 수 있어야 한다. 여기서는 프로그램이 종료되기 전까지만 정보를 저장하되, 계속 정보를 받을 수 있도록 동작하는 코드를 작성했다. 무한 루프를 이용해 재입력이 가능하도록 하였으며, 시작 화면을 두어 진행 여부를 결정할 수 있도록 작성하였다.
코드 설명
1 ~ 6, 9: 좌석 예약 코드 동작 실행부(<대충 이전 발행글>)
7 ~ 8: 예약 취소 동작 실행
더보기
현재 단계에서 작성한 코드 결과물
# 선언부
import sys
T_Table = [i*0 for i in range (10)]
temp_s = f'{"":-<38}'
def my_exit() :
print("프로그램을 종료합니다", end = '')
sys.exit(0)
def f_T_Table() : # 좌석 출력
print(temp_s)
print("\t", end = '')
for i in range (10) :
print(i+1, end = ' ')
print("\n", end = "%s\n" %temp_s)
for r in range (10) :
print("[%02d]" % (r+1), end = '\t')
for c in range (10) :
print(T_Table[r][c], end = ' ')
print("")
def s_r() : # 좌석 예약
row = int(input("좌석의 행 번호를 입력하세요(종료는 -1): "))
if (row == -1) : my_exit()
else :
col = int(input("좌석의 열 번호를 입력하세요(종료는 -1): "))
if (col == -1) : my_exit()
if (T_Table[row-1][col-1] == 0) :
T_Table[row-1][col-1] = 1
f_T_Table()
print("%d행, %d열 좌석이 예약되었습니다." % (row, col))
elif (T_Table[row-1][col-1] == 1) : print("이미 예약된 자리입니다.")
else : print("ERROR")
def s_d() : # 좌석 예약 취소
row = int(input("좌석의 행 번호를 입력하세요(종료는 -1): "))
if (row == -1) : my_exit()
else :
col = int(input("좌석의 열 번호를 입력하세요(종료는 -1): "))
if (col == -1) : my_exit()
if (T_Table[row-1][col-1] == 1) :
print("정말 취소하시겠습니까? (Yes, No)")
print("취소하시려면 Yes를 입력해주세요. ")
temp_1 = input("입력: ")
if (temp_1 == "Yes") :
T_Table[row-1][col-1] = 0
f_T_Table()
print("%d행, %d열 좌석 예약이 정상적으로 취소되었습니다." % (row, col))
elif (temp_1 == "No") :
print("처음 화면으로 돌아갑니다.")
f_T_Table()
else : print("ERROR_유효하지_않은_입력")
elif (T_Table[row-1][col-1] == 0) : print("예약되지 않은 자리입니다.")
else : print("ERROR")
# 리스트 초기화
for i in range (10) :
T_Table[i] = [i*0 for i in range (10)]
"""
# 저장 값 확인
print(T_Table)
"""
# 초기값 출력
f_T_Table()
while True :
print("예약: 0 취소: 1 종료: -1")
sere = int(input("입력 위치: "))
if (sere == -1) : my_exit()
elif (sere == 0) :
s_r()
elif (sere == 1) :
s_d()
else : print("ERROR 잘못된 입력입니다.")
더보기
실행 및 결과
실행 시 출력되는 기본화면 | 종료 | 3행 4열 예약 | 예약되지 않은 자리 예약 취소 (잘못된 예약 취소) |
잘못된 입력 | 예약 |
중복 예약 | 예약 취소 | 예약 취소 재확인 | 예약 취소 재확인 (Yes 입력) |
예약 취소 재확인 (No 입력) |
실행 및 결과 - window
실행 시 출력되는 기본 화면 | 예약 |
잘못된 입력 | 예약되지 않은 자리 예약 취소 (잘못된 예약 취소) |
3행 7열 예약 | 중복 예약 | 예약 취소 | 예약 취소 재확인 (Yes 입력) |
예약 취소 재확인 (No 입력) |
반응형
'프로젝트 > 개인 프로젝트' 카테고리의 다른 글
[간단 코드] 좌석 예약(3) (0) | 2024.01.17 |
---|---|
[간단 코드] 좌석 예약(2) (0) | 2024.01.10 |
[간단 코드] 좌석 예약(1) (0) | 2024.01.04 |
Central Dogma C프로그램(6)_종결 코돈 인식 후 번역 종료 (0) | 2022.04.05 |
Central Dogma C프로그램(5)_개시코돈 인식 후 번역 (0) | 2022.03.30 |