Sem resumo de edição Etiqueta: visualeditor |
Sem resumo de edição Etiqueta: visualeditor |
||
| (Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
| Linha 1: | Linha 1: | ||
= Código = | |||
<br><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><br> | |||
= Escopo = | = Escopo = | ||
* Objetivo da aplicação | * Objetivo da aplicação | ||
Edição atual tal como às 21h33min de 26 de junho de 2016
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