Sem resumo de edição |
Sem resumo de edição Etiqueta: visualeditor |
||
| Linha 1: | Linha 1: | ||
= Código = | = Código = | ||
<br> | <br><syntaxhighlight lang="python3"> | ||
Controle = "controle_de_estoque.txt" | |||
Consumo = "consumo_reagente.txt" | |||
Reposição = "reposição_reagente.txt" | |||
<br> | |||
def escrever_linhas (texto): | |||
try: | |||
arq = open(Controle, "a+") | |||
arq.writelines('\n'+texto) | |||
arq.close() | |||
except IOError: | |||
print("\nErro ao abrir o arquivo!") | |||
def pesquisa(texto): | |||
try: | |||
arq = open(Controle, "r") | |||
controle = {} | |||
for i in arq.readlines(): | |||
t = eval(i) | |||
if t['reagente'] == texto: | |||
controle = t | |||
return controle | |||
arq.close() | |||
except: | |||
pass | |||
while(True): | |||
print("\n Bem vindo ao Controle de Estoque, escolha uma das opções apresentadas abaixo:") | |||
print(80*"=") | |||
print("1: Cadastrar um novo reagente") | |||
print("2: Alterar dados de um reagente já cadastrado") | |||
print("3: Listar todos os reagentes cadastrados") | |||
print("4: Deletar reagente cadastrado") | |||
print("5: Atualizar volume de reagente já cadastrado") | |||
print("6: Listar o consumo dos reagentes") | |||
print("7: Repor reagente consumido") | |||
print("8: Listar reposições") | |||
print("9: Sair do programa") | |||
print(80*"=") | |||
op_escolhida = int(input("Digite o número referente a opção escolhida, por favor:")) | |||
if op_escolhida == 1: | |||
controle_estoque = {} | |||
a = int(input("Digite o número de reagentes líquidos a serem cadastrados: ")) | |||
for i in range(a): | |||
reagente = input("Digite o nome do reagente líquido: ") | |||
if pesquisa(reagente): | |||
print('Reagente já cadastrado, tente novamente!') | |||
else: | |||
volume_total = float(input("Digite o volume total do reagente líquido(mL): ")) | |||
volume_limite = float(input("Digite o valor limite para o reagente líquido(mL): ")) | |||
while(True): | |||
if (volume_limite >= volume_total): | |||
print("Valor limite inválido, tente novamente!") | |||
volume_limite = float(input("Digite o valor limite para o reagente líquido(mL): ")) | |||
else: | |||
break | |||
controle_estoque["reagente"] = reagente | |||
controle_estoque["volume_total"] = volume_total | |||
controle_estoque["volume_limite"] = volume_limite | |||
escrever_linhas(str(controle_estoque)) | |||
print("\nReagente cadastrado com sucesso!") | |||
elif op_escolhida == 2: | |||
alterar = input("Digite o nome do reagente a ser alterado: ") | |||
# Buscar nome digitado no arquivo Controle | |||
if True: | |||
for i in controle_estoque(): | |||
controle = input().split(" ") | |||
controle_estoque["reagente"], controle_estoque["volume_total"], controle_estoque["volume_limite"] = controle | |||
if controle_estoque["reagente"] == alterar: | |||
novo_reagente = input("Digite um novo nome para o reagente: ") | |||
controle_estoque["reagente"] = novo_reagente | |||
print("Deseja mudar o volume total e limite desde reagente? ") | |||
resposta = input("Digite S para sim e N para não: ") | |||
if resposta == "S": | |||
novo_total = float(input("Digite o novo volume total: ")) | |||
novo_limite = float(input("Digite o novo valor limite: ")) | |||
controle_estoque["volume_total"] = novo_total | |||
controle_estoque["volume_limite"] = novo_limite | |||
print("Alterações no nome e nos volumes do reagente feitas com sucesso!") | |||
elif resposta != "N": | |||
print("Caractere inválido tente novamente") | |||
else: | |||
pass | |||
else: | |||
escrever_linhas(str(controle_estoque)) | |||
print("\nAlteração feita com sucesso!") | |||
if False: | |||
print("O reagente ainda não foi cadastrado!") | |||
elif op_escolhida == 3: | |||
print("Todos os reagentes já cadastrados no programa: ") | |||
def ler_arquivo (): | |||
try: | |||
arq = open(Controle, "r+") | |||
for i in arq.readlines(): | |||
print(Controle) | |||
arq.close() | |||
except IOError: | |||
print("\nArquivo não encontrado!") | |||
ler_arquivo() | |||
elif op_escolhida == 4: | |||
deletar = input("Digite o nome do reagente a ser deletado: ") | |||
####Pesquisar no arquivo de Controle pelo nome digitado, if True apagar, if False print("\nReagente não encontrado!) | |||
while(True): | |||
if deletar == reagente: | |||
del controle_estoque["reagente"] | |||
print("\nO reagente foi deletado com sucesso!") | |||
else: | |||
print("Reagente não encontrado, tente novamente!") | |||
break | |||
elif op_escolhida == 5: | |||
def escrever_linhas (texto): | |||
try: | |||
arq1 = open(Consumo, "a+") | |||
arq1.writelines('\n'+texto) | |||
arq1.close() | |||
except IOError: | |||
print("\nErro ao abrir o arquivo!") | |||
def pesquisa(texto): | |||
try: | |||
arq1 = open(Consumo, "r") | |||
consumo = {} | |||
for i in arq.readlines(): | |||
t = eval(i) | |||
if t['reagente'] == texto: | |||
controle = t | |||
return controle | |||
arq1.close() | |||
except IOError: | |||
print("\nErro ao abrir o arquivo!") | |||
consumo = {} | |||
atualizar = input("Digite o nome do reagente a ser atualizado: ") | |||
###Mecanismo de busca para ver se existe o nome do reagente atualizado se sim recuperar o nome e os volumes cadastrados para o mesmo | |||
if True: | |||
volume_gasto = float(input("Digite o volume gasto para o reagente: ")) | |||
volume_total = volume_total - volume_gasto | |||
if volume_total <= volume_limite: | |||
print("Limite atingido, por favor realize reposição!") | |||
else: | |||
pass | |||
print("\nVolume atualizado com sucesso!") | |||
consumo["consumo"] = volume_gasto | |||
###No arquivo consumo só salva o volume gasto cadastrado para o reagente pesquisado | |||
escrever_linhas(str(consumo)) | |||
###Atualiza o volume_total antes cadastrados para o reagente pesquisado | |||
escrever_linhas(str(controle_estoque)) | |||
if False: | |||
print("Reagente não encontrado, tente novamente!") | |||
elif op_escolhida == 6: | |||
print("Todos os consumos já registrados no programa: ") | |||
def ler_arquivo (): | |||
try: | |||
arq1 = open(Consumo, "r+") | |||
for i in arq.readlines(): | |||
print(consumo) | |||
arq1.close() | |||
except IOError: | |||
print("\nNenhum consumo registrado!") | |||
elif op_escolhida == 7: | |||
def escrever_linhas (texto): | |||
try: | |||
arq2 = open(Reposição, "a+") | |||
arq2.writelines('\n'+texto) | |||
arq2.close() | |||
except IOError: | |||
print("\nErro ao abrir o arquivo!") | |||
def pesquisa(texto): | |||
try: | |||
arq2 = open(Reposição, "r+") | |||
reposição = {} | |||
for i in arq.readlines(): | |||
t = eval(i) | |||
if t['reagente'] == texto: | |||
controle = t | |||
return controle | |||
arq2.close() | |||
except IOError: | |||
print("\nErro ao abrir o arquivo!") | |||
resposição={ } | |||
repor = input("Digite o nome do reagente a ser reposto: ") | |||
###Pesquisar no arquivo Controle o nome e o volume totoal do reagente digitado, caso seja encontrado: | |||
novo_volume = float(input("Digite o volume a ser reposto: ")) | |||
volume_total = novo_volume | |||
###Automaticamente o volume_total para o reagente em reposição deve ser atualizado no arquivo Controle e o novo_volume salvo no arquivo Reposição | |||
print("\nReagente reposto com sucesso!") | |||
reposição["reposição"] = novo_volume | |||
escrever_linhas(str(reposição)) | |||
if False: | |||
print("\nReangente não encontrado, tente novamente!") | |||
elif op_escolhida == 8: | |||
print("Todas reposição já registradas no programa: ") | |||
def ler_arquivo (): | |||
try: | |||
arq2 = open(Reposição, "r+") | |||
for i in arq.readlines(): | |||
print(reposição) | |||
arq.close() | |||
except IOError: | |||
print("\nNenhuma reposição ainda foi realizada!") | |||
arq2.close() | |||
elif op_escolhida == 0: | |||
pesquisa(input()) | |||
elif op_escolhida == 9: | |||
break | |||
</syntaxhighlight><br> | |||
= Escopo = | = Escopo = | ||
* Objetivo da aplicação | * Objetivo da aplicação | ||
Edição das 01h00min de 24 de junho de 2016
Código
<syntaxhighlight lang="python3">
Controle = "controle_de_estoque.txt"
Consumo = "consumo_reagente.txt"
Reposição = "reposição_reagente.txt"
def escrever_linhas (texto):
try:
arq = open(Controle, "a+")
arq.writelines('\n'+texto)
arq.close()
except IOError:
print("\nErro ao abrir o arquivo!")
def pesquisa(texto):
try:
arq = open(Controle, "r")
controle = {}
for i in arq.readlines():
t = eval(i)
if t['reagente'] == texto:
controle = t
return controle
arq.close()
except:
pass
while(True):
print("\n Bem vindo ao Controle de Estoque, escolha uma das opções apresentadas abaixo:")
print(80*"=")
print("1: Cadastrar um novo reagente")
print("2: Alterar dados de um reagente já cadastrado")
print("3: Listar todos os reagentes cadastrados")
print("4: Deletar reagente cadastrado")
print("5: Atualizar volume de reagente já cadastrado")
print("6: Listar o consumo dos reagentes")
print("7: Repor reagente consumido")
print("8: Listar reposições")
print("9: Sair do programa")
print(80*"=")
op_escolhida = int(input("Digite o número referente a opção escolhida, por favor:"))
if op_escolhida == 1:
controle_estoque = {}
a = int(input("Digite o número de reagentes líquidos a serem cadastrados: "))
for i in range(a):
reagente = input("Digite o nome do reagente líquido: ")
if pesquisa(reagente):
print('Reagente já cadastrado, tente novamente!')
else:
volume_total = float(input("Digite o volume total do reagente líquido(mL): "))
volume_limite = float(input("Digite o valor limite para o reagente líquido(mL): "))
while(True):
if (volume_limite >= volume_total):
print("Valor limite inválido, tente novamente!")
volume_limite = float(input("Digite o valor limite para o reagente líquido(mL): "))
else:
break
controle_estoque["reagente"] = reagente
controle_estoque["volume_total"] = volume_total
controle_estoque["volume_limite"] = volume_limite
escrever_linhas(str(controle_estoque))
print("\nReagente cadastrado com sucesso!")
elif op_escolhida == 2:
alterar = input("Digite o nome do reagente a ser alterado: ")
# Buscar nome digitado no arquivo Controle
if True:
for i in controle_estoque():
controle = input().split(" ")
controle_estoque["reagente"], controle_estoque["volume_total"], controle_estoque["volume_limite"] = controle
if controle_estoque["reagente"] == alterar:
novo_reagente = input("Digite um novo nome para o reagente: ")
controle_estoque["reagente"] = novo_reagente
print("Deseja mudar o volume total e limite desde reagente? ")
resposta = input("Digite S para sim e N para não: ")
if resposta == "S":
novo_total = float(input("Digite o novo volume total: "))
novo_limite = float(input("Digite o novo valor limite: "))
controle_estoque["volume_total"] = novo_total
controle_estoque["volume_limite"] = novo_limite
print("Alterações no nome e nos volumes do reagente feitas com sucesso!")
elif resposta != "N":
print("Caractere inválido tente novamente")
else:
pass
else:
escrever_linhas(str(controle_estoque))
print("\nAlteração feita com sucesso!")
if False:
print("O reagente ainda não foi cadastrado!")
elif op_escolhida == 3:
print("Todos os reagentes já cadastrados no programa: ")
def ler_arquivo ():
try:
arq = open(Controle, "r+")
for i in arq.readlines():
print(Controle)
arq.close()
except IOError:
print("\nArquivo não encontrado!")
ler_arquivo()
elif op_escolhida == 4:
deletar = input("Digite o nome do reagente a ser deletado: ")
####Pesquisar no arquivo de Controle pelo nome digitado, if True apagar, if False print("\nReagente não encontrado!)
while(True):
if deletar == reagente:
del controle_estoque["reagente"]
print("\nO reagente foi deletado com sucesso!")
else:
print("Reagente não encontrado, tente novamente!")
break
elif op_escolhida == 5:
def escrever_linhas (texto):
try:
arq1 = open(Consumo, "a+")
arq1.writelines('\n'+texto)
arq1.close()
except IOError:
print("\nErro ao abrir o arquivo!")
def pesquisa(texto):
try:
arq1 = open(Consumo, "r")
consumo = {}
for i in arq.readlines():
t = eval(i)
if t['reagente'] == texto:
controle = t
return controle
arq1.close()
except IOError:
print("\nErro ao abrir o arquivo!")
consumo = {}
atualizar = input("Digite o nome do reagente a ser atualizado: ")
###Mecanismo de busca para ver se existe o nome do reagente atualizado se sim recuperar o nome e os volumes cadastrados para o mesmo
if True:
volume_gasto = float(input("Digite o volume gasto para o reagente: "))
volume_total = volume_total - volume_gasto
if volume_total <= volume_limite:
print("Limite atingido, por favor realize reposição!")
else:
pass
print("\nVolume atualizado com sucesso!")
consumo["consumo"] = volume_gasto
###No arquivo consumo só salva o volume gasto cadastrado para o reagente pesquisado
escrever_linhas(str(consumo))
###Atualiza o volume_total antes cadastrados para o reagente pesquisado
escrever_linhas(str(controle_estoque))
if False:
print("Reagente não encontrado, tente novamente!")
elif op_escolhida == 6:
print("Todos os consumos já registrados no programa: ")
def ler_arquivo ():
try:
arq1 = open(Consumo, "r+")
for i in arq.readlines():
print(consumo)
arq1.close()
except IOError:
print("\nNenhum consumo registrado!")
elif op_escolhida == 7:
def escrever_linhas (texto):
try:
arq2 = open(Reposição, "a+")
arq2.writelines('\n'+texto)
arq2.close()
except IOError:
print("\nErro ao abrir o arquivo!")
def pesquisa(texto):
try:
arq2 = open(Reposição, "r+")
reposição = {}
for i in arq.readlines():
t = eval(i)
if t['reagente'] == texto:
controle = t
return controle
arq2.close()
except IOError:
print("\nErro ao abrir o arquivo!")
resposição={ }
repor = input("Digite o nome do reagente a ser reposto: ")
###Pesquisar no arquivo Controle o nome e o volume totoal do reagente digitado, caso seja encontrado:
novo_volume = float(input("Digite o volume a ser reposto: "))
volume_total = novo_volume
###Automaticamente o volume_total para o reagente em reposição deve ser atualizado no arquivo Controle e o novo_volume salvo no arquivo Reposição
print("\nReagente reposto com sucesso!")
reposição["reposição"] = novo_volume
escrever_linhas(str(reposição))
if False:
print("\nReangente não encontrado, tente novamente!")
elif op_escolhida == 8:
print("Todas reposição já registradas no programa: ")
def ler_arquivo ():
try:
arq2 = open(Reposição, "r+")
for i in arq.readlines():
print(reposição)
arq.close()
except IOError:
print("\nNenhuma reposição ainda foi realizada!")
arq2.close()
elif op_escolhida == 0:
pesquisa(input())
elif op_escolhida == 9:
break
</syntaxhighlight>
Escopo
- Objetivo da aplicação
- O presente projeto visa desenvolver um programa o qual tem como principal objetivo realizar o controle de estoque dos reagentes líquidos presentes em um laboratório biológico, de modo assim a esboçar a necessidade ou não de reposição de tais reagentes de acordo com sua utilização. No primeiro momento de implementação deste sistema, seria necessário realizar o cadastramento dos reagentes no programa, para isto o utilizador digitaria o nome e o volume total descritos pelo rótulo do reagente em questão. Posteriormente a este cadastro, o programa irá solicitar ao seu utilizador que digite um volume crítico para o reagente, pois será por meio deste valor que futuramente o sistema lançará uma nota de aviso solicitando a reposição do mesmo. É importante ressaltar que este processo será repetido até que todos os reagentes do laboratório sejam cadastros.
- Em um segundo momento, o programa já estará disponível para aplicação, de modo que a cada utilização de um determinado reagente, os utilizadores devem acessar o programa, buscar pelo nome do reagente que foi utilizado e acrescentar o volume gasto, é importante que nesta etapa não haja omissões para garantir assim o bom funcionamento do sistema. Automaticamente, o programa irá descontar do volume total cadastrado está fração que foi utilizada, de modo que quando atingir-se o volume estabelecido como crítico para aquele reagente o sistema lançará ao utilizador a seguinte mensagem “O reagente X atingiu o seu valor limite, por favor realize a sua reposição e atualize o cadastro do mesmo”, onde X refere-se ao nome que foi descrito na etapa de cadastramento. Sendo assim, o utilizador deverá repor o reagente em questão e novamente atualizar o cadastro do mesmo, contudo nesta etapa não sendo necessário adicionar novamente o nome do reagente e sim apenas o novo volume total.
Entradas
- O que o sistemas receberá de dados?
- Nome dos reagentes líquidos
- Volume total dos reagentes líquidos
- Volume crítico de cada um dos reagentes líquidos
- Volume gasto para um determinado reagente líquido após sua utilização.
Saídas
- O que será gerado de resultado impresso?
• Mensagem de cadastramento realizado com sucesso
• Mensagem de atualização do volume do reagente líquido feita com sucesso
• Mensagem de alerta para reposição do reagente líquido.
Armazenamento
- O que será gravado em arquivo?
• Nome dos reagentes líquidos
• Volume total dos reagentes líquidos
• Volume crítico de cada um dos reagentes líquidos
• Volume gasto para um determinado reagente líquido após sua utilização
Cálculos
- O que será processado?
• Subtração entre o volume total cadastrado para um dado reagente líquido e o primeiro volume gasto para o mesmo
• Subtração entre o volume anteriormente gasto para um dado reagente líquido e o novo volume gasto para este mesmo reagente
Desenvolvedores
- Filipe Cruz Naves,
- Géssyca Ferreira Gomes,
- Jéssica Pereira de Oliveira e
- Luiz Felipe Dias dos Santos Costa