728x90
도선관 출납 시스템 개발
기본적으로 있어야되는 시스템
내가 한 도서관리 프로그램
import os
# 공통 메뉴 선택 함수
def selectMenu():
os.system('cls')
print("===========================")
print("도서관리 프로그램 ver. 0.1.0")
print("===========================")
print()
print("1: 도서정보 관리")
print("2: 회원 정보 관리")
print("3: 대출 기록 관리")
print("0: 종료")
print()
return input("메뉴 선택: ")
# 도서 정보 관리
def manageBooksMenu():
os.system('cls')
print("=========도서정보 관리=========")
print("1: 도서 추가")
print("2: 도서 삭제")
print("3: 도서 검색")
print("4: 카테고리 관리")
print("5: 출판사 관리")
print("0: 뒤로가기")
print()
return input("메뉴 선택: ")
def addBook():
print("=========도서 추가=========")
def delBook():
print("=========도서 삭제=========")
def searchBookMenu():
os.system('cls')
print("=========도서 검색=========")
print("1: 도서명 검색")
print("2: 저자명 검색")
print("3: 출판사 검색")
print("4: ISBN 검색")
print("5: 발행년도 검색")
print("6: 카테고리 검색")
print("0: 뒤로가기")
print()
return input("메뉴 선택: ")
def searchBook():
while True:
menu = searchBookMenu()
if menu == "0":
break
elif menu == "1":
print("=========도서명 검색=========")
elif menu == "2":
print("=========저자명 검색=========")
elif menu == "3":
print("=========출판사 검색=========")
elif menu == "4":
print("=========ISBN 검색=========")
elif menu == "5":
print("=========발행년도 검색=========")
elif menu == "6":
print("=========카테고리 검색=========")
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
def manageCategoryMenu():
os.system('cls')
print("=========카테고리 관리=========")
print("1: 카테고리 추가")
print("2: 카테고리 수정")
print("3: 카테고리 삭제")
print("4: 카테고리 목록")
print("0: 뒤로가기")
print()
return input("메뉴 선택: ")
def addCategory():
print("=========카테고리 추가=========")
def editCategory():
print("=========카테고리 수정=========")
def deleteCategory():
print("=========카테고리 삭제=========")
def listCategories():
print("=========카테고리 목록=========")
def manageCategories():
while True:
submenu = manageCategoryMenu()
if submenu == "0":
break
elif submenu == "1":
addCategory()
elif submenu == "2":
editCategory()
elif submenu == "3":
deleteCategory()
elif submenu == "4":
listCategories()
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
def managePublisherMenu():
os.system('cls')
print("=========출판사 관리=========")
print("1: 출판사 정보 추가")
print("2: 출판사 정보 삭제")
print("3: 출판사 정보 수정")
print("4: 출판사 목록 보기")
print("0: 뒤로가기")
print()
return input("메뉴 선택: ")
def addPublisher():
print("=========출판사 정보 추가=========")
def deletePublisher():
print("=========출판사 정보 삭제=========")
def editPublisher():
print("=========출판사 정보 수정=========")
def listPublishers():
print("=========출판사 목록 보기=========")
def managePublishers():
while True:
submenu = managePublisherMenu()
if submenu == "0":
break
elif submenu == "1":
addPublisher()
elif submenu == "2":
deletePublisher()
elif submenu == "3":
editPublisher()
elif submenu == "4":
listPublishers()
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
def manageBooks():
while True:
submenu = manageBooksMenu()
if submenu == "0":
break
elif submenu == "1":
addBook()
elif submenu == "2":
delBook()
elif submenu == "3":
searchBook()
elif submenu == "4":
manageCategories()
elif submenu == "5":
managePublishers()
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
# 회원 정보 관리
def manageMembersMenu():
os.system('cls')
print("=========회원 정보 관리=========")
print("1: 회원 정보 추가")
print("2: 회원 정보 수정")
print("3: 회원 정보 삭제")
print("4: 회원 대출 현황")
print("0: 뒤로가기")
print()
return input("메뉴 선택: ")
def addMember():
print("=========회원 정보 추가=========")
def editMember():
print("=========회원 정보 수정=========")
def deleteMember():
print("=========회원 정보 삭제=========")
def viewMemberBorrowing():
print("=========회원 대출 현황=========")
def manageMembers():
while True:
submenu = manageMembersMenu()
if submenu == "0":
break
elif submenu == "1":
addMember()
elif submenu == "2":
editMember()
elif submenu == "3":
deleteMember()
elif submenu == "4":
viewMemberBorrowing()
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
# 대출 기록 관리
def manageBorrowRecordsMenu():
os.system('cls')
print("=========대출 기록 관리=========")
print("1: 대출 기록 저장")
print("2: 반납 기록 저장")
print("3: 과거 대출/반납 기록 조회")
print("0: 뒤로가기")
print()
return input("메뉴 선택: ")
def saveBorrowRecord():
print("=========대출 기록 저장=========")
def saveReturnRecord():
print("=========반납 기록 저장=========")
def viewPastRecords():
print("=========과거 대출/반납 기록 조회=========")
def manageBorrowRecords():
while True:
submenu = manageBorrowRecordsMenu()
if submenu == "0":
break
elif submenu == "1":
saveBorrowRecord()
elif submenu == "2":
saveReturnRecord()
elif submenu == "3":
viewPastRecords()
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
# 메인 메뉴
def main():
while True:
menu = selectMenu()
if menu == "0":
break
elif menu == "1":
manageBooks()
elif menu == "2":
manageMembers()
elif menu == "3":
manageBorrowRecords()
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
print("프로그램을 종료합니다.")
if __name__ == '__main__':
main()
|
클래스 없이 작업 ( 당일 학습 내용)
'''
도서 관리 프로그램 (리스트 사용, 클래스 사용X, 메뉴만 구현)
- 도서 관리 프로그램은 콘솔 응용 프로그램이다.
- 응용에서는 사용자와 상호작용을 담당한다.
- 응용은 사용자에게 메뉴를 보여주고 선택한 메뉴를 수행하는 것을 반복한다.
- 메뉴에는 장르 추가, 도서 추가,도서 삭제, 도서 검색, 전체 도서 보기, 프로그램 종료가 있다.
- 장르 추가를 선택하면 추가할 장르 명을 입력받아 추가한다.
- 도서 추가를 선택하면 장르를 선택하고 도서 정보를 입력받아 추가한다.
- 도서는 ISBN(주요키), 도서명, 저자, 출판사, 가격 정보를 사용자로부터 입력받는다.
- 도서 삭제 기능에서는 도서의 ISBN을 사용자로부터 입력받아 삭제한다.
- 도서 검색 기능에서는 도서의 ISBN을 사용자로부터 입력받아 검색한다.
- 전체 보기에서는 전체 도서 정보를 출력한다.
'''
import os
# import time # 아래 아무 키나 눌러주세요 대체해서 사용
def selectMenu():
os.system('cls') # Windows에서는 'cls', macOS/Linux에서는 'clear'
print("===========================")
print("도서관 출납 관리 프로그램 ver. 0.1.0")
print("===========================")
print()
print("1: 카테고리 추가")
print("2: 도서 추가")
print("3: 도서 삭제")
print("4: 도서 검색")
print("5: 전체 보기")
print("0: 종료")
print()
return input("메뉴 선택: ")
def viewCategoryList(lsCategory):
print("[등록된 카테고리: {}개]".format(len(lsCategory)))
for i, category in enumerate(lsCategory):
print("{}: {}".format(i + 1, category), end=" ")
print()
def addCategory(lsCategory):
print("=========카테고리 추가=========")
viewCategoryList(lsCategory)
category_name = input("카테고리 명: ")
lsCategory.append(category_name)
def addBook(lsCategory, lsBook):
print("=========도서 추가=========")
viewCategoryList(lsCategory)
category_code = input("\n카테고리 번호: ")
category_code = int(category_code) - 1
if category_code < 0 or category_code > len(lsCategory) - 1: # len하면 하나 큰 값이 넘어감으로 -1 해줌
print("잘못 선택하셨습니다.")
return
isbn = input("ISBN: ")
title = input("도서명: ")
author = input("저자: ")
publisher = input("출판사: ")
price = input("가격: ")
book = [category_code, isbn, title, author, publisher, price]
lsBook.append(book)
def delBook(lsCategory, lsBook):
print("=========도서 삭제=========")
isbn = input("삭제할 도서의 ISBN: ")
found_isbn = findISBN(lsBook, isbn)
if found_isbn == -1: # 못찾을 경우 -1
print("존재하지 않는 ISBN입니다.")
return
book = lsBook.pop(found_isbn)
print("삭제된 도서: [{}] {} - {} ({}, ISBN:{}) {}원".format(lsCategory[book[0]], book[2], book[3], book[4], book[1], book[5]))
def findISBN(lsBook, isbn):
for i in range(0, len(lsBook)):
book = lsBook[i]
if book[1] == isbn:
return i
return -1
def searchBook(lsCategory, lsBook):
print("=========도서 검색=========")
isbn = input("r검색할 도서의 ISBN: ")
found_isbn = findISBN(lsBook, isbn)
book = lsBook[found_isbn]
print("[{}] {} - {} ({}, ISBN:{}) {}원".format(lsCategory[book[0]], book[2], book[3], book[4], book[1], book[5]))
def viewBookList(lsCategory, lsBook):
print("=========전체 보기=========")
print("[등록된 도서: {}개]".format(len(lsBook)))
for i, book in enumerate(lsBook):
print("{}. [{}] {} - {} ({}, ISBN:{}) {}원".format(i + 1, lsCategory[book[0]], book[2], book[3], book[4], book[1], book[5]))
def main():
lsCategory = list()
lsBook = list()
while True:
menu = selectMenu()
if menu == "0":
break
elif menu == "1":
addCategory(lsCategory)
elif menu == "2":
addBook(lsCategory, lsBook)
elif menu == "3":
delBook(lsCategory, lsBook)
elif menu == "4":
searchBook(lsCategory, lsBook)
elif menu == "5":
viewBookList(lsCategory, lsBook)
else:
print("메뉴를 잘못 선택했습니다!")
input("아무 키나 눌러주세요...")
# time.sleep(2) # 2초후 돌아감
print("프로그램을 종료합니다. ")
if __name__ == '__main__':
main()
728x90
'PYTHON-BACK' 카테고리의 다른 글
#파이썬 도서관 출납 시스템_18일차_var. 0.1.0 (0) | 2024.07.24 |
---|---|
#파이썬 도서관 출납 시스템_17일차 (3) | 2024.07.23 |
#파이썬 기초 16일차 (0) | 2024.07.22 |
#파이썬 기초 15일차 (0) | 2024.07.19 |
#파이썬 기초 14일차 (0) | 2024.07.18 |