Skip to content

Conversation

@lohanarodrigues
Copy link

Inclusão de uma nova aluna na minha base de dados
Após a inclusão, o sistema deve exibir uma confirmação de que a aluna foi adicionada com sucesso.
O sistema deve exibir a lista de todas as alunas cadastradas, mostrando apenas os nomes.
Caso não haja alunos cadastrados, o sistema deve informar que não há registros.
Consultar a quantidade de faltas de uma aluna
O sistema deve permitir ao usuário buscar as faltas de uma aluna específica.
O sistema deve calcular o status de aprovação de uma aluna com base nas suas notas.
O sistema deve calcular a média simples das notas da aluna
Após o cálculo, o sistema deve exibir o status de aprovação da aluna (aprovada ou reprovada) e sua média final

Copy link
Collaborator

@mayulabs mayulabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oi Lohana!

Fiz uma revisão de código dentro do seu projeto. Vi no seu código que faltaram alguns detalhes em relação ao que foi proposto e ao que foi implementado. Futuramente, treine utilizar o dicionário com a relação de chave e valor. Esta é uma das principais características do dicionário.

Boa sorte e sucesso na sua jornada ♥

@@ -0,0 +1,132 @@
def main():
dataset = {'discentes': []}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aqui, deveriamos utilizar o dataset proposto para o exercício. Nele possuía uma estrutura específica para seguir.

def incluir_nova_discente(dataset):
nome = input("Por favor, digite o nome da discente: ")
try:
faltas = int(input("Por favor, digite o número de faltas: "))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aqui, o sistema deveria conseguir incluir a presença da respectiva aula. Futuramente, em outro MVP, se eu quisesse saber em quais aulas a aluna faltou, não haveria essa informação. No requisito funcional havia:

  • O sistema deve permitir a inclusão de uma nova aluna com os seguintes dados: nome, sobrenome, turma, notas (uma lista de números), presença (uma lista de booleanos indicando a presença em cada aula) e participação (um número representando o nota de participação da aluna).

Sugestão:

Suggested change
faltas = int(input("Por favor, digite o número de faltas: "))
faltas = obter_presença()
def obter_presença():
quantidade_aulas = int(input('Digite quantas aulas houveram: '))
lista_presença = []
for contador in range(quantidade_aulas):
while True:
entrada = input(f'Presença na aula #{contador +1} (True/False): ')
if entrada in ['True', 'False']:
lista_presença.append(eval(entrada))
break
else:
print('Informação inválida. Insira apenas True ou False')

Comment on lines +53 to +64
while True:
nota = input("Nota: ")
if nota.lower() == 'finalizar':
break
try:
nota_float = float(nota)
if 0 <= nota_float <= 10:
notas.append(nota_float)
else:
print("Essa nota não atende o critério do intervalo aceitável (0 a 10).")
except ValueError:
print("Essa entrada é inválida. Por favor, digite um número válido ou 'finalizar' para concluir.")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Muito boa a implementação para obter notas.

if len(notas) == 0:
print("Discente não incluída.")
return

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Na função faltou obter nota de participação, no dataset não foi incluído e precisamos dessa informação para o cálculo de aprovação. Na próxima vez, é importante se atentar ao requisito funcional.

Comment on lines +70 to +74
dataset['discentes'].append({
'nome': nome,
'faltas': faltas,
'notas': notas
})
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dentro da proposta do exercício era utilizar a tupla como estrutura de chave para o dicionário. Não foi utilizado nem o dataset proposto, e o dataset montado não segue a estrutura proposta.

Sugestão:

Suggested change
dataset['discentes'].append({
'nome': nome,
'faltas': faltas,
'notas': notas
})
def salvar_dados(nome, sobrenome, turma, lista_presença, nota_participação, notas):
chave = (nome, sobrenome)
dataset[chave] = {
"Turma": turma,
"Notas": notas,
"Presença": lista_presença,
"Participação": nota_participação
}


print("\nDiscentes:")
for discente in dataset['discentes']:
print(f"Nome: {discente['nome']}, Faltas: {discente['faltas']}, Notas: {discente['notas']}")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note que para esta funcionalidade, deveriamos imprimir apenas os nomes. Funcionalidades deste tipo são úteis para pegar a correlação de alunos, clientes de uma empresa. O exercício era mais simples do que foi implementado

Comment on lines +92 to +95
for discente in dataset['discentes']:
if discente['nome'] == nome:
print(f"Discente: {discente['nome']}, Faltas: {discente['faltas']}")
return
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Temos dois pontos aqui:
1 - No exercício proposto, a ideia era receber o nome e sobrenome e utilizar ele como chave para a busca no dicionário. Para não precisar implementar uma função de busca. Neste caso, acabamos tendo uma complexidade maior do que o necessário. Sendo que poderiamos apenas acessar por chave e valor.
2 - A quantidade de faltas deveria através da contagem de faltas em uma lista booleana. Esta implementação não é válida.

for discente in dataset['discentes']:
if discente['nome'] == nome:
media = sum(discente['notas']) / len(discente['notas'])
presenca = 1 - (discente['faltas'] / 100)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esse cálculo de percentual não está correto, pois não recebemos a lista de presença no início. Assim, não temos o número total de aulas, e por fim, não temos a proporção de aulas que a pessoa faltou. O cálculo correto seria:
Percentual_de_faltas = Quantidade_de_faltas / Quantidade_de_aulas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants