1 UNIVERSIDADE PAULISTA DIOGO MUNIZ SANTOS BARRETO FERNANDO ROCHA GONÇALVES FELIPE DOS ANJOS ALMEIDA LUIZ HENRIQUE WILLIAN MARQUES DIAS SISTEMA PARA CAIXA ELETRÔNICO BANCÁRIO SÃO PAULO 2014 2 DIOGO MUNIZ SANTOS BARRETO FERNANDO ROCHA GONÇALVES FELIPE DOS ANJOS ALMEIDA LUIZ HENRIQUE WILLIAN MARQUES DIAS SISTEMA PARA CAIXA ELETRÔNICO BANCÁRIO Trabalho de conclusão do II semestre de graduação de Analise e Desenvolvimento de Sistema apresentado à Universidade Paulista UNIP. Orientador: prof. Marco Antonio Gomes SÃO PAULO 2014 3 AUTOR (NOME COMPLETO): Titulo: Subtítulo: Local: Data (ano de defesa): Tipo de ilustrações: ( ) figuras ( ) gráficos ( ) fotografias ( ) mapas ( ) formulários ( ) plantas Nº de folhas: ( ) transparências ( ) quadros ( ) tabelas ( ) outros: Coloridas? ( ) sim ( ) não Qual fonte utilizada no trabalho? ( ) Times New Roman ( ) Arial CURSO: Nível: ( ) Graduação ( ) Especialização ( ) Mestrado ( ) Doutorado Área de concentração (Especificar em qual área do seu curso está relacionado o seu tema): Anexo (material que acompanha a obra, porém externo à obra): ( ) CD-ROM ( ) OUTROS: ( ) FOLDER ( ) FOTO Orientador (nome completo): INSTITUTO: PALAVRAS-CHAVES : (INDICAR, NO MÍNIMO, 3 TERMOS) E-MAIL: |TELEFONE: R.A.: | CAMPUS: R.A.: |CAMPUS: R.A.: | CAMPUS: R.A.: | CAMPUS: R.A.: | CAMPUS: ( ) DVD 4 DIOGO MUNIZ SANTOS BARRETO FERNANDO ROCHA GONÇALVES FELIPE DOS ANJOS ALMEIDA LUIZ HENRIQUE WILLIAN MARQUES DIAS SISTEMA PARA CAIXA ELETRÔNICO BANCÁRIO Desenvolver um sistema de caixa eletrônico bancário em linguagem C Trabalho de conclusão do II semestre de graduação de Analise e Desenvolvimento de Sistema apresentado à Universidade Paulista UNIP. Aprovado em: BANCA EXAMINADORA ______________________/__/___ Prof. Nome do Professor Universidade Paulista – UNIP _______________________/__/___ Prof. Nome do Professor Universidade Paulista – UNIP _______________________/__/___ Prof. Nome do Professor 5 RESUMO Desenvolver um sistema de gerenciamento de transações bancárias usando técnicas de programação C e conhecimentos de infra-estrutura física e lógica, adquiridos durante este semestre. Tais como lógica de programação, topologias de rede, protocolos, portas de entrada e saída, matemática financeira e engenharia de software. Palavras-chave: Infra-Estrutura, Linguagem C, Protocolos, Redes, Terminal. 6 ABSTRACT Develop a management transaction bank system using C programming, physical infrastructure and logical skills and knoweledges acquired during this semester, as well as programming logic, network topologies, protocols, input and output ports, financial mathematics and software engineering. Keywords: C language, Infrastructure, Terminal 7 LISTA DE ILUSTRAÇÕES IMAGEM 1 - Verificação de Usuário ...................................................................................14 IMAGEM 2 - Menu de Operações.........................................................................................14 IMAGEM 3 - Sacar Valor......................................................................................................15 IMAGEM 4 - Consulta de Saldo............................................................................................15 IMAGEM 5 - Consultar de Extrato........................................................................................16 IMAGEM 6 - Transferência...................................................................................................16 IMAGEM 7 - Fluxograma do sistema...................................................................................17 IMAGEM 8 - Sprint................................................................................................................21 IMAGEM 9 - Ambiente gráfico do Ubuntu............................................................................23 IMAGEM 10 - Processador AMD Phenon II X4....................................................................25 IMAGEM 11 - Disco rígido.....................................................................................................26 IMAGEM 12 - Memória RAM.................................................................................................27 IMAGEM 13 - acessibilidade do terminal.............................................................................29 IMAGEM 14 - Placa de Rede..................................................................................................30 IMAGEM 15 - Cabo par trançado.............................................................................................31 IMAGEM 16 - Topologia Estrela............................................................................................22 IMAGEM 17 - Switch.............................................................................................................22 LISTA DE TABELAS TABELA TABELA TABELA TABELA TABELA 1 2 3 4 5 - Sistema Operacional.......................................................................23 Especificações do Monitor.............................................................23 Especificações da Placa Mãe..........................................................25 Especificações do HD....................................................................26 Especificações da Memória RAM..................................................27 8 SUMARIO LISTA DE ILUSTRAÇÕES ................................................................................................................................. 7 LISTA DE TABELAS .......................................................................................................................................... 7 2.1 A ARTE DO CAIXA ELETRÔNICO.......................................................................................................10 2.1.1 O que é ? ....................................................................................................................................................... 10 2.1.2 Como Funciona ............................................................................................................................................. 11 2.1.3 História.......................................................................................................................................................... 11 2.2 FUNCIONAMENTO DO SISTEMA ........................................................................................................12 2.2.1 O sistema ...................................................................................................................................................... 12 2.2.2 Funções do sistema ...................................................................................................................................... 13 2.2.2.1 Verificação de Usuário e Segurança .......................................................................................................... 13 2.2.2.2 Depositar .................................................................................................................................................. 13 2.2.2.3 Sacar ......................................................................................................................................................... 14 2.2.2.4 Consultar Saldo ........................................................................................................................................ 14 2.2.2.4 Consultar Extrato ..................................................................................................................................... 15 2.2.2.4 Transferência ........................................................................................................................................... 15 2.2.3 Funcionamento ............................................................................................................................................. 15 2.2.3.1 Como Funciona ........................................................................................................................................ 15 2.2.3.2 Segurança ................................................................................................................................................. 16 2.2.4 Layout ......................................................................................................................................................... 17 2.2.5 Processo de desenvolvimento do sistema ................................................................................................... 17 2.3 SOFTWARE ...............................................................................................................................................21 2.3.1 Sistema Operacional .................................................................................................................................... 21 2.4 HARDWARE DO TERMINAL ................................................................................................................22 2.4.2 Placa mãe ..................................................................................................................................................... 22 2.4.4 Disco Rígido................................................................................................................................................... 25 2.4.5 Memória RAM............................................................................................................................................... 26 2.4.6 O Terminal ................................................................................................................................................... 27 IMAGEM 13 - ACESSIBILIDADE DO TERMINAL FONTE: POR WILLIAN MARQUES ..................28 2.5 REDE E INFRA-ESTRUTURA .............................................................................................................................. 28 2.6 Aplicação das Disciplinas no Projeto ............................................................................................................... 32 2.6.1 Fundamento de sistemas operacionais ........................................................................................................ 32 2.6.2 Organização de computadores ..................................................................................................................... 32 2.6.3 Princípio de sistema de informação ............................................................................................................. 32 2.6.4 Estatística ...................................................................................................................................................... 32 2.6.5 Lógica ............................................................................................................................................................ 32 2.6.6 Desenvolvimento Sustentável ...................................................................................................................... 33 2.6.7 Matemática para Computação ..................................................................................................................... 33 2.6.8 Linguagem e técnicas de programação ........................................................................................................ 33 2.6.9 Fundamentos de Rede, Dados e Comunicação ............................................................................................ 33 2.6.10 Engenharia de Software I ............................................................................................................................ 33 2.6.11 Metodologia Científica................................................................................................................................ 33 2.7 IMAGENS ...................................................................................................................................................34 2.8 TABELAS ....................................................................................................................................................37 TABELA 3 - ESPECIFICAÇÕE DA PLACA MÃE ........................................................................................37 III. CONCLUSÃO ..............................................................................................................................................39 REFERÊNCIAS ..................................................................................................................................................39 9 I Introdução O terminal tem como finalidade fornecer a todos os usuários que possuam credenciais válidas ações básicas de um sistema de caixa bancário eletrônico, tais como saques, depósitos, consultas e transferências através de um sistema seguro e amigável. 10 II . DESENVOLVIMENTO 2.1 A Arte do Caixa Eletrônico 2.1.1 O que é ? Um Caixa Automático, Caixa Eletrônico ou ATM - do inglês Automatic Teller Machine - nada mais é que um meio criado pelos bancos para facilitar as transações bancárias, no caixa automático o cliente é responsável por toda a operação dessa maneira os custos de transação das ATMs são mais baratos do que aqueles realizados na boca do caixa. Em um caixa automático completo, podem-se emitir cédulas, imprimir extratos, efetuar depósitos e transferências e outros serviços como, pagamentos de contas, contratarem serviços e etc. Sua operação é controlada por um microprocessador, mas algumas tarefas, como a identificação de um cliente, a verificação do saldo de uma conta e a emissão de instruções para praticas transações são realizadas através de uma conexão de cabos por um computador localizado na central da empresa administradora do caixa. Os caixas eletrônicos são compostos por: Tela, Botões, Leitor do Cartão, Teclado, Impressora, Emissor de dinheiro, Alto-falante, Ranhura para efetuar o depósito, Microprocessador, Cartão Controlador e Compartimento para o dinheiro. Atualmente os terminais utilizam Windows XP como sistema operacional, porém, como a Microsoft deixou de dar suporte a esse sistema, muitos bancos estão migrando para o Windows 7, o que em alguns bancos mais antigos, como por exemplo alguns dos EUA, pois, o equipamento não é compatível para utilizar essa versão do Windows. Alguns bancos hoje já adotam o uso de sistema operacional livre, ou seja, que não precisa pagar por licença, por exemplo o Banco do Brasil, que no final do ano de 2007 começaram a migrar o sistema operacional, e a Caixa Econômica Federal, ambos utilizam hoje o Linux em seus terminais de caixa eletrônicos. Até os anos 60 os caixas eletrônicos utilizavam para realizar a tarefas requeridas pelo usuários, cupons ou fichas, com o passar do tempo a tecnologia utilizada nos caixas foram evoluindo e possibilitou o uso de cartões magnéticos e cartões inteligentes. Cartões Inteligentes 11 Um cartão inteligente contém um chip de circuito integrado que lhe fornece capacidade computacional e memória. A informação que o cartão contém está protegida por avançados dispositivos de segurança. Um cartão inteligente de contato é utilizado inserindoo num leitor em que as superfícies de contato do cartão unem a conectores elétricos, o que possibilita a transferência da informação. São Compostos por: contato, chip, cola, suporte de plástico e corpo do cartão. Cartões de fitas magnéticas Os cartões de crédito, de caixas automáticos e de acesso operam por maio de uma fita magnética em seu verso com cerca de 200 bytes de informação. Cada bit de informação aparece na fita como um par de domínios magnéticos. Um par de domínios que apontam na mesma direção representa um “0”; os que apontam em direções opostas representam um “1”. São compostos por: Fita magnética (Bit de informação armazenada, Domínio), Núcleo de ferro, Bobina e Impulsos de Corrente. 2.1.2 Como Funciona O usuário ao inserir o cartão no caixa eletrônico, será feita uma leitura do contato do cartão no qual possui as informações da conta do usuário armazenadas na tarja magnética. Após realizada a leitura, o leitor transmite ao processador do caixa eletrônico que irá realizar o processamento desses dados e verificar a autenticação do usuário mediante uma senha pessoa, para liberar o acesso a máquina. Realizada a autenticação do usuário, o caixa irá conectar-se á um servidor do banco por meio de uma linha telefônica, será o servidor que irá autorizar ou não o uso do usuário, se sim, será executada tarefas que o usuário irá passar, como sacar, depositar, exibir extratos e etc, e conforme for executando as tarefas, irá atualizando as informações da conta do usuário no servidor, como valores, datas, senhas e etc. 2.1.3 História Os primeiros caixas eletrônicos foram criados na década de 30, mas o sistema só ficou eficiente e seguro nos anos 60, mais precisamente no dia 27 de junho de 1967, pela empresa 12 britânica De La Ruee foi instalado num bairro no norte da Grande Londres pelo banco britânico Barclays, ao qual inaugurou o primeiro ATM, sigla pela qual o equipamento é internacionalmente conhecido e que significa Automated Teller Machine (ou “máquina de caixa automático”). O ATM permitia retirar dinheiro e verifiquem o balanço de suas contas bancárias sem a necessidade de um funcionário do banco. NO BRASIL Na década de 80, mais precisamente em julho de 1983, Curitiba ganhou o primeiro posto do Banco 24 Horas. O Banco Eletrônico Itaú e o Bradesco Instantâneo já vinham funcionando desde 1981 e 1982, respectivamente, em outras praças. Mas foi o surgimento da rede de quiosques alaranjados – formada por uma sociedade de grandes bancos brasileiros – que popularizou o auto-atendimento bancário no Brasil. Nas últimas décadas, dois fatores influenciaram de forma relevante a arquitetura bancária brasileira: tecnologia e segurança. Sob a luz da tecnologia, a automação bancária brasileira ganhou força a partir da década de 60, quando os serviços administrativos do interior das agências começaram a ser informatizados. Na década de 70 ocorreram as primeiras experiências de instalação de agências on-line. A década de 80 marcou o início do auto-atendimento bancário com os terminais de caixa on-line e terminais de clientes oferecendo saldos e extratos de conta corrente, todas feitas em tempo real. Instituía-se o conceito de cliente do banco em lugar do cliente de uma agência. Durante a década de 90 consolidaram-se três tipos de automação bancária: automação de agências (terminais de caixa), auto-atendimento (ATM) e homebanking(sucedido pela Internet com a popularização da internet na década de 1990). Com tudo isso, todo esse avanço tecnológico, percebesse que o setor financeiro teve um grande avanço, e com a automação das agências o serviço bancário ficou mais eficiente e rápido, pois aos poucos o conceito de "fila" foi mudando, já que as pessoas deixaram que ficar em uma fila no banco por até 2h (duas horas) e decidiram ceder a tecnologia e gastar menos tempo, utilizando os caixas de auto-atendimento para realizarem suas tarefas bancárias. 2.2 FUNCIONAMENTO DO SISTEMA 2.2.1 O sistema 13 O sistema foi desenvolvido para utilizá-lo em caixas automáticos. Possui funções de operações bancárias, como por exemplo, sacar e depositar, e conta com funções de autenticação de usuário, para manter a segurança no acesso do mesmo. 2.2.2 Funções do sistema 2.2.2.1 Verificação de Usuário e Segurança O sistema possui uma verificação de usuário, onde ele busca o CPF ou CNPJ do usuário, para verificar se o usuário possui conta bancária cadastrada, se no processe de verificação for encontrado cadastro, o sistema exibirá as funções de operação bancária, caso não encontre, será apresentada uma mensagem ao usuário para verificar com a agência bancária se ele possui conta cadastrada. Possui também verificação de bloqueio de conta, onde o sistema faz uma busca através do CPF/CNPJ digitado pelo usuário, e verificar se há algum bloqueio na conta, se houver, o sistema apresentará uma mensagem ao usuário informando que a conta está bloqueada, e não permite o acesso ao menu de operações. Se o usuário possuir conta bancária, o sistema irá pedir que digite a senha da conta, para que possa realizar o login, caso digite a senha mais que três vezes incorreta, a conta será bloqueada, caso contrário, se ele digitar corretamente a senha, será exibido o menu com as opções para realizar as operações bancárias. Imagem 1 – Verificação de Usuário Imagem 2 – Menu de Operações 2.2.2.2 Depositar A função depositar permite que o usuário deposite valores em sua conta, ou seja, armazene uma quantia de dinheiro em sua conta bancária. O sistema informará ao usuário para que digite o valor que será depositado, e logo após digitar o valor e a senha, que será requisitada para realizar a autenticação, o sistema irá processar as informações e armazenará os valores. O valor digitado será armazenado em um arquivo reservado apenas para valores depositados e em outro arquivo que conterá todo o histórico das operações. Esses arquivos 14 estarão dentro de uma pasta no diretório do servidor do banco, por exemplo, do banco Bradesco, Itaú, Santander e etc. Imagem 3 – Depositar Valor 2.2.2.3 Sacar A função sacar permite que o usuário saque valores de sua conta, ou seja, retirar uma quantidade de dinheiro de sua conta bancária. O sistema informará ao usuário para que digite o valor que será sacado, e logo após digitar o valor e a senha, que será requisitada para realizar a autenticação, o sistema irá processar as informações e armazená-las. O valor digitado será armazenado em um arquivo reservado apenas para valores sacados e em outro arquivo que conterá todo o histórico das operações. Esses arquivos estarão dentro de uma pasta no diretório do servidor do banco, por exemplo, do banco Bradesco, Itaú, Santander e etc. Imagem 4 – Sacar Valor 2.2.2.4 Consultar Saldo A função consultar saldo permite que o usuário visualize o valor de saldo de sua conta, ou seja, quanto que há de dinheiro em sua conta. O sistema informará ao usuário para digitar a senha, para realizar a autenticação, com isso o sistema informará ao usuário o valor disponível em as conta. Para exibir o saldo da conta, o sistema irá calcular a soma de todos os valores depositados, cujas informações serão buscadas no arquivo de depósitos, que estará no servidor do banco. Também realizará a soma de todos os valores sacados, cujas informações estarão contidas no arquivo, e também a soma de todos os valores das transferências, cujas informações estarão contidas no arquivo de transferências dentro do mesmo diretório dos arquivos de depósitos e de saques. Logo após será realizado o cálculo do saldo, onde será somado os valores de débitos (saques) e transferências, e subtraído do valor de Crédito. Para podermos compreender de forma mais explicita, abaixo segue a fórmula do cálculo. Saldo = Depósitos – (Saques + Transferências) 15 Imagem - Consulta de Saldo 2.2.2.4 Consultar Extrato A função consultar extrato permite o usuário visualizar um histórico das operações realizadas em sua conta, onde conterá informações dessas operações realizadas, são essas informações: data, horário, valor, origem (podendo ser D- débito, C- crédito, Ttransferência). Também realizará uma consulta de saldo e informará ao usuário o saldo da conta bancária dele. Imagem 5 - Consultar de Extrato 2.2.2.4 Transferência O sistema disponibilizará ao usuário a possibilidade de realizar transferência de valores. O usuário terá que informar o valor que será transferido, a conta, agência e o banco, com esses dados o sistema enviará ao servidor, que ao receber descontará da conta e passar ao banco o pedido, pelo qual darão procedimento de realizar a transferência. Imagem 6 - Transferência 2.2.3 Funcionamento 2.2.3.1 Como Funciona O sistema opera de forma fácil e eficiente, visando sempre a necessidade do usuário e suprir a dificuldades do mesmo. O sistema tem uma tela inicial, onde informará ao usuário algumas informações, dentre elas, requisitará que digite o CPF, que está substituindo o uso do cartão por motivo acadêmicos, mas que pode poderá ser utilizado caso haja necessidade de um terminal de auto atendimento. 16 Após o usuário informar o CPF, o sistema irá verificar se realmente existe a conta, se existir dará continuidade na operação, verificando se há algum bloqueio na conta ou se está disponível, caso contrário, informará que a conta é inexistente e para verificar com a agencia bancária ou tentar novamente, e exibirá um menu com duas opções, onde o usuário poderá escolher encerrar ou tentar novamente, desta forma o sistema irá direcioná-lo para a tela inicial, independente a opção que escolher. Realizando a verificação com sucesso, e o usuário possuir cadastro, o sistema exibirá a tela com o menu das operações bancárias, onde apresentará opções, cada uma com um número, e o usuário informará o número da respectiva operação selecionada. Com isso, o sistema irá processar essa informação e direcionará para realizar a operação desejada. Ao executar a operação, o sistema exibirá duas opções ao usuário, onde ele poderá escolher realizar outra operação (sim), que nesse caso, será direcionado novamente ao menu de operações, ou finalizar (não), onde será direcionado a tela inicial. Na ilustração informada logo abaixo, poderemos ter uma melhor compreensão do funcionamento do sistema, e perceber de forma objetivas seus processos. Imagem 7 - Fluxograma do sistema 2.2.3.2 Segurança O sistema conta com métodos para assegurar que o usuário terá um acesso a sua conta de forma segura. Um deles é a verificação de conta, onde será feita uma busca pelo CPF/CNPJ do usuário, e caso não haja informação de conta existente, o sistema não apresentará o menu de operações bancárias, evitando assim que outras pessoas tem acesso a ele ou mesmo a outros tipos de informações do usuário. Outro método é a verificação de tentativas de confirmar a senha, onde o usuário terá até três tentativas para acertar a senha, caso exceda esse limite de tentativas, a conta será bloqueada e o usuário terá que entrar em contato com a agência bancária, evitando assim que outra pessoa possa ficar diversas vezes tentando confirmar a senha. 17 Além da verificação do cadastro e de tentativas de confirmar a senha, o sistema possui uma verificação de bloqueio, que por meio dela, o sistema saberá se há algum bloqueio na conta ou não, e caso haja, o usuário será informado que sua conta está bloqueada, e não permitirá realizar operações. E nesse caso, o usuário também terá que verificar com a agência bancária, para poder desbloquear a conta. 2.2.4 Layout Desenvolvimento em linguagem C, o layout do sistema é simples, de forma que o usuário possa ter uma melhor compreensão e fácil utilização de suas funções. As telas são todas identificas por títulos da janela, o que possibilita uma melhor localização no sistema. Disponibiliza uma tela de bem vindo, onde o usuário terá visualização de informações como data e hora, para que o usuário possa está atualizado. O menu das operações bancárias será apresentado ao usuário de forma clara e objetiva, tornando a navegação pelo sistema mais fácil, e evitando possíveis dúvidas. 2.2.5 Processo de desenvolvimento do sistema PROCESSO DE SOFTWARE “Segundo Edson J. R. Lobo, os processos de software são atividades ordenadas, normalmente divididas em fases. Eles foram criados em sua maioria para organizar ações em grandes e médios projetos, por isso usam uma sistematização normalmente rígida e pesada. Ou, no caso doas atuais processos, customizáveis. Cada fase de um processo busca manter a integridade e a qualidade do produto final.Controle nos processos de software é rigoroso, pois falhas em uma de suas fases podem acarretar prejuízos altíssimos, este é um dos maiores problemas daqueles processos que não previam mudanças durante o projeto.” (Edson J.R. Lobo – Livro: Curso de Engenharia de Software – Pag. 37 – Capitulo 8 O que é um processo de software – Digerati Books, 2008) Como podemos ver, nosso Ciclo de vida Cascata é formado por processos de software que 18 devem ser seguidos rigorosamente para manter a integridade e a qualidade do produto final, porém, se analisarmos a sequenciados processos deste ciclo de vida, perceberemos que o mesmo é bastante vulnerável a erros, já que sua fase de testes é após o desenvolvimento, dessa forma, a fim de evitar erros, iremos implementar alguns conceitos de metodologia ágil de desenvolvimento de software ao nosso projeto. MÉTODOLOGIA ÁGIL DE DESENVOLVIMENTO DE SOFTWARE Conforme Edson J. R. Lobo, os métodos ágeis de desenvolvimento de software utilizam uma sistematização mais rápida e objetiva para se obter um software. Processos pesados como o modelo em espiral foram caindo em desuso devido a grande necessidade das empresas em desenvolver softwares de forma sistematizada e, ao mesmo tempo, de forma rápida e dinâmica. (Edson J.R. Lobo – Livro: Curso de Engenharia de Software – Pag. 42 – Capitulo 11 Metodologia ágil de desenvolvimento de software – Digerati Books, 2008) Os métodos Ágeis auxiliam no desenvolvimento de sistemas mas que ainda assim necessitam de um prazo maior, já que durante o desenvolvimento ocorrem muitas fases de teste durante do desenvolvimento dos sistemas, análises de riscos, reuniões com clientes, desenvolvimento de protótipos e apresentação ao cliente, além de diversas outras fases. Levando em conta esses fatores, não foi possível utilizar um método ágil, mas conseguimos utilizar algumas bases como a realização de testes e também Daily Scrum, Sprint Backlog e Product Backlog do SCRUM. SCRUM “Scrum é um framework Ágil, simples e leve, utilizado para a gestão do desenvolvimento de produtos complexos imersos em ambientes complexos. Scrum é embasado no empirismo e utiliza uma abordagem iterativa e incremental para entregar valor com frequência e, assim, reduzir os riscos do projeto. “ (Scrum: Gestão ágil para projetos de sucesso –pag 17 – Capitulo 2.1- Introdução – Rafael Sabbagh – Casa do código - 2013) Em nosso projeto, utilizamos a técnica de Daily Scrum,Product Backlog e Sprint Backlogpara 19 que pudéssemos evitar erros durante o desenvolvimento do projeto e garantir a troca de informações entre todos os membros do grupo. Segundo Rafael Sabbagh sobre Daily Scrum em cada dia do trabalho de desenvolvimento, os membros do Time de Desenvolvimento se encontram por no máximo quinze minutos, preferencialmente no mesmo horário e no mesmo local, para a reunião de DailyScrum. O objetivo da reunião é garantir a visibilidade de seu trabalho entre eles e planejar, informalmente, o próximo dia de trabalho. (Scrum: Gestão ágil para projetos de sucesso –pag 44 – Capitulo3.3 Desenvolvimento – Rafael Sabbagh – Casa do código - 2013) Resumindo, o Daily Scrum seria uma breve reunião diária entre todos os membros da equipe, onde é analisado todas as tarefas que foram dadas e o que foi feito, para assim definir o que será priorizado a partir dali. Conforme Rafael Sabbagh, O Product Backlog é uma lista de tudo o que se acredita que será desenvolvido pelo Time de Desenvolvimento no decorrer do projeto. Em cada momento, essa lista é atualizada, ordenada de acordo com a importância para os clientes do projeto e possui apenas o nível de detalhes que é possível de se ter. (Scrum: Gestão ágil para projetos de sucesso –pag 111 – Capitulo 9.1 O que é o ProductBacklog – Rafael Sabbagh – Casa do código - 2013) O Product Backlog é uma lista que reúne requisitos e observações para o sistema que está em desenvolvimento, obedecendo sempre a ordem de importância de cada elemento da lista para o cliente. O Product Backlog não é uma lista com elementos fixos e inalterável, o mesmo pode ser alterado a qualquer momento pela equipe, caso seja necessária qualquer mudança no projeto. “Para Rafael Sabbagh, o Sprint Backlog é uma lista de itens selecionados do alto do Product Backlog para o desenvolvimento do Incremento do Produto no Sprint (o quê), adicionada de um plano de como esse trabalho será realizado (como).” 20 (Scrum: Gestão ágil para projetos de sucesso –pag 147 – Capitulo 10.1 O que é Sprint Backlog – Rafael Sabbagh – Casa do código - 2013) O Sprint Backlog é uma lista de tarefas a serem realizadas pela equipe, definida durante o Daily Scrum do dia para que sejam executadas até o próximo Daily Scrum. As tarefas contidas no Sprint Backlog são definidas com base no Product Backlog do projeto. IMAGEM 8 - Sprint Foram realizados Daily Scrum diários, onde era levantado todo o ProductBacklog e definido o Sprint Backlog que fosse executado até o próximo Daily Scrum e assim por diante, até o fim do projeto. Nas fases de desenvolvimento do sistema, eram realizados também testes durante os Daily Scrum, no intuito de se constatado algum erro, o mesmo seria incrementado ao Sprint Backlog. Dessa forma, foi possível controlarmos melhor o tempo e assim desenvolver um projeto com maior nível de qualidade tanto na visão do usuário, com funcionalidades de fácil compreensão e uso e também para outros programadores ou profissionais que fossem utilizá-lo para fins de estudo ou comerciais, com uma linguagem clara e objetiva e um código reutilizável. 21 Levando em conta todas essas características, nosso, projeto foi desenvolvido da seguinte forma: 2.3 SOFTWARE 2.3.1 Sistema Operacional Ubuntu A escolha do Ubuntu como sistema operacional do terminal se deu por ele ser uma versão do Linux e com isso ser mais seguro que seus concorrentes e também por ser software livre, o que faz com que ele se torne mais barato, além das vantagens citadas acima ele é muito fácil de manusear e possui um fórum de duvidas e softwares compatíveis, a versão que será utilizada será a versão 14.04.1 LTS (“Long Term Support”) por ser LTS essa versão continuará recebendo suporte estendido por até 4 anos ou mais. Segundo Tanenbaum (2012) “é um programa que esconde do programador a verdade sobre o hardware e apresenta uma bela e simples visão de nomes de arquivos que podem ser lidos e gravados, e apresenta uma interface orientada para arquivos mais simples”. Segundo Shuttleworth (2004) “Ubuntu é um sistema operacional desenvolvido pela comunidade ubuntu, e é perfeito para laptops, desktops e servidores. Seja para uso em casa, escola ou no trabalho, o Ubuntu contém todas as ferramentas que você necessita desde processador de texto e leitor de emails os servidores web e ferramentas de programação.” “O Ubuntu é a mais amigável dentre as distribuições Linux da atualidade. Com belo visual gráfico e uso intuitivo, ao finalizar a instalação descrita neste manual, você terá um sistema operacional altamente estável, fácil de utilizar, e com todos os programas que você precisa para trabalhar, estudar ou se divertir. Com o Ubuntu instalado em seu computador, você terá acesso a repositórios on-line com dezenas de gigabytes livres e de códigos abertos, tão ou mais poderosos e profissional que seus equivalentes para Windows.” 22 (Guia essencial do Ubuntu 9.10 – Capitulo 1 – pag. 6 - Módulo informática. RODRIGO AMORIM FERREIRA) IMAGEM 9 - Ambiente gráfico do Ubuntu (http://www.ubuntu.org.br) Ver especificações do Sistema Operacional na tabela 1 2.4 HARDWARE DO TERMINAL 2.4.1 Monitor: AOC 2036S LCD O monitor é onde são mostradas as informações, permitindo a comunicação direta com o sistema. “Para os terminais serão utilizados monitores com alta qualidade de vídeo e com um tamanho de 20” ao qual o usuário terá melhor facilidade em visualizar a informação. Utilizarão a função de stand-by, a qual utilizará menos energia proporcionando melhor custo benefício. Também será ajustável á posição, ou seja, o usuário poderá ajustar a posição do monitor, facilitando o acesso de pessoas portadoras de deficiência física, como mostra nas imagens 1 e 2. Ver especificações do monitor na tabela 2 2.4.2 Placa mãe 23 modelo: ASUS M5A78L-M LX asus epu : sistema nivelador de economia de energia anti-surge : guardião em tempo integral do sistema turbo key : interruptor de overcloking - core unlocker : libere o verdadeiro desempenho do processador esta placa-mãe suporta processadores multi-core amd am3+ com cache l3, para melhor capacidade de overclock com menor consumo de energia . Possui dual-channel ddr3 de memória, que acelera taxa de transferência de dados em até 5200mt/s via hypertransport 3.0 2.4.3 Processador A escolha da AMD se deu pelo fato de seus processadores serem voltados para o processamento lógico e o modelo Phenom II X4 é mais do que o suficiente para o processamento do sistema operacional e do sistema do caixa eletrônico, tento usando assim apenas um de seus núcleos sem ter que forçar o processador a dar o seu máximo, fazendo com que o mesmo tenha uma vida útil mais duradoura. “A CPU (Central Processing Unit - unidade central de processamento) é o 'cérebro' do computador. Sua função é executar programas armazenados na memória principal buscando suas instruções, examinando-as e então executando-as uma após a outra. Os componentes são conectados por um barramento, que é um conjunto de fios paralelos que transmitem endereços, dados e sinais de controle. Barramentos podem ser externos à CPU, conectando-a à memória e aos dispositivos de E/S mas também podem ser internos à CPU. como veremos em breve. A CPU é composta por várias partes distintas . A unidade de controle é responsável por buscar instruções na memória principal e determinar seu tipo. A unidade de aritmética e lógica efetua operações como adição e AND (E) booleano para executar as instruções. A CPU também contém uma pequena memória de alta velocidade usada para armazenar resultados temporários e para um certo controle de informações. Essa memória é composta de uma quantidade de registradores, cada um deles com um certo tamanho e função. Normalmente todos os registradores têm o mesmo tamanho. Cada registrador pode conter um 24 numero, até algum máximo determinado pelo tamanho do registrador. Registradores podem ser lidos e escritos em alta velocidade porque internos a CPU.” (Organização Estruturada de Computadores – 5º edição –pag 29 – Capitulo 2.1 Organização de sistemas de computadores – andrew. s tanenbaum– Casa do código - 2013) A escolha da AMD se deu pelo fato de seus processadores serem voltados para o processamento lógico e o modelo Phenom II X4 é mais do que o suficiente para o processamento do sistema operacional e do sistema do caixa eletrônico, tento usando assim apenas um de seus núcleos sem ter que forçar o processador a dar o seu máximo, fazendo com que o mesmo tenha uma vida útil mais duradoura. Apesar do potencial, o Phenom ficou limitado pela arquitetura de 65 nanômetros, que restringiu a frequência de clock dos processadores. O pico evolutivo acabou sendo o Phenom X4 9950, que operava a 2.6GHz, mas possuia um TDP de nada menos que 140 watts na versão original (que a AMD conseguiu reduzir para 125 watts nas subsequências), o que é basicamente o limite do que se pode refrigerar usando um cooler a ar. (Informatica, conceitos básicos – 8º edição –pag 38 – Capitulo 2.4 Tamanho da memória – Veloso, Fernando – Elsevier - 2011) IMAGEM 10 - Processador AMD Phenon II X4 (http://www.amazon.com/AMD-Phenom-3-4Ghz-512KB-4000MHZ/dp/B002SRQ214) 25 2.4.4 Disco Rígido Cada terminal terá um HD de 80 Gb que será instalado o sistema operacional ocupando aproximadamente 2 Gb de espaço e o sistema do caixa eletrônico. A idéia de ter um HD com capacidade muito superior ao que se necessita é justamente para que tenha espaço suficiente para que o Sistema Operacional possa gerar seus arquivos temporários sem que haja a preocupação com espaço em disco. Os discos rígidos ou duros são atualmente o tipo de armazenamento de dados mais importante em sistemas de computadores modernos. Um dos primeiros discos rígidos completamente lacrados e livres de poeira foi desenvolvido pela IBM e chamados de disco Winchester (em alusão ao famoso Winchester) (Fundamentos de Eletrônica Digital - Vol.2. Sistemas Sequenciais - Capitulo 11 – pag 352 - Roger Tokheim) Disco Rígido Seagate IMAGEM 11 - Disco rígido (http://www.linkinformaticago.com.br/?product=hd-01tb-sata-seagatest1000dm003) Ver especificações do Sistema Operacional na tabela 4 26 2.4.5 Memória RAM A memória será responsável por manter os arquivos que estiverem em execução, o sistema operacional e o sistema do caixa eletrônico bancário, o terminal contará com dois pentes, de 2 GB cada, não exatamente funcionando desta forma, mas considerando que 2 GB ficará responsável pelo Sistemas Operacional e os outros 2 GB para o sistema de caixa eletrônico. “Dentre todas as memórias existentes no computador, a mais importante é, sem duvida, a memoria ram (memoria de acesso aleatorio). A memoria RAM é um conjunto de chips semicondutores que armazenam dados na forma de pulsos eletricos, o que significa que os dados sao armazenados enquanto houver energia ou enquanto o programa em questao decidir (o que terminar primeiro). Devido a sua importancia extrema, a memoria ram é chamada de memoria principal (ou, em certos casos, simplesmente "a memoria"). A memoria RAM é um componente muitissimo importante para o computador e sem ela o computador não funcionaria porque os dados que saem da CPU são, a principio, armazenados nela. A memoria RAM é vendida em pequenas placas chamadas "pentes" por causa de seu formato.” (Informatica Para Concursos – 3º edição – Capitulo 7 – pag 34 - Módulo informática. JOAO ANTONIO CARVALHO) IMAGEM 12 - Memória RAM (http://produto.mercadolivre.com.br/MLB-598751035-memoria-kingston-pc-ddr3-4gb-1333-pc10600frete-gratis-_JM) Ver especificações do Sistema Operacional na tabela 5 27 2.4.6 O Terminal Desenhado para atender pessoas comuns e ou portadores de deficiência física estando de acordo com a lei. "Dispõe-se sobre o apoio às pessoas portadoras de deficiência, sua integração social, sobre a Coordenadoria Nacional para Integração da Pessoa Portadora de Deficiência – Corde, institui a tutela jurisdicional de interesses coletivos ou difusos dessas pessoas, disciplina a atuação do Ministério Público, define crimes, e dá outras providências." (Lei n. 7.853, de 24 de outubro de 1989, aprovada pelo então presidente José Ribamar Araújo da Costa Sarney.) O Quiosque se manterá em uma estrutura metálica revestida com materiais plásticos reciclados, seguindo e leis de proteção do meio ambiente. "Dispõe sobre a Política Estadual de Reciclagem de Materiais e sobre os instrumentos econômicos e financeiros aplicáveis à Gestão de Resíduos Sólidos." Lei nº 14.128, de 19 de dezembro de 2001. (Rejeição de Veto - Publicação - Diário do Legislativo - "Minas Gerais" 28/03/2002). Os terminais terão um revestimento externo em material reciclável, o que o tornará um produto contribuinte com o eco-sistema e a diminuição da poluição e com o meio ambiente. "A reciclagem é um processo industrial que converte o lixo descartado (matéria-prima secundária) em produto semelhante ao inicial ou outro. Reciclar é economizar energia, poupar recursos naturais e trazer de volta ao ciclo produtivo o que é jogado fora. A palavra reciclagem foi introduzida ao vocabulário internacional no final da década de 80, quando foi constatado que as fontes de petróleo e outras matérias-primas não renováveis estavam e estão se esgotando. Reciclar significa = Re (repetir) + Cycle (ciclo). Para compreendermos a reciclagem, é importante "reciclarmos" o conceito que temos de lixo, deixando de enxergá-lo como uma coisa suja e inútil em sua totalidade. O primeiro passo é perceber que o lixo é fonte de riqueza e que para ser reciclado deve ser separado. Ele pode ser separado de diversas maneiras, sendo a mais simples separar o lixo orgânico do inorgânico (lixo molhado/ lixo seco). 28 Na natureza nada se perde. Seres vivos chamados decompositores "comem" material sem vida ou em decomposição. Eles dividem a matéria para que ela possa ser reciclada e usada de novo. Esse é o chamado material biodegradável. Quando um animal morre, ele é reciclado pela natureza. Quando um material é dividido em pequenas peças, as bactérias e fungos, os mais importantes decompositores, já podem trabalhar.” (de Cássia, Rita. Reciclagem. Reciclar, 20 nov. 2007 . Disponivel em: http://www.reciclarbrasil.com.br. Acesso em: 06 jun. 2014) Os terminais foram projetados para atender a portadores de deficiências físicas, onde cadeirantes poderão utilizar os terminais sem algum problema, pois, a tela é flexível, tornando assim possível a visualização e a utilização. Os terminais foram projetados para ficarem em cabines, onde serão instaladas no local onde ficaram, sendo que essas cabines serão para os usuários terem privacidade ao estarem usufruindo do terminal IMAGEM 13 - ACESSIBILIDADE DO TERMINAL FONTE: POR WILLIAN MARQUES 2.5 REDE E INFRA-ESTRUTURA As redes onde os terminais estarão conectados terão dispositivos que realização essa conexão e auxiliarão a estabilidade do mesmo. Para isso as redes, que, aliás, serão utilizadas 29 as do ponto onde os terminais estão instalados, como por exemplo, redes dos supermercados, agências bancárias, postos de gasolinas e etc. “Redes de computadores estabelecem a forma-padrão de interligar computadores para o compartilhamento de recursos físicos ou lógicos. Esses recursos podem ser definidos como unidades de CD-ROM, diretórios do disco rígido, impressoras, scanners, placa de fax modem entre outros. Saber definir que tipo de rede e que sistema operacional deve ser utilizado, bem como efetuar a montagem deste tipo de ambiente, é um pré-requisito para qualquer profissional de informática que pretende uma boa colocação no mercado de trabalho.” (Livro Redes de computadores- teoria e pratica Editora Novatec) Serão utilizadas placas de rede, para fazer a comunicação do terminal com a rede, que no caso, utilizará a topologia estrela, onde farão partes dessa rede o switch, modem, cabos par trançados; que realização a comunicação distribuindo IPs e masca de rede, de forma tal a poder realizar a comunicação de maneira a poder haver a troca de informação dos terminais e os bancos. “Placa adaptadora de rede, Também conhecida como NIC (Network Interface Card), é a responsável pela conexão do computador a rede. Cada placa de rede possui um endereço MAC que é único, formato por um identificador do fabricante, por exemplo, “3Com “seguindo por um sufixo de identificação da placa, o que garante a unicidade do cartão, ou seja, cada placa de rede tem um endereço próprio.” (Redes de computadores: fundamentos/Alexandre Fernandes de Morais) IMAGEM 14 - Placa de Rede (http://img.ibxk.com.br/materias/2732/7471.jpg) 30 “O cabo de para trançado é o mais barato para aplicação em redes locais e hoje o mais utilizado. Os cabos UTP possuem uma classificação especial chamada de categoria, determinada de acordo com a característica de qualidade de cabo, como baixo crosstalk entre os pares, baixa atenuação, largura da banda passante, indutâncias etc. De acordo com esta classificação cabo UTP.” (Redes de computadores: fundamentos/Alexandre Fernandes de Morais) IMAGEM 15 - Cabo par trançado (http://www.rrp1.com.br/cabo%20rede.jpg) “Na topologia estrela todas as estações estão diretamente conectadas com o equipamento central. A comunicação entre dois equipamentos passa obrigatoriamente pelo equipamento central, que como função realiza a comutação de mensagens baseadas em técnicas de pacotes ou por circuitos, além de realizar o controle e a supervisão da rede. A topologia estrela faz a ligação muitas das vezes por meio de um switch onde todos os hosts se comunicam não havendo sempre um broadcast. Este tipo de topologia possui um dispositivo central onde todos os nós da rede são conectados nele, e este dispositivo faz o roteamento do sinal para o destino final da informação com isto todos os dados enviados devem obrigatoriamente passar por este dispositivo central antes de chegar a seu destino final. A vantagem é que pode ser ‘unicast3’, as informações são direcionadas exatamente para seu receptor, as outras máquinas na rede não recebem mensagens de outro receptor, com isto melhora o tráfego da rede.” (FOROUZAN, B. A.Comunicação de Dados e Redes de Computadores. 3.) 31 IMAGEM 16 - Topologia Estrela “O switch é utilizado para interligar redes com grande trafego ponto a ponto (peer-topeer), pois é capaz de transmitir cada pacote de dados, de forma direta, para uma estação especifica. Além disso, o switch ambbem pode servir para dividir umas redes em diversa subredes, mesmo em grupo de trabalho, utilizando a tecnologia conhecida como virtual lan (VLAN), aliada ao uso de ACLs(AccessList, ou lista de acesso), que definem qual indereço IP ou host pode acessar determinada área da rede.” (segredos das redes de computadores 2ºEdição editoraDigerati Books/Carmona Tadeu) IMAGEM 17 - Switch (http://content.answers.com/main/content/img/CDE/_ESWITCH.GIF) “Ela é usada para determinar onde termina o endereço da rede e onde começa o endereço da estação. Devido á forma como a mascara de rede é usada,, os bits são definidos com 1 da esquerda para direita. Por exemplo, uma mascara de sub-rede .” (Redes de computadores: fundamentos/Alexandre Fernandes de Morais) 32 “Um endereço IP é segmentado em duas partes: as primeiras contém a identificação da rede de computadores em que ele esta sendo usado e a segunda identifica os computadores nessa rede. Com o advento da internet, criou-se uma maneira de atribuir endereços IP para a conexão a Web, ao mesmo tempo em que se reservou uma determinada listagem de IP as redes domesticas. “ (segredos das redes de computadores 2º Edição editoraDigerati Books) 2.6 Aplicação das Disciplinas no Projeto 2.6.1 Fundamento de sistemas operacionais Foi apresentado o que é um conceito do que é um sistema operacional, detalhando o que será usado no projeto. 2.6.2 Organização de computadores O projeto apresenta componentes de hardware que são necessários para se montar um terminal, suas definições. 2.6.3 Princípio de sistema de informação Podemos ter como base no projeto a construções do sistema, no qual utiliza uma linguagem de programação, a qual foi vista em aula a forma como se gerencia a construção de um sistema. 2.6.4 Estatística No projeto é usada média, para se obter uma base na construção do sistema é o custo de qual desenvolvimento. 2.6.5 Lógica É aplicada no projeto em forma de diagrama de blocos a representação da trajetória da transmissão das informações até chegar ao usuário, e no desenvolvimento do sistema é a base para chegar-se ao resultado final. 33 2.6.6 Desenvolvimento Sustentável No projeto é utilizado na construção dos terminais, materiais recicláveis, para o revestimento externo, ajudando assim a preservação do meio ambiente e contribuindo com a retirada de materiais de agridem o meio ambiente. 2.6.7 Matemática para Computação Consolidado em uma base financeira, o sistema exigiu que fosse utilizadas funções, nas quais aplicou-se cálculos, como por exemplo, o calcular o saldo. 2.6.8 Linguagem e técnicas de programação Assim como a lógica de programação, as técnicas foram essenciais no desenvolvimento do projeto, no qual foi desenvolvimento em linguagem C, linguagem que foi vista neste módulo do curso. 2.6.9 Fundamentos de Rede, Dados e Comunicação De suma importância como a linguagem de programação, os fundamentos de rede, dados e comunicação implicaram diretamente no desenvolvimento do sistema, no qual é necessário se ter uma boa comunicação entre os terminais e os provedores dos bancos, e uma rede segura, pois, transitará dados muitos sigilosos, que os dados das contas bancárias. 2.6.10 Engenharia de Software I Utilizada no desenvolvimento do sistema, a engenharia de software foi importante na decisão de como seria a rotina do desenvolvimento, no planejamento dos prazos de entrega e da estruturação do sistema, como as funcionalidades do mesmo. 2.6.11 Metodologia Científica Utilizada no desenvolvimento do contexto textual do projeto, servido de base na edição dos textos e as formações necessárias para que saísse nos padrões que são exigidos. Foram aplicadas normas das quais fazem parte da metodologia, como o que é necessário ter no documento, e como aplicar regras de formatações. 34 2.7 IMAGENS Imagem 1 - Tela de Autenticação (Por Diogo Muniz) Imagem 2 – Menu de Operações (Por Diogo Muniz) Imagem 3 – Depositar Valor (Por Diogo Muniz) 35 Imagem 4 – Sacar Valor (Por Diogo Muniz) Imagem 5 – Consultar Saldo (Por Diogo Muniz) Imagem 6 – Consultar Extrato (Por Diogo Muniz) 36 Imagem 7 - Fluxograma do sistema 37 2.8 TABELAS Tabela 1 - Sistema Operacional Especificações Técnicas (do fabricante) Ubuntu Sistema operacional 14.04 "Trusty Tahr " Versão Linu 3.13 Versão do Kernel 17 de Abril de 2014 Lançamento: Requisitos Mínimos 64 Mb Memória RAM 5 Gb Disco rígido: Tabela 2 - Especifícações do Monitor Características do Monitor Modelo AOC 2036S LCD Tamanho da tela 20.0 polegadas Tipon de tela LCD Tela plana Sim Ângulo de visão Horizontal 160 graus Ângulo de visão vertical 160 graus Widescreen Sim Touchscreen 2 toques Resolução Máxima 1600 x 900 Pixels Número de Cores 16,7 milhões Brilho 250 cd/m² Contraste 60000:1 Tempo de Resposta 5 ms Tipo de conexão RGB, USB, VGA Consumo 25 W Consumo em Standby 1W TABELA 3 - ESPECIFICAÇÕE DA PLACA MÃE Especificações Modelo asus epu anti-surge turbo key core unlocker ASUS M5A78L-M LX sistema nivelador de economia de energia guardião em tempo integral do sistema interruptor de overcloking libere o verdadeiro desempenho do processador 38 Tabela 4 - Especificações do HD Especificações Técnicas Modelo: Formato: Interface: Capacidades: Consumo de Energia: Temperatura de Armazenamento: Temperatura de operação: Dimensões: Peso: Vibração quando em operação: Vibração quando não está em operação: Expectativa de vida útil: Todas as capacidades: Kingston SSDNow 2.6" SATA Rev. 3.0 (6Gb/s) 60GB 0,640W Inativo / 1,423 W Leitura / 2,052 W Gravação -40 a 85°C 0 a 70°C 69,8 x 100,1 x 7 mm 86 g 2,17 G Pico (7 – 800 Hz) 20 G Pico (10 – 2000 Hz) 1 milhão de horas MTBF 450MB/s para Leitura e 450MB/s para Gravação Tabela 5 -Especificações da Memória RAM Especificações da memória RAM Kingston DDR3 4GB Modelo DDR3-1600 Nome padrão 200 MHz Clock de memória 5 ms Tempo de ciclo: 800 MHz Velocidade de clock 1600 MT/s Taxa de dados PC3-12800 Nome do módulo 12800 MB/s Pico de taxa de transferência 8-8-8 / 9-9-9 / 10-10-10 / 11-11-11 Tempos 39 III. CONCLUSÃO “É nesse clima que o projeto se enquadra, podendo-se afirmar que o terminais de caixa eletrônico é uma combinação de tecnologia avançada para a realização de operações bancárias, levando em consideração cada detalhe, na prestação dos serviços. Por meio dele, os usuários poderão realizar depósitos, saques, transferências, consultar saldo e consultar extrato, comodidade, segurança e agilidade”. REFERÊNCIAS Apostila Banco de Dados – Conceitos. Edson – UFMS Apostila Preservação de Documentos Digitais. Humberto Celeste Innarelli- 12/2003 Livro Organização estrutura de computadores. Tanenbaum – Edição IV Livro Suplemento 2000 - Módulo Informática. Luis Carlos Fernandes Bambini Guia essencial do Ubuntu 9.10 RODRIGO AMORIM FERREIRA – Capitulo 1 – pag. 6 - Módulo informática. Scrum: Gestão ágil para projetos de sucesso –pag 147 – Capitulo 10.1 O que é Sprint Backlog – Rafael Sabbagh – Casa do código - 2013 Edson J.R. Lobo – Livro: Curso de Engenharia de Software – Pag. 42 – Capitulo 11 Metodologia ágil de desenvolvimento de software – Digerati Books, 2008 www.leonardodavinci.com.br/livros/GU4019/9788588493032/meu-primeiro-gpslivro-guia-para-iniciantes-e-entusiastas.html www.reciclarbrasil.com.br http://www.ubuntu.org.br 40 APÊNCICE #INCLUDE <STDIO.H> #INCLUDE <STDLIB.H> #INCLUDE <STRING.H> #INCLUDE <TIME.H> #INCLUDE <WINDOWS.H> #INCLUDE <LOCALE.H> INT IESCOLHAUSUARIO; INT IRETORNOCLIENTE; INT IRETORNOVERIFICARCADASTRO; CHAR CPFCADASTRO[ 50] ="38614990880"; INT IRETORNOEXTRATO; INT TENTATIVAS=NULL; FLOAT SALDOVALOR; FLOAT SALDOTRANSFERENCIA; CHAR OPCAOMENU; // VARIAVEIS PARA EXIBIR A DATA E O HORÁRIO TIME_T TEMPO; STRUCT TM *INFOTEMPO; CHAR TEXTODATA[ 80]; CHAR TEXTOHORA[ 80]; CHAR TEXTODATAD[ 80]; CHAR TEXTODATAM[ 80]; CHAR TEXTODATAA[ 80]; /*------------ FIM DATA/HORA ---------*/ INT MAIN(INT ARGC, CHAR *ARGV[]){ SYSTEM("COLOR 17"); HOME(); } /* ================================================================ FUNÇÕES =============================================================*/ INT HOME(){ SETLOCALE(LC_ALL, "PORTUGUESE"); SETCONSOLETITLE("TELA INICIAL"); TIME(&TEMPO); INFOTEMPO = LOCALTIME(&TEMPO); STRFTIME (TEXTOHORA, 80, "%X", INFOTEMPO); STRFTIME (TEXTODATA, 80, "%D", INFOTEMPO); STRFTIME (TEXTODATAM, 80, "%M", INFOTEMPO); STRFTIME (TEXTODATAA, 80, "%Y", INFOTEMPO); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAM); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAA); PRINTF(" ________________________________________\N"); PRINTF(" | | DATA: %S \N", TEXTODATA); PRINTF(" | SISTEMA DE CAIXA | HORA: %S \N", TEXTOHORA); PRINTF(" |________________________________________|\N"); //==================================================================================================== VERIFICARAUTENTICACAO(); } INT EXIBIRMENU(){ SETCONSOLETITLE("MENU DE OPERACOES BANCARIAS"); // ---- FUNÇÕES DE DATA E HORA TIME(&TEMPO); INFOTEMPO = LOCALTIME(&TEMPO); STRFTIME (TEXTOHORA, 80, "%X", INFOTEMPO); STRFTIME (TEXTODATA, 80, "%D", INFOTEMPO); STRFTIME (TEXTODATAM, 80, "%M", INFOTEMPO); STRFTIME (TEXTODATAA, 80, "%Y", INFOTEMPO); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAM); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAA); // ----FIM FUNÇÕES DE DATA E HORA SYSTEM("CLS"); PRINTF(" ________________________________________________________________\N"); PRINTF(" | |\N"); PRINTF(" | BEM VINDO DATA: %S HORA: %S |\N", TEXTODATA, TEXTOHORA); PRINTF(" | __________________________________________________________ |\N"); PRINTF(" | |\N"); PRINTF(" | [1] SACAR [3] CONSULTAR SALDO |\N"); PRINTF(" | [2] DEPOSITAR [4] CONSULTAR EXTRATO |\N"); 41 PRINTF(" | [5] TRANFERIR |\N"); PRINTF(" | |\N"); PRINTF(" | | [6] SAIR | |\N"); PRINTF(" |________________________________________________________________|\N"); PRINTF("\N\N DIGITE UMA OPÇÃO: "); OPCAOMENU =GETCH(); IF(OPCAOMENU == 54){ SYSTEM("CLS"); HOME(); } IF(OPCAOMENU == 49){ SACARVALOR(); } ELSE IF(OPCAOMENU == 50){ DEPOSITARVALOR(); } ELSE IF(OPCAOMENU == 51){ CONSULTARSALDO(); } ELSE IF(OPCAOMENU == 52){ GERAREXTRATO(); } ELSE IF(OPCAOMENU == 53){ TRANSFERIRVALOR(); } ELSE{ EXIBIRMENU(); PRINTF("\NOPÇÃO INVÁLIDA"); } } INT VERIFICARAUTENTICACAO(){ INT RETORNO; INT SENHA; CHAR ICODSE[ 8]; INT PASSWORD; CHAR COD[ 5]; CHAR CAMINHO1[ 50] = "CLIENTES/"; STRCAT(CAMINHO1, CPFCADASTRO); STRCAT(CAMINHO1, "/LOGIN.TXT"); FILE * ARQUSERAUTENTICACAO; ARQUSERAUTENTICACAO = FOPEN(CAMINHO1, "R"); PRINTF("\N DIGITE SUA SENHA: "); SCANF("%D", &SENHA); IF(ARQUSERAUTENTICACAO == NULL) PRINTF("FALHA DE CONEXÃO \N"); ELSE WHILE ( FSCANF(ARQUSERAUTENTICACAO, "%D", &PASSWORD) != EOF){ IF (SENHA == PASSWORD){ RETORNO = 1; } ELSE{ RETORNO = 0; TENTATIVAS = TENTATIVAS + 1; VERIFICARTENTATIVAS(); BREAK; } } IF(RETORNO != 1){ PRINTF("\N\N SENHA OU COÓIGO INVÁLIDO.\N\N"); } ELSE{ //TENTATIVAS =NULL; IF(OPCAOMENU == 49){ SACARVALOR(); } ELSE IF(OPCAOMENU == 50){ DEPOSITARVALOR(); } ELSE IF(OPCAOMENU == 51){ CONSULTARSALDO(); } ELSE IF(OPCAOMENU == 52){ GERAREXTRATO(); } 42 ELSE IF(OPCAOMENU == 53){ TRANSFERIRVALOR(); } ELSE{ PRINTF("\NOPÇÃO INVÁLIDA"); EXIBIRMENU(); } } FCLOSE(ARQUSERAUTENTICACAO); } // FUNÇÃO PARA VERIFICAR SE O USUARIO ESTÁ BLOQUEADO INT VERIFICARBLOQUEIO(){ SETCONSOLETITLE("BLOQUEIO DE CONTA"); CHAR TECLAEXIT; CHAR CAMINHO[ 50] = "CLIENTES/"; STRCAT(CAMINHO, CPFCADASTRO); STRCAT(CAMINHO, "/BLOQUEIO.TXT"); FILE *ARQBLOQUEIO; ARQBLOQUEIO = FOPEN(CAMINHO, "R"); IF(ARQBLOQUEIO != NULL){ SYSTEM("CLS"); PRINTF("\N \N |- SUA CONTA ESTÁ BLOQUEADA -|\N\N"); SYSTEM("PAUSE"); SYSTEM("CLS"); HOME(); //===================================================================================================== ========== } ELSE{ } FCLOSE(ARQBLOQUEIO); } // FUNÇÃO PARA VERIFICAR A QUANTIDADE DE TENTATIVAS DE CONFIRMAÇÃO DA SENHA E CODIGO DE SEGURANÇA INT VERIFICARTENTATIVAS(){ SETCONSOLETITLE("VERIFICACAO DE TENTATIVAS DE ACESSO"); INT ESCOLHA; // ------------- VERIFICA A QUANTIDADE DE TENTATIVAS DE ACESSO A CONTA IF(TENTATIVAS <3){ SWITCH (TENTATIVAS){ CASE 0: VERIFICARAUTENTICACAO(); //==================================================================================================== BREAK; CASE 1: SYSTEM("CLS"); PRINTF("\N É PERMITIDA APENAS 3 TENTATIVAS, CASO CONTRÁRIO SUA CONTA SERÁ BLOQUEADA.\N ESSA É SUA SEGUNDA TENTATIVA.\N"); VERIFICARAUTENTICACAO(); //==================================================================================================== BREAK; CASE 2: SYSTEM("CLS"); PRINTF("\N É PERMITIDA APENAS 3 TENTATIVAS, CASO CONTRÁRIO SUA CONTA SERÁ BLOQUEADA.\N ESSA É SUA TERCEIRA TENTATIVA.\N"); VERIFICARAUTENTICACAO(); //==================================================================================================== GETCH(); BREAK; } } ELSE{ PRINTF("\N\N VOCÊ EXCEDEU A QUANTIDADE DE TENTATIVAS"); CHAR CAMINHO[ 50] = "CLIENTES/"; STRCAT(CAMINHO, CPFCADASTRO); STRCAT(CAMINHO, "/BLOQUEIO.TXT"); FILE *ARQBLOQUEIO; ARQBLOQUEIO = FOPEN(CAMINHO, "W"); IF(ARQBLOQUEIO != NULL){ PRINTF(".\N\NSUA CONTA FOI BLOQUEADA."); GETCH(); SYSTEM("CLS"); HOME(); } ELSE{ 43 PRINTF("\N FALHA NO ACESSO"); } GETCH(); RETURN 0; HOME(); } } // FUNÇÃO PARA CONSULTAR VALOR DO SALDO INT VERIFICARSALDO(VOID) { SETCONSOLETITLE("CONSULTA DE SALDO"); FILE *ARQSALDOC; FILE *ARQSALDOD; FILE *ARQSALDOT; CHAR CAMINHO2[ 50] = "CLIENTES/"; CHAR CAMINHO3[ 50] = "CLIENTES/"; CHAR CAMINHO4[ 50] = "CLIENTES/"; STRCAT(CAMINHO2, CPFCADASTRO); STRCAT(CAMINHO2, "/DEPOSITOS.TXT"); STRCAT(CAMINHO3, CPFCADASTRO); STRCAT(CAMINHO3, "/SAQUES.TXT"); STRCAT(CAMINHO4, CPFCADASTRO); STRCAT(CAMINHO4, "/TRANSFERENCIAS.TXT"); // ABRE O ARQUIVO HISTORICO PARA EXIBIR O EXTRATO ARQSALDOC = FOPEN(CAMINHO2, "R"); ARQSALDOD = FOPEN(CAMINHO3, "R"); ARQSALDOT = FOPEN(CAMINHO4, "R"); CHAR CAMP1[ 80]; CHAR CAMP2[ 80]; CHAR CAMP3[ 80]; CHAR CAMP4[ 80]; CHAR CAMP5[ 80]; CHAR CAMP6[ 80]; FLOAT V, V1, SOMAC=0, SOMAD=0, SOMAT=0, SOMATOTAL=0; // ABAIXO, FUNÇÃO PARA CALCULAR TOTAL DE VALORES DEPOSITADOS IF (ARQSALDOC == NULL) { // SE HOUVE ERRO NA ABERTURA PRINTF("\N FALHA NA CONEXÃO \N"); RETURN; } ELSE{ WHILE ( FSCANF(ARQSALDOC, "%S %S %F", CAMP1, CAMP2, &V )!= EOF){ SOMAC = SOMAC + V; } FCLOSE(ARQSALDOC); } // ABAIXO, FUNÇÃO PARA CALCULAR TOTAL DE VALORES SACADOS IF (ARQSALDOD == NULL) { // SE HOUVE ERRO NA ABERTURA PRINTF("\N FALHA NA CONEXÃO\N"); } ELSE{ WHILE ( FSCANF(ARQSALDOD, "%S %S %F", CAMP1, CAMP2, &V) != EOF){ SOMAD = SOMAD + V; } FCLOSE(ARQSALDOD); } // ABAIXO, FUNÇÃO PARA CALCULAR TOTAL DE VALORES TRANSFERIDOS IF (ARQSALDOT == NULL) { // SE HOUVE ERRO NA ABERTURA PRINTF("\N FALHA NA CONEXÃO\N"); } ELSE{ WHILE ( FSCANF(ARQSALDOT, "%S %S %F", CAMP1, CAMP2, &V) != EOF){ SOMAT = SOMAT + V; } FCLOSE(ARQSALDOT); } SOMATOTAL = SOMAC - SOMAD; SALDOTRANSFERENCIA = SOMAT/2; SALDOVALOR = SOMATOTAL; // NÃO CONTABILIZANDO O SALDO DE TRANSFERENCIA } INT CONSULTARSALDO(){ // AGUARDANDO_RAPIDO(); //FUNÇÃO PARA DAR TEMPO DE PROCESSAMENTO VERIFICARSALDO(); IF(SALDOVALOR >0){ PRINTF("\N\N SALDO REAL DISPONÍVEL: R$%.2F", SALDOVALOR); PRINTF("\N\N SALDO FUTURO TRANSFERENCIA: R$%.2F", SALDOTRANSFERENCIA); FIMOPERACAO(); } ELSE{ 44 PRINTF("\N\N SALDO INDISPONÍVEL PARA SAQUE. \N SALDO TOTAL: R$%.2F", SALDOVALOR); FIMOPERACAO(); } } // FUNÇÃO PARA GERAR O EXTRATO - IRÁ EXIBIR O ARQUIVO HISTÓRICO INT GERAREXTRATO(VOID) { SETCONSOLETITLE("CONSULTAR EXTRATO"); // AGUARDANDO_RAPIDO(); // TEMPO DE PROCESSAMENTO PARA APRESENTAR A INFORMAÇÃO SYSTEM("CLS"); FILE *ARQHIST; CHAR LINHA[ 100]; CHAR *RESULT; INT I; CHAR CAMINHO2[ 50] = "CLIENTES/"; STRCAT(CAMINHO2, CPFCADASTRO); STRCAT(CAMINHO2, "/HISTORICO.TXT"); // ABRE O ARQUIVO HISTORICO PARA EXIBIR O EXTRATO ARQHIST = FOPEN(CAMINHO2, "RT"); IF (ARQHIST == NULL) { // SE HOUVE ERRO NA ABERTURA PRINTF("\N FALHA NA CONEXÃO \N"); RETURN; } PRINTF("\N [DATA] [HORA] [VALOR] [ORIGEM] \N\N"); I = 1; WHILE (! FEOF(ARQHIST)){ // LÊ UMA LINHA (INCLUSIVE COM O '\N') RESULT = FGETS(LINHA, 200, ARQHIST); IF (RESULT) // SE FOI POSSÍVEL LER PRINTF("%D - %S", I, LINHA); I++; } CONSULTARSALDO(); FCLOSE(ARQHIST); FIMOPERACAO(); } // FUNÇÃO PARA DEPOSITAR VALOR INT DEPOSITARVALOR(){ SETCONSOLETITLE("DEPÓSITOS"); //VERIFICARTENTATIVAS(); FLOAT VALORDEPOSITO; // ---- FUNÇÕES DE DATA E HORA TIME(&TEMPO); INFOTEMPO = LOCALTIME(&TEMPO); STRFTIME (TEXTOHORA, 80, "%X", INFOTEMPO); STRFTIME (TEXTODATA, 80, "%D", INFOTEMPO); STRFTIME (TEXTODATAM, 80, "%M", INFOTEMPO); STRFTIME (TEXTODATAA, 80, "%Y", INFOTEMPO); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAM); STRCAT(TEXTODATA, "/"); SISTEMA CAIXA.HTML FILE:///C:/USERS/REX/DESKTOP/SISTEMA CAIXA.HTML 4 DE 7 09/12/2014 15:58 STRCAT(TEXTODATA, TEXTODATAA); // ----FIM FUNÇÕES DE DATA E HORA CHAR CAMINHO2[ 50] = "CLIENTES/"; CHAR CAMINHO3[ 50] = "CLIENTES/"; STRCAT(CAMINHO2, CPFCADASTRO); STRCAT(CAMINHO2, "/DEPOSITOS.TXT"); STRCAT(CAMINHO3, CPFCADASTRO); STRCAT(CAMINHO3, "/HISTORICO.TXT"); PRINTF("\N DIGITE O VALOR A SER DEPOSITADO: "); SCANF("%F", &VALORDEPOSITO); AGUARDANDO_RAPIDO(); // TEMPO DE PROCESSAMENTO PARA APRESENTAR A INFORMAÇÃO FILE *ARQDEPOSITOS; ARQDEPOSITOS = FOPEN(CAMINHO2, "A"); IF(ARQDEPOSITOS != NULL) { FPRINTF(ARQDEPOSITOS, "%S %S %.2F \N", TEXTODATA, TEXTOHORA, VALORDEPOSITO); } FCLOSE(ARQDEPOSITOS); FILE *ARQHIST2; ARQHIST2 = FOPEN(CAMINHO3, "A"); IF(ARQHIST2 != NULL) { FPRINTF(ARQHIST2, "%S %S %.2F D \N", TEXTODATA, TEXTOHORA, VALORDEPOSITO); 45 } FCLOSE(ARQHIST2); PRINTF("\N OPERAÇÃO CONCLUIDA COM SUCESSO"); PRINTF("\N VALOR DEPOSITADO: R$%.2F", VALORDEPOSITO); FIMOPERACAO(); } // FUNÇÃO PARA SACAR VALOR INT SACARVALOR(){ SETCONSOLETITLE("SAQUES"); FLOAT VALORDEPOSITO; // ---- FUNÇÕES DE DATA E HORA TIME(&TEMPO); INFOTEMPO = LOCALTIME(&TEMPO); STRFTIME (TEXTOHORA, 80, "%X", INFOTEMPO); STRFTIME (TEXTODATA, 80, "%D", INFOTEMPO); STRFTIME (TEXTODATAM, 80, "%M", INFOTEMPO); STRFTIME (TEXTODATAA, 80, "%Y", INFOTEMPO); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAM); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAA); // ----FIM FUNÇÕES DE DATA E HORA CHAR CAMINHO2[ 50] = "CLIENTES/"; CHAR CAMINHO3[ 50] = "CLIENTES/"; STRCAT(CAMINHO2, CPFCADASTRO); STRCAT(CAMINHO2, "/SAQUES.TXT"); STRCAT(CAMINHO3, CPFCADASTRO); STRCAT(CAMINHO3, "/HISTORICO.TXT"); PRINTF("\N DIGITE O VALOR A SER SACADO: "); SCANF("%F", &VALORDEPOSITO); AGUARDANDO_RAPIDO(); // TEMPO DE PROCESSAMENTO PARA APRESENTAR A INFORMAÇÃO SYSTEM("CLS"); VERIFICARSALDO(); IF(SALDOVALOR <=0 ){ PRINTF("\N\N SALDO INSUFICIENTE PARA SAQUE."); FIMOPERACAO(); } ELSE IF(VALORDEPOSITO > SALDOVALOR){ PRINTF("\N"); PRINTF(" _________________________________________________________\N"); PRINTF(" \N"); PRINTF(" VALOR DIGITADO MAIOR QUE VALOR DISPONÍVEL PARA SAQUE. \N\N"); PRINTF(" SALDO DISPONÍVEL: %.2F VALOR DIGITADO: R$%.2F \N", SALDOVALOR, VALORDEPOSITO); PRINTF(" _________________________________________________________ \N"); FIMOPERACAO(); } ELSE{ FILE *ARQSAQUES; ARQSAQUES = FOPEN(CAMINHO2, "A"); IF(ARQSAQUES != NULL) { FPRINTF(ARQSAQUES, "%S %S %.2F \N", TEXTODATA, TEXTOHORA, VALORDEPOSITO); } FCLOSE(ARQSAQUES); FILE *ARQHIST2; ARQHIST2 = FOPEN(CAMINHO3, "A"); IF(ARQHIST2 != NULL) { FPRINTF(ARQHIST2, "%S %S %.2F C \N", TEXTODATA, TEXTOHORA, VALORDEPOSITO); } FCLOSE(ARQHIST2); PRINTF("\N OPERAÇÃO CONCLUIDA COM SUCESSO"); FIMOPERACAO(); SISTEMA CAIXA.HTML FILE:///C:/USERS/REX/DESKTOP/SISTEMA CAIXA.HTML 5 DE 7 09/12/2014 15:58 } FIMOPERACAO(); } AGUARDANDO_RAPIDO(){ PRINTF("\N\N\N\NPROCESSANDO .."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF("\N\N"); SYSTEM("CLS"); } AGUARDANDO_LENTO(){ 46 PRINTF("\N\N\N\NPROCESSANDO .."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF(".."); SLEEP(50); PRINTF("\N\N"); SYSTEM("CLS"); } // FUNÇÃO PARA SACAR VALOR INT TRANSFERIRVALOR(){ SETCONSOLETITLE("TRANSFERÊNCIAS"); FLOAT VALORDEPOSITOT; INT CONTA, AGENCIA, BANCO; // ---- FUNÇÕES DE DATA E HORA TIME(&TEMPO); INFOTEMPO = LOCALTIME(&TEMPO); STRFTIME (TEXTOHORA, 80, "%X", INFOTEMPO); STRFTIME (TEXTODATA, 80, "%D", INFOTEMPO); STRFTIME (TEXTODATAM, 80, "%M", INFOTEMPO); STRFTIME (TEXTODATAA, 80, "%Y", INFOTEMPO); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAM); STRCAT(TEXTODATA, "/"); STRCAT(TEXTODATA, TEXTODATAA); // ----FIM FUNÇÕES DE DATA E HORA CHAR CAMINHO2[ 50] = "CLIENTES/"; CHAR CAMINHO3[ 50] = "CLIENTES/"; STRCAT(CAMINHO2, CPFCADASTRO); STRCAT(CAMINHO2, "/TRANSFERENCIAS.TXT"); STRCAT(CAMINHO3, CPFCADASTRO); STRCAT(CAMINHO3, "/HISTORICO.TXT"); PRINTF("\NDIGITE O VALOR PARA TRANSFERIDO: "); SCANF("%F", &VALORDEPOSITOT); IF(SALDOVALOR <=0 ){ PRINTF("\N\N SALDO INSUFICIENTE PARA TRANSFERÊNCIA."); FIMOPERACAO(); } ELSE IF(VALORDEPOSITOT > SALDOVALOR){ PRINTF("\N"); PRINTF(" ____________________________________________________________________\N"); PRINTF(" \N"); PRINTF(" VALOR DIGITADO MAIOR QUE VALOR DISPONÍVEL PARA TRANSFERÊNCIA. \N\N"); PRINTF(" SALDO DISPONÍVEL: %.2F VALOR DIGITADO: R$%.2F \N", SALDOVALOR, VALORDEPOSITOT); PRINTF(" _________________________________________________________________ \N"); FIMOPERACAO(); } ELSE{ PRINTF("\NDIGITE O NUMERO DA CONTA: "); SCANF("%D", &CONTA); PRINTF("\NDIGITE O NUMERO DA AGÊNCIA: "); SCANF("%D", &AGENCIA); PRINTF("\N\N INSIRA O ENVELOPE COM O VALOR CORRETO E APERTE ALGUMA TECLA"); GETCH(); AGUARDANDO_LENTO(); FILE *ARQTRANSF; ARQTRANSF = FOPEN(CAMINHO2, "A"); IF(ARQTRANSF != NULL) { FPRINTF(ARQTRANSF, "%S %S %.2F %D %D T \N", TEXTODATA, TEXTOHORA, VALORDEPOSITOT, CONTA, AGENCIA); } FCLOSE(ARQTRANSF); FILE *ARQHIST2; ARQHIST2 = FOPEN(CAMINHO3, "A"); IF(ARQHIST2 != NULL) { FPRINTF(ARQHIST2, "%S %S %.2F T \N", TEXTODATA, TEXTOHORA, VALORDEPOSITOT); } FCLOSE(ARQHIST2); PRINTF("\N OPERAÇÃO CONCLUIDA COM SUCESSO"); FIMOPERACAO(); } } SISTEMA CAIXA.HTML FILE:///C:/USERS/REX/DESKTOP/SISTEMA CAIXA.HTML 47 6 DE 7 09/12/2014 15:58 INT FIMOPERACAO(){ CHAR ESC; PRINTF("\N\N\N ____________________________________________ \N\N "); PRINTF(" DESEJA REALIZAR OUTRA OPERAÇÃO ? \N\N"); PRINTF(" [1] SIM [2] NÃO \N"); ESC =GETCH(); IF(ESC == 49){ EXIBIRMENU(); } ELSE IF(ESC == 50){ SYSTEM("CLS"); HOME(); } ELSE{ FIMOPERACAO(); } }