Advertisement
Guest User

1

a guest
Sep 20th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.81 KB | None | 0 0
  1. class Kinozal:
  2. def __init__(self, wid, leng, *args):
  3. self.wid = wid
  4. some = []
  5. for gh in range(len(args[0])):
  6. some.append((args[0][gh][0], args[0][gh][1], args[0][gh][2]))
  7. args = some
  8. self.len = leng
  9. self.seans = []
  10. self.places = []
  11. self.dict = dict()
  12. for j in range(wid):
  13. self.places.append([0] * leng)
  14. for g in range(len(args)):
  15. self.seans.append(
  16. (self.places, args[g][0], args[g][1], args[g][2], self.dict))
  17. self.seans = sorted(self.seans, key=lambda x: x[1])
  18.  
  19. def set_place(self, w, l, num):
  20. self.seans[num - 1][0][w][l] = 1
  21.  
  22. def set_film(self, time, film, cost):
  23. self.seans.append((self.places, time, film, cost))
  24. self.seans = sorted(self.seans, key=lambda x: x[1])
  25.  
  26. def get_films(self):
  27. a = []
  28. for t in self.seans:
  29. a.append(t[2])
  30. return a
  31.  
  32.  
  33. class Kinoteatr:
  34. def __init__(self, address, *args):
  35. # *args - информация о кинозале
  36. self.address = address
  37. self.kinozaly = list(args)
  38.  
  39. def add_kinozal(self, kinozal):
  40. self.kinozaly.append(kinozal)
  41.  
  42. def __str__(self):
  43. return self.address
  44.  
  45. def get_kinozals_seanses(self):
  46. seanses = []
  47. for f in range(len(self.kinozaly)):
  48. seanses.extend(self.kinozaly[f].get_films())
  49.  
  50.  
  51. class Cinema_network:
  52. def __init__(self, *args):
  53. # args - очередной кинотеатр
  54. self.kinoteatry = [i for i in args]
  55.  
  56. def add_kinoteatr(self, kinoteatr):
  57. self.kinoteatry.append(kinoteatr)
  58.  
  59. def __str__(self):
  60. return self.kinoteatry
  61.  
  62.  
  63. if __name__ == '__main__':
  64. a = 1
  65. if a == 1:
  66. print('Вы находитесь в настройках сети кинотеатров')
  67. print('Введите данные: ')
  68. print('Сколько у вас кинотеатров в сети')
  69. CountOfCinemas = int(input())
  70. print('Теперь на отдельной строке', sep=' ')
  71. print('для каждого кинотеатра введите информацию')
  72. print('Вводите информацию так: адрес,кол-во кинозалов')
  73. print('Затем на каждой строчке вводите информацию о кинозале так:')
  74. print('ширина зала,длина зала,кол-во фильмов на этот день')
  75. print('и информацию о фильмах в таком порядке: время,название,цена')
  76. Cinema_net = Cinema_network()
  77. for co in range(CountOfCinemas):
  78. infor = input().split(',')
  79. addres = infor[0]
  80. kolvoKinozalov = int(infor[1])
  81. Kinoteatr1 = Kinoteatr(addres)
  82. for kin in range(kolvoKinozalov):
  83. infkin = input().split(',')
  84. wid = int(infkin[0])
  85. leng = int(infkin[1])
  86. films_today = int(infkin[2])
  87. films_in_kinozal = []
  88. for fil in range(films_today):
  89. inffil = input().split(',')
  90. time = inffil[0]
  91. name = inffil[1]
  92. cost = int(inffil[2])
  93. films_in_kinozal.append((time, name, cost))
  94. Kinoteatr1.add_kinozal(Kinozal(wid, leng, films_in_kinozal))
  95. Cinema_net.add_kinoteatr(Kinoteatr1)
  96. print(
  97. 'Теперь вводит покупатель, если хотите прекратить работу напишите стоп')
  98. cou = ''
  99. while cou != 'стоп':
  100. print('Введите свои имя и фамилию')
  101. s1 = input().split()
  102. name = s1[0]
  103. surname = s1[1]
  104. print('Выберите кинотеатр:')
  105. print(*Cinema_net.kinoteatry, sep='\n')
  106. chosen_place = input()
  107. for i in range(len(Cinema_net.kinoteatry)):
  108. if Cinema_net.kinoteatry[i].address == chosen_place:
  109. print('Сегодня вы можете посетить следующие сеансы:')
  110. for cou in range(len(Cinema_net.kinoteatry[i].kinozaly)):
  111. print(f'в кинозале номер {cou + 1}')
  112. cin = Cinema_net.kinoteatry[i].kinozaly[cou].get_films()
  113. print(*cin, sep='\n')
  114. print('укажите в каком кинозале'
  115. ' вы хотите смотреть и какой фильм')
  116. s = input().split()
  117. chosen_kinozall = int(s[0])
  118. chosen_film = ' '.join(s[1:])
  119. ci = Cinema_net.kinoteatry[i].kinozaly[chosen_kinozall - 1]
  120. for fi in range(len(ci.seans)):
  121. df = Cinema_net.kinoteatry[i].kinozaly[chosen_kinozall - 1]
  122. if df.seans[fi][2] == chosen_film:
  123. chosen_seance = fi
  124. print('выберите место в кинозале:')
  125. print(*Cinema_net.kinoteatry[i].kinozaly[
  126. chosen_kinozall - 1].seans[chosen_seance][0], sep='\n')
  127. s = input().split()
  128. coorx = int(s[0]) - 1
  129. coory = int(s[1]) - 1
  130. Cinema_net.kinoteatry[i].kinozaly[
  131. chosen_kinozall - 1].seans[
  132. chosen_seance][-1][(coorx, coory)] = name + ' ' + surname
  133. Cinema_net.kinoteatry[i].kinozaly[
  134. chosen_kinozall - 1].seans[
  135. chosen_seance][0][coorx][coory] = 1
  136. print(*Cinema_net.kinoteatry[i].kinozaly[
  137. chosen_kinozall - 1].seans[chosen_seance][0], sep='\n')
  138. print('ваша сумма к оплате: ', end='')
  139. d = Cinema_net.kinoteatry[i].kinozaly[chosen_kinozall - 1]
  140. print(d.seans[chosen_seance][3])
  141. print(f'билет на фильм {chosen_film}'
  142. f' в кинозале {chosen_kinozall}'
  143. f' в кинотеатре города {chosen_place} '
  144. f'успешно забронирован на'
  145. f' {name} {surname}')
  146. print('Что дальше?')
  147. print('Если хотите крекратить работу введите \'стоп\'')
  148. print('Если хотите продолжить '
  149. 'продавать билеты то введите \'ок\'')
  150. con = input()
  151. if con == 'стоп':
  152. exit(0)
  153. break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement