Etiqueta: visualeditor
Sem resumo de edição
Etiqueta: visualeditor
 
(2 revisões intermediárias por 2 usuários não estão sendo mostradas)
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
Linha 15: Linha 118:


= Armazenamento =
= 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.
* 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.
<br>
<br>



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