1. 영화정보 class
- 클래스명 : Moive
- 속성
- title : 영화제목
- director : 감독
- genre : 영화장르
- rating : 영화 평점 목록
- 메서드
- get_movie_info : 영화정보 출력
- add_rating : 평점 추가
- get_average_rating : 영화의 평점의 평균 출력
class Movie:
def __init__(self, title, director, genre):
self.title = title
self.director = director
self.genre = genre
self.ratings = []
def get_movie_info(self):
return f"Title: {self.title}\nDirector: {self.director}\nGenre: {self.genre}"
def add_rating(self, rating):
if 0 <= rating <= 10:
self.ratings.append(rating)
else:
print("Rating should be between 0 and 10.")
def get_average_rating(self):
if self.ratings:
return sum(self.ratings) / len(self.ratings)
else:
return "No ratings yet."
movie = Movie("Inception", "Christopher Nolan", "Sci-Fi")
print(movie.get_movie_info())
movie.add_rating(9)
movie.add_rating(8.5)
movie.add_rating(9.5)
print(f"Average Rating of {movie.title}: {movie.get_average_rating()}")
2. 게시판 class
- 클래스명 : Board
- 속성
- title : 게시글의 제목
- content : 게시글의 내용
- author : 게시글의 작성자
- 메서드
- create_post : 게시글 추가
- delete_post : 게시글 삭제
- update_post : 게시글의 내용 수정
class Board:
def __init__(self):
self.posts = []
def create_post(self, title, content, author):
post = {
'title': title,
'content': content,
'author': author
}
self.posts.append(post)
print(f"게시글 '{title}'이(가) 추가되었습니다.")
def delete_post(self, title):
for post in self.posts:
if post['title'] == title:
self.posts.remove(post)
print(f"게시글 '{title}'이(가) 삭제되었습니다.")
return
print(f"'{title}' 제목의 게시글을 찾을 수 없습니다.")
def update_post(self, title, new_content):
for post in self.posts:
if post['title'] == title:
post['content'] = new_content
print(f"게시글 '{title}'이(가) 수정되었습니다.")
return
print(f"'{title}' 제목의 게시글을 찾을 수 없습니다.")
board = Board()
board.create_post("첫 번째 게시글", "이것은 첫 번째 게시글입니다.", "홍길동")
board.create_post("두 번째 게시글", "이것은 두 번째 게시글입니다.", "김철수")
board.display_posts()
board.update_post("첫 번째 게시글", "수정된 첫 번째 게시글 내용입니다.")
board.delete_post("두 번째 게시글")
board.display_posts()
3. 상영관 class
- 클래스명 : Cinema
- 속성
- title : 영화제목
- number : 영화상영관 번호
- seats : 상영관 자리 번호 (1부터 50)
- 메서드
- add_movie(title,number) : 상영영화 추가
- reserve_seat(title) : 좌석예약을 하면 seats에서 할당, 자리가 없을 경우 "매진"이라고 출력
class Cinema:
def __init__(self):
self.movies = {}
def add_movie(self, title, number):
"""
상영 영화를 추가하는 메서드.
title: 영화 제목
number: 영화 상영관 번호
"""
if title not in self.movies:
self.movies[title] = {
'number': number,
'seats': [False] * 50
}
print(f"영화 '{title}'이(가) 상영관 {number}번에 추가되었습니다.")
else:
print(f"영화 '{title}'은(는) 이미 상영 중입니다.")
def reserve_seat(self, title):
"""
영화 제목을 기준으로 좌석 예약을 진행.
좌석이 없으면 '매진'이라고 출력.
"""
if title not in self.movies:
print(f"'{title}' 영화는 상영되지 않습니다.")
return
movie = self.movies[title]
for i in range(len(movie['seats'])):
if not movie['seats'][i]:
movie['seats'][i] = True
print(f"'{title}' 영화의 {i+1}번 좌석이 예약되었습니다.")
return
print(f"'{title}' 영화는 매진되었습니다.")
cinema = Cinema()
cinema.add_movie("Avatar", 1)
cinema.add_movie("Titanic", 2)
cinema.reserve_seat("Avatar")
cinema.reserve_seat("Avatar")
cinema.reserve_seat("Titanic")
cinema.reserve_seat("Avatar")
for _ in range(48):
cinema.reserve_seat("Avatar")
cinema.reserve_seat("Avatar")