-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexecutavel.py
158 lines (118 loc) · 5.93 KB
/
executavel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
from listaEncadeada import ListaEncadeada
from pilhaEncadeada import PilhaEncadeada
from filaEncadeada import FilaEncadeada
from musica import Musica
from modulo.shutil import print_centralizado
if __name__ == "__main__":
print()
print_centralizado('Saudações da equipe COVID-19!')
print_centralizado('Este programa trabalhará com as 100 maiores músicas brasileiras segundo a Rolling Stones Brasil.')
print_centralizado('Para facilidade de visualização, com o uso da biblioteca panda só pegamos as 51 (uma boa ideia) primeiras músicas.')
print_centralizado('Os dados da lista são, em ordem normal: Colocação no Ranking, Música, Banda ou Intérprete, Compositores e Ano.')
input("\nPressione ENTER para iniciar...")
print_centralizado('Início da classe Lista Encadeada.')
print_centralizado('Serão ADICIONADOS todos os dados sobre as músicas a seguir.')
input("\nPressione ENTER para continuar...")
############################### LISTA ENCADEADA
lista = ListaEncadeada()
with open("musicas.csv", "r", encoding="utf8") as arq:
musicas = arq.readlines()
for i in range(len(musicas)):
colocacao, nome, banda, compositor, ano = musicas[i].split(";")
ano = ano.strip("\n")
musica = Musica(colocacao, nome, banda, compositor, ano)
lista.inserir(i + 1, musica)
print(lista)
print_centralizado('Inserção completa. Próximo passo: REMOÇÃO.')
print_centralizado('A remoção será feita, respectivamente, nas posicoes: 1, 51 e 5')
input("\nPressione ENTER para continuar...")
lista.remover(51)
lista.remover(5)
lista.remover(1)
print(lista)
print_centralizado('Remoção completa. Próximo passo: Checar se está vazio, caso não, imprimir o tamanho.')
input("\nPressione ENTER para continuar...")
if lista.vazia():
print_centralizado('A lista está vazia.')
else:
print_centralizado(f'A lista possui tamanho: {lista.tamanho()}')
print_centralizado('A lista NÃO está vazia')
print_centralizado('Checagem completa. Próximo passo: MOSTRAR ELEMENTO')
print_centralizado('Será mostrado o elemento 10')
input("\nPressione ENTER para continuar...")
print_centralizado(f'{lista.elemento(7)}')
print_centralizado('Elemento mostrado. Próximo passo: ORDENAR')
print_centralizado('A ordenação será feita pelo ano de lançamento')
input("\nPressione ENTER para continuar...")
lista.ordena()
print(lista)
print_centralizado('Elemento mostrado. Próximo passo: BUSCAR')
print_centralizado('Serão buscadas as músicas do cantor Geraldo Vandré')
input("\nPressione ENTER para continuar...")
print_centralizado(f'{lista.buscar("Geraldo Vandré")}')
print_centralizado('Busca feita. FIM DA LISTA ENCADEADA. Próximo passo: PILHA ENCADEADA')
input("\nPressione ENTER para continuar...")
################################ PILHA ENCADEADA
print_centralizado('Início da classe Pilha Encadeada.')
print_centralizado('Serão ADICIONADOS os dados das primeiras 5 músicas.')
input("\nPressione ENTER para continuar...")
pilha = PilhaEncadeada()
with open("musicas.csv", "r", encoding="utf8") as arq:
musicas = arq.readlines()
for i in range(5):
colocacao, nome, banda, compositor, ano = musicas[i].split(";")
ano = ano.strip("\n")
musica = Musica(colocacao, nome, banda, compositor, ano)
pilha.inserir(musica)
print(pilha)
print_centralizado('Inserção completa. Próximo passo: REMOÇÃO.')
input("\nPressione ENTER para continuar...")
for i in range(2):
pilha.remover()
print(pilha)
i += 1
print_centralizado('Remoção completa. Próximo passo: Checar se está vazio, caso não, imprimir o tamanho.')
input("\nPressione ENTER para continuar...")
if pilha.vazia():
print_centralizado('A pilha está vazia.')
else:
print_centralizado(f'A pilha possui tamanho: {pilha.tamanho()}')
print_centralizado('A pilha NÃO está vazia')
print_centralizado('Checagem completa. Próximo passo: MOSTRAR ELEMENTO')
input("\nPressione ENTER para continuar...")
print_centralizado(f'{pilha.elemento()}')
print_centralizado('Elemento mostrado. FIM DA PILHA ENCADEADA. Próximo passo: FILA ENCADEADA')
input("\nPressione ENTER para continuar...")
################################ FILA ENCADEADA
print_centralizado('Início da classe Fila Encadeada.')
print_centralizado('Serão ADICIONADOS os dados das primeiras 10 músicas.')
input("\nPressione ENTER para continuar...")
fila = FilaEncadeada()
with open("musicas.csv", "r", encoding="utf8") as arq:
musicas = arq.readlines()
print(fila)
for i in range(10):
colocacao, nome, banda, compositor, ano = musicas[i].split(";")
ano = ano.strip("\n")
musica = Musica(colocacao, nome, banda, compositor, ano)
fila.inserir(musica)
print(fila)
print_centralizado('Inserção completa. Próximo passo: REMOÇÃO.')
input("\nPressione ENTER para continuar...")
for i in range(4):
fila.remover()
print(fila)
i += 1
print_centralizado('Remoção completa. Próximo passo: Checar se está vazio, caso não, imprimir o tamanho.')
input("\nPressione ENTER para continuar...")
if fila.vazia():
print_centralizado('A fila está vazia.')
else:
print_centralizado(f'A fila possui tamanho: {fila.tamanho()}')
print_centralizado('A fila NÃO está vazia')
print_centralizado('Checagem completa. Próximo passo: MOSTRAR ELEMENTO')
input("\nPressione ENTER para continuar...")
print_centralizado(f'{fila.elemento()}')
print_centralizado('Elemento mostrado. FIM DA FILA ENCADEADA\n')
print_centralizado('FIM DO PROGRAMA!')
input("\nPressione ENTER para ENCERRAR...")