Prévia do material em texto
Para desenvolver um código-fonte em Python que gerencie uma fila de pessoas em um banco de dados, podemos abordar esse problema em várias etapas. Vamos considerar um cenário simplificado onde temos um sistema básico de gerenciamento de filas usando um banco de dados SQLite em Python. Este sistema permitirá adicionar pessoas à fila, remover pessoas atendidas da fila e visualizar o estado atual da fila.
### Passos para desenvolver o código-fonte:
#### 1. Configuração do Banco de Dados
Primeiro, precisamos configurar o banco de dados SQLite e criar uma tabela para armazenar as informações das pessoas na fila. SQLite é uma escolha leve e simples para projetos pequenos como este.
```python
import sqlite3
# Conectando ao banco de dados (será criado se não existir)
conn = sqlite3.connect('fila_banco.db')
cursor = conn.cursor()
# Criando a tabela para armazenar as pessoas na fila
cursor.execute('''
CREATE TABLE IF NOT EXISTS fila (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
idade INTEGER NOT NULL,
atendido INTEGER DEFAULT 0
)
''')
conn.commit()
```
#### 2. Funções para Gerenciar a Fila
Agora, vamos criar funções Python que nos permitirão manipular a fila no banco de dados:
```python
def adicionar_pessoa(nome, idade):
cursor.execute('INSERT INTO fila (nome, idade) VALUES (?, ?)', (nome, idade))
conn.commit()
print(f'{nome} adicionado(a) à fila.')
def remover_pessoa():
cursor.execute('SELECT * FROM fila WHERE atendido = 0 ORDER BY id ASC LIMIT 1')
pessoa = cursor.fetchone()
if pessoa:
id_pessoa = pessoa[0]
nome = pessoa[1]
cursor.execute('UPDATE fila SET atendido = 1 WHERE id = ?', (id_pessoa,))
conn.commit()
print(f'{nome} foi atendido(a) e removido(a) da fila.')
else:
print('Não há pessoas na fila.')
def mostrar_fila():
cursor.execute('SELECT * FROM fila WHERE atendido = 0')
pessoas = cursor.fetchall()
if pessoas:
print('Pessoas na fila:')
for pessoa in pessoas:
print(f'{pessoa[0]} - {pessoa[1]}, {pessoa[2]} anos')
else:
print('Não há pessoas na fila.')
def fechar_conexao():
conn.close()
```
#### 3. Exemplo de Uso do Sistema
Agora, podemos usar essas funções para simular um sistema de fila:
```python
# Exemplo de uso do sistema
adicionar_pessoa('João', 30)
adicionar_pessoa('Maria', 25)
adicionar_pessoa('Pedro', 40)
mostrar_fila()
remover_pessoa()
remover_pessoa()
mostrar_fila()
fechar_conexao()
```
#### Explicação do Código:
- **adicionar_pessoa(nome, idade)**: Adiciona uma pessoa à fila com seu nome e idade.
- **remover_pessoa()**: Remove a primeira pessoa não atendida da fila e marca como atendida.
- **mostrar_fila()**: Mostra todas as pessoas ainda na fila.
- **fechar_conexao()**: Fecha a conexão com o banco de dados quando o programa termina.
Este código fornece uma estrutura básica para gerenciar uma fila de pessoas em um banco de dados usando Python e SQLite. Ele pode ser expandido e adaptado conforme necessário, por exemplo, adicionando mais informações às pessoas na fila ou implementando uma lógica mais complexa de atendimento de pessoas.