View difference between Paste ID: JY1aezPa and XZKrM7tt
SHOW: | | - or go back to the newest paste.
1
import io
2
from os import system as System
3
from os import path as Path
4
from math import ceil as Ceil
5
6
# Структура дома
7
class House:
8
9
	address = "";
10
	buildType = "";
11
	buildDate = "";
12
	floors = "";
13
14
	def __init__ (self, address, buildType, buildDate, floors):
15
		self.address = address
16
		self.buildType = buildType
17
		self.buildDate = buildDate
18
		self.floors = floors
19
20
	def __str__ (self):
21
		return self.address + " " + self.buildType + " " + self.buildDate + " " + self.floors;
22
23
24
class Houses:
25
26
	listHouse = []
27
	count = 0
28
29
	housesInPage = 5
30
31
	def addHouse (self, house):
32
		#if count(filter(lambda x: x.address == house.address, self.listHouse)) > 0:
33
		for h in self.listHouse:
34
			if house.address == h.address:
35
				print ("Дом по адреcу " + house.address + " уже есть в списке")
36
				return
37
		self.listHouse.append(house)
38
		self.count += 1
39
40
	def loadFromFile(self, path):
41
		if Path.exists(path) == False:
42
			print ("Файл не найден")
43
			return
44
		count = 0;
45
		with io.open(path, encoding='utf-8') as file:
46
			for line in file:
47
				house = line.replace("\n", "").split("|")
48
				newHouse = House(house[0], house[1], house[2], house[3])
49
				self.addHouse(newHouse)
50
				count += 1
51
		print ("Добавлено " + str(count) + " записей")
52
		self.count += count
53
54
	def printPage(self, numPage):
55-
		print ("Выведена страница " + str(numPage) + " из " + str(maxPage))
55+
56-
		for page in range(int(self.housesInPage) * int(numPage), int(self.housesInPage) * (int(numPage) + 1)):
56+
		print ("Выведена страница " + str(numPage) + " из " + str(maxPage - 1))
57-
			if page < self.count:
57+
		for row in range(int(self.housesInPage) * int(numPage), int(self.housesInPage) * (int(numPage) + 1)):
58-
				print (str(self.listHouse[page]))
58+
			if row < self.count:
59
				print (str(row) + ": " + str(self.listHouse[row]))
60
61
	def setHousesInPage(self, count):
62
		self.housesInPage = int(count)
63
64
65-
houses.loadFromFile("result.txt")
65+
66
System('cls')
67
houses = Houses()
68
#houses.loadFromFile("result.txt")
69
70
71
while True:
72
	print ("1 - Загрузить данные из файла")
73
	print ("2 - Ввести данные вручную")
74
	print ("3 - Постраничный вывод записей")
75
	print ("4 - Установить кол-во записей на странице")
76
	answer = input()
77
	System('cls')
78
	if answer == "1":
79
		print ("Введите название файла")
80
		houses.loadFromFile(input())
81
	if answer == "2":
82
		print ("Введите адрес, тип, дату постройки и кол-во этажей у здания")
83
		print ("Разделитель |")
84
		answer = input().split("|")
85
		if len(answer) != 4:
86
			print ("Введены некорректные данные")
87
		else:
88-
		maxPage = Ceil(houses.count / houses.housesInPage);
88+
89-
		print ("Введите номер страницы от 0 до " + str(maxPage))
89+
90-
		houses.printPage(input())
90+
			print ("Данные о доме добавлены")
91
	elif answer == "3":
92
		if houses.count == 0:
93
			print ("Нет данных ни об одном доме")
94
		else:
95
			maxPage = Ceil(houses.count / houses.housesInPage);
96
			print ("Введите номер страницы от 0 до " + str(maxPage - 1))
97
			houses.printPage(input())
98
	elif answer == "4":
99
		print ("Введите кол-во записей, которые будут отображаться на странице");
100
		houses.setHousesInPage(input())