Prévia do material em texto
Desenvolver um código fonte em Python para simular um banco de dados que gerencie lugares de um avião, indicando quais cadeiras estão ocupadas e quais estão livres, é uma aplicação prática e interessante. Este texto vai explorar como esse sistema pode ser estruturado, os conceitos envolvidos e como ele pode ser implementado para proporcionar uma visão clara do estado dos lugares em um avião.
### Estrutura do Banco de Dados
Para simular um sistema de lugares de avião em Python, podemos utilizar estruturas de dados simples como dicionários ou listas para representar o estado dos lugares (ocupados ou livres). Cada assento será representado por uma chave única e seu valor indicará se está ocupado ou não.
#### Exemplo de Implementação
```python
class Aviao:
def __init__(self, num_linhas, num_colunas):
self.num_linhas = num_linhas
self.num_colunas = num_colunas
self.lugares = {}
# Inicializando todos os lugares como livres
for linha in range(1, num_linhas + 1):
for coluna in range(1, num_colunas + 1):
self.lugares[f'{linha}-{coluna}'] = False # False significa que o lugar está livre
def ocupar_lugar(self, linha, coluna):
lugar = f'{linha}-{coluna}'
if lugar in self.lugares:
if not self.lugares[lugar]:
self.lugares[lugar] = True
print(f"Lugar {lugar} ocupado com sucesso.")
else:
print(f"Lugar {lugar} já está ocupado.")
else:
print(f"Lugar {lugar} não existe neste avião.")
def desocupar_lugar(self, linha, coluna):
lugar = f'{linha}-{coluna}'
if lugar in self.lugares:
if self.lugares[lugar]:
self.lugares[lugar] = False
print(f"Lugar {lugar} desocupado com sucesso.")
else:
print(f"Lugar {lugar} já está livre.")
else:
print(f"Lugar {lugar} não existe neste avião.")
def verificar_lugar(self, linha, coluna):
lugar = f'{linha}-{coluna}'
if lugar in self.lugares:
if self.lugares[lugar]:
print(f"Lugar {lugar} está ocupado.")
else:
print(f"Lugar {lugar} está livre.")
else:
print(f"Lugar {lugar} não existe neste avião.")
def listar_lugares_livres(self):
livres = [lugar for lugar, ocupado in self.lugares.items() if not ocupado]
print(f"Lugares livres: {', '.join(livres)}")
def listar_lugares_ocupados(self):
ocupados = [lugar for lugar, ocupado in self.lugares.items() if ocupado]
print(f"Lugares ocupados: {', '.join(ocupados)}")
# Exemplo de uso:
aviao = Aviao(10, 6) # Criando um avião com 10 linhas e 6 colunas de lugares
# Ocupando alguns lugares
aviao.ocupar_lugar(1, 2)
aviao.ocupar_lugar(3, 4)
aviao.ocupar_lugar(5, 6)
# Verificando se um lugar está ocupado
aviao.verificar_lugar(1, 2)
# Desocupando um lugar
aviao.desocupar_lugar(3, 4)
# Listando lugares livres e ocupados
aviao.listar_lugares_livres()
aviao.listar_lugares_ocupados()
```
### Explicação do Código
1. **Inicialização do Avião**: A classe `Aviao` é inicializada com o número de linhas e colunas de lugares. Cada lugar é representado por uma chave no dicionário `lugares`, onde o valor inicial é `False` para indicar que o lugar está livre.
2. **Métodos de Gerenciamento de Lugares**:
- `ocupar_lugar`: Marca um lugar como ocupado se estiver livre.
- `desocupar_lugar`: Marca um lugar como livre se estiver ocupado.
- `verificar_lugar`: Verifica se um lugar específico está ocupado ou livre.
- `listar_lugares_livres` e `listar_lugares_ocupados`: Mostram uma lista dos lugares livres e ocupados, respectivamente.
3. **Exemplo de Uso**: Demonstração simples de como utilizar os métodos da classe `Aviao` para ocupar, desocupar, verificar e listar lugares.
### Considerações Finais
Implementar um banco de dados simples em Python para gerenciar lugares de um avião envolve o uso de estruturas de dados básicas e técnicas de orientação a objetos. Este exemplo pode ser expandido com mais funcionalidades, como persistência de dados em arquivos ou integração com uma interface de usuário para facilitar a interação. A adaptabilidade do código permite ajustá-lo conforme as necessidades específicas de um sistema real de gestão de lugares em aviões, proporcionando uma base sólida para futuras expansões e melhorias.