Jorgelro (discussão | contribs)
Sem resumo de edição
Jorgelro (discussão | contribs)
Linha 23: Linha 23:


= Softwares =
= Softwares =
Descrever os softwares usados para esta finalidade. Detalhar, se existir, linguagens, banco de dados e frameworks.  
<br>
Descrever os softwares usados para esta finalidade. Detalhar, se existir, linguagens, banco de dados e frameworks.


= Código =
= Código =

Edição das 20h11min de 14 de outubro de 2017

Conceito 


Gerência de projetos é a aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto a fim de atender aos seus requisitos.


São utilizados os seguintes grupos de processos :

-Iniciação; -Planejamento; -Execução; -Monitoramento e Controle; -Encerramento;

-Iniciação: Desenvolver o plano do projeto; Identificar os stakeholders (todas as pessoas que podem ser afetadas pelo projeto, de forma direta ou indireta, positiva ou negativamente.

-Planejamento: Plano de gerenciamento do projeto; Coletar requerimentos; Definir escopo; Definir e sequenciar as atividades; Estimar as atividades por recurso e duração; Cronograma; Estimar os custos; Plano de qualidade; Plano de Recursos Humanos; Plano de Comunicações; Plano Riscos e Plano de aquisições.

-Execução: Dirigir e gerenciar a execução do projeto; Executar a garantia de qualidade; Montar a equipe; Desenvolver e gerenciar a equipe; Distribuir as informações; Gerenciar as expectativas dos stakeholders e Conduzir os professos de aquisições.

-Monitoramento e Controle: Monitorar e controlar o trabalho; Verificar o escopo; Controlar o escopo; Controlar o cronograma; Controlar os custos; Controle de qualidade; Reportar o andamento dos projetos; Monitorar e controlar os riscos e Administrar as aquisições.

-Encerramento: Encerrar o projeto ou fase e Encerrar os projetos de aquisição.

Softwares


Descrever os softwares usados para esta finalidade. Detalhar, se existir, linguagens, banco de dados e frameworks.

Código

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()
Dar um exemplo de um código-fonte que mostre alguma parte da aplicação final. O código deverá ser curto mas que o leitor consiga enxergar para que serve. Pode-se usar comentários no programa.

Diagrama de Casos de Uso

Desenhar ou plotar  os requisitos funcionais de uma aplicação.

Interações com as tecnologias

Incluir links (internos ou externos) temas que tem relação com este, explicando detalhes sobre. Limite de 3 internos e 2 externos.

Informações adicionais

Descrever detalhes a mais sobre esse tema.

Referências bibliográficas

Relacionar aqui as referências bibliográficas no padrão ABNT. 
Bases de procura: Artigos, publicações acadêmicas, revistas e sites de fornecedores