파이썬 과제물 중 간단하게 만들었던 과제물이다.
순서대로 단순 은행 프로그램, 심화 은행 프로그램이다.
간단하게만 작성했던 코드라 예외처리가 제대로 되어 있지 않은 부분도 꽤 있다.
1. 단순 은행 프로그램
입금, 출금, 잔액 확인, 종료 기능으로 구성되어 있다.
- 1번 메뉴 : 입금 기능을 수행한다.
- 2번 메뉴 : 출금 기능을 수행한다. 0 이하의 값과 현재 잔액보다 더 큰 값을 인출하지 못하게 한다.
- 3번 메뉴 : 잔액 확인 기능을 수행한다.
- 4번 메뉴 : 감사 문구를 출력한 뒤 프로그램을 종료한다.
- 기타 : 메뉴 입력이 정상적이지 않을 경우 오류 문구가 출력되도록 한다. 또한 초기 잔액은 100,000원으로 설정한다.
먼저 코드는 다음과 같다.
#잔액
myMoney = 100000
name = input("계좌 소유주의 이름을 입력해주세요: ")
while True:
print("==================================")
print(" 은행 ATM")
print("==================================")
print("1. 입금\n2. 출금\n3. 잔액 확인\n4. 종료")
print("==================================")
menu = input("메뉴 선택: ")
if(menu=='1'):
money = int(input("입금할 금액을 입력해 주세요: "))
myMoney += money
print("\n", money, "원이 정상적으로 입금되었습니다.\n")
elif(menu=='2'):
money = int(input("출금할 금액을 입력해 주세요: "))
if(money<=0):
print("\n정확한 금액을 입력해 주세요.\n")
elif(money>myMoney):
print("\n잔액 부족. 거래가 거절되었습니다.\n")
else:
myMoney -= money
print("\n", money, "원이 정상적으로 출금되었습니다.\n")
elif(menu=='3'):
print(name, "님의 현재 잔액은", myMoney, "원 입니다.\n")
elif(menu=='4'):
print("저희 은행을 이용해 주셔서 감사합니다.")
break
else:
print("\n1~4 중에서 골라 주십시오.\n")
작동 방식은 다음과 같다.
먼저 계좌 소유주의 이름을 입력받은 뒤, 메뉴를 입력받는다.
메뉴 입력에 오류가 발생한 경우 안내 문구를 출력한 뒤 메뉴 입력으로 되돌아간다.
1번을 선택할 경우 입금할 금액을 입력받고, 입금 완료 문구를 출력한 뒤 메뉴 입력으로 되돌아간다.
2번을 선택할 경우 출금할 금액을 입력받고 정상적인 경우 출금 완료 문구를 출력한 뒤 메뉴 입력으로 돌아간다.
다만 출금 금액이 음수일 경우, 잔액보다 클 경우에는 안내 문구를 출력하고 메뉴 입력으로 돌아간다.
3번을 선택할 경우 현재 잔액을 출력한 뒤 메뉴 입력으로 되돌아간다.
4번을 선택할 경우 감사 문구를 출력한 뒤 프로그램을 종료한다.
2. 심화 은행 프로그램
입금, 출금, 잔액 확인, 종료 기능으로 구성되어 있다.
클래스(Class)와 함수(Function) 개념을 활용한다.
출력 초기화, 입금, 출금, 출력 계좌 조회를 수행하는 4개의 메서드(method)를 활용하며, printMenu()를 활용해 메뉴를 출력한다.
- 출력 초기화 : 계좌 소유자와 초기 금액(0원)을 인자로 받는다.
- 입금 : 입금 기능을 수행한다. 잘못된 금액(음수 등)을 입력할 경우 또는 입금에 성공한 경우 안내 문구를 출력한다.
- 출금 : 출금 기능을 수행한다. 잔액보다 큰 금액을 인출할 경우 또는 출금에 성공한 경우 안내 문구를 출력한다.
- 출력 계좌 조회 : 계좌 소유자 이름과 현재 잔액을 출력한다.
- 기타 : 메뉴 입력이 정상적이지 않을 경우 오류 문구가 출력되도록 한다.
먼저 코드는 다음과 같다.
class account():
#출력 초기화
def init(customer, money, name):
customer.money = money
customer.name = name
#입금 기능
def deposit(customer):
depo = int(input("입금할 금액을 입력해주세요: "))
if (depo > 0):
customer.money += depo
print("%d원이 성공적으로 입금되었습니다." %depo)
else:
#음수 또는 0 입력
print("정확한 금액을 입력해주세요.")
#출금 기능
def withdraw(customer):
draw = int(input("출금할 금액을 입력해주세요: "))
if (draw > 0 and draw < customer.money):
customer.money -= draw
print("%d원이 성공적으로 출금되었습니다." %draw)
elif (draw > 0 and draw > customer.money):
#양수지만 잔액보다도 더 큰 금액일 경우
print("잔액 부족. 거래가 거절되었습니다.")
else:
#음수 또는 0을 입력했을 경우
print("정확한 금액을 입력해주세요.")
#출력 계좌 조회
def printAccount(customer):
print("\n계좌 소유자 :", customer.name)
print("현재 잔액:", customer.money)
#메뉴 출력 함수
def printMenu():
print("\n********************************")
print(" GoodNight Bank ATM")
print("********************************")
print("\t1. 잔액확인\n\t2. 입금\n\t3. 출금\n\t4. 종료")
print("********************************\n")
#Main Code
customer = account()
name = input("\n계좌 소유자의 이름을 입력해주세요: ")
account.init(customer, 0, name)
while True:
printMenu()
menu = input("메뉴를 선택해주세요 >>> ")
if (menu=='1'):
account.printAccount(customer)
elif (menu=='2'):
account.deposit(customer)
elif (menu=='3'):
account.withdraw(customer)
elif (menu=='4'):
print("\n이용해주셔서 감사합니다.")
break
else:
#메뉴 입력이 1~4가 아닐 경우
print("메뉴를 다시 선택해주세요")
continue
작동 방식은 다음과 같다.
먼저 계좌 소유자의 이름을 입력받고, 그 후 메뉴를 입력받는다.
1~4가 아닌 다른 것을 입력한 경우 안내 문구를 출력하고 다시 메뉴를 입력받는다.
1번을 선택한 경우 계좌 소유자명과 현재 잔액을 출력한다.
초기 잔액은 0원이므로 다음과 같은 결과가 나오게 된다.
출력이 완료된 후에는 메뉴 입력으로 돌아간다.
2번을 선택한 경우 입금 기능을 수행한다.
입금할 금액은 0원 초과여야 하며 제대로 이루어지지 않을 경우 안내 문구가 출력되며 메뉴 입력으로 되돌아간다.
입금에 성공하는 경우 안내 문구를 출력하며, 메뉴 입력으로 되돌아간다.
3번을 선택하는 경우 출금 기능을 수행한다.
출금할 금액은 0원 초과여야 하며 현재 잔액보다는 작아야 한다.
제대로 수행되지 않을 경우 안내 문구를 출력하며 메뉴 입력으로 되돌아간다.
출금에 성공하는 경우에도 안내 문구를 출력하며 메뉴 입력으로 되돌아간다.
출금이 수행된 후 메뉴 입력에서 다시 1번을 입력해 확인해 보면
다음과 같이 정상적으로 반영되어 있는 것을 확인할 수 있다.
마지막으로 4번을 입력하면 감사 문구를 출력한 뒤 프로그램을 종료한다.
'study' 카테고리의 다른 글
간단한 Python 프로그래밍 : 카페 주문 (0) | 2022.07.01 |
---|---|
간단한 Python 프로그래밍 : 영어 단어장, 영한사전 및 테스트 (0) | 2022.06.29 |
[학습정리] 컴퓨터와 IT기술의 이해 2 (0) | 2022.06.27 |
[학습정리] 컴퓨터와 IT기술의 이해 1 (0) | 2022.06.26 |
개인 프로필 웹 페이지 제작(HTML/CSS) (0) | 2022.06.24 |