Código
<syntaxhighlight lang="python3">
Arquivo = "lista_contatos.txt" # Nome do arquivo
def ler_arquivo(): # Função que le o arquivo de texto
try: # Tratamento de erro
arq = open(Arquivo,"r+") # Abre o arquivo para leitura
print( '\n'+arq.read() ) # Quebra linha e mostra o conteudo
arq.close() # Fecha o arquivo
except IOError: # Tratamento de erro
print('\nArquivo não encontrado!')
def escrever_linhas(texto): # Função que le e escreve no arquivo
try: # Tratamento de erro
arq = open(Arquivo,"a+") # Abre o arquivo para gravação no final do arquivo
arq.writelines('\n'+texto) # Escreve no arquivo o parametro 'texto'
arq.close() # Fecha o arquivo
print('\nLinha gravada com sucesso')
except IOError: # Tratamento de erro
print('\nErro ao abrir o arquivo!') # Mostra na tela uma mensagem de erro
def pesquisar_contato(nome):
try:
arq = open(Arquivo, "r+")
dicionario = {'nome':, 'telefone':, 'email':}
achei = False
# lógica ler arquivo e comparar nome
for cont, s in enumerate(arq.readlines()):
dicionario['nome'], dicionario['telefone'],dicionario['email'] = s.split(' - ')
if dicionario['nome'] == nome:
print(cont)
print('Nome: %s'% dicionario['nome'])
print('Telefone: %s'% dicionario['telefone'])
print('Email: %s'% dicionario['email'])
achei = True
if not achei:
print('Não existe %s' % (nome))
# se achou imprime, se não mostra uma mensagem de nao encontrado
arq.close
except IOError:
print('\nContato não encontrado')
def excluir_contatos():
try:
arq =open('lista_contatos.txt','r+')
valores = arq.readlines()
l = []
splited =[]
nome = input('Entre com um nome:')
for x in valores:
splited=x.split(' - ')
if splited[0]==nome:
pass
else:
l.append(splited)
arq.close()
novo_cadastro(l)
except:
print('erro')
def novo_cadastro(l):
arq = open(Arquivo,'w')
for x in l:
#print("Nome:%s | Telefone:%s | Email:%s"%(x[0],x[1],x[2]))
arq.write("%s - %s - %s" %(x[0],x[1],x[2]))
arq.close()
while(True):
print('\n Opcões:')
print(' ')
print('1 - Cadastrar contato')
print('2 - Listar dados')
print('3 - Pesquisar contato')
print('4 - Excluir contato')
print('9 - Sair')
print(' ')
Op = int(input('Digite a opção desejada:')) # Entrada da opcao pelo teclado
if Op == 1: # Se a opcao for 1
nome = input('\nDigite o nome do contato:') # Entrada do nome pelo teclado
fone = input('Digite o número do telefone:')# Entrada do telefone pelo teclado
email = input('Digite o email:') # Entrada do telefone pelo teclado
contato = (nome+' - '+fone+' - '+email) # Recebe o nome + o telefone
escrever_linhas(str(contato)) # Chama a função que grava em arquivo
elif Op == 2: # Se a opcao for 2
ler_arquivo() # Chama a função que le o arquivo
elif Op == 9: # Se a opcao for 0
break # Quebra o laço infinito
elif Op == 3:
nome = input("Digite o nome: ")
pesquisar_contato(nome)
elif Op == 4:
#nome = input ("Digite o nome: ")
excluir_contatos()
</syntaxhighlight>
Escopo
- Objetivo da aplicação
- Escopo: Programa visa esclarecer e organizar um controle de estoque de banco de sangue, onde ele organiza qual tipo sanguíneo o paciente possui e visualiza pro profissional que estiver o atendendo qual tipo sanguíneo ele poderá receber transfusão, pois esse programa deve ser usado em locais onde necessita de uma resposta rápida de como esta o estoque, pois caso não tenha as bolsas de sangue necessária outras medidas deverão ser tomadas.O tipo sanguíneo de uma pessoa define muitas coisas além da doação de sangue e quando a pessoa for receber sangue de alguém também é muito importante.
Entradas
- O programa primeiramente quando se abrir perguntara que profissional está o abrindo para direcionar para cada função e limitação de função dentro do programa, quanto a medico ou técnico pois o medico pode visualizar as bolsas disponíveis e ver qual o paciente precisa, já o técnico mostra as bolsas disponíveis e perguntar se quer alterar os dados mostra as quantidades e permite a alteração
Saídas
- As saídas serão as respostas que ele virá a retornar como as compatibilidades de transfusão sanguínea ligadas a quantidade disponível no estoque, pois se estiver tudo certo automaticamente a equipe que estiver gerenciando já reservara a quantidade necessária para o paciente fazer a transfusão.
Armazenamento
- O programa possui arquivos que guardam a quantidade de bolsas disponíveis e a sua tipagem e também arquivo com lista de pacientes e tipo sanguíneo que estão na fila de espera.
Cálculos
- Os cálculos que são feitos são das probabilidades de transfusão que é feita cruzando as compatibilidades do tipo do sangue do paciente com as que possui armazenadas no estoque.
Desenvolvedores
Rener Mateus
Vanessa Martins
Warlley K.
Tayane Fontes
Joice Farinha