·

Sistemas de Informação ·

Estrutura de Dados

Send your question to AI and receive an answer instantly

Ask Question

Preview text

INSTITUTO FEDERAL FLUMINENSE IFF Campus Itaperuna Prof Leandro Fernandes dos Santos leandrofsantosiffedubr Disciplina Estruturas de Dados Atividade Avaliativa 2 A2 Turma Sistemas de Informação 3º Período Objetivo A presente atividade avaliativa tem como objetivo consolidar os conceitos vistos sobre Listas Encadeadas e sua implementação utilizando a linguagem C Observações e regras de entrega Esta atividade poderá ser realizada em dupla Terá o valor de 6 pontos na composição da A2 A solução deverá ser enviada por meio da plataforma runcodes até as 23h59min do dia 19032023 Pontos importantes a serem seguidos Conformidade com os requisitos aqui apresentados Uso dos conceitos de modularização Códigos bem estruturados e bem indentados Caso seja detectada a ocorrência de plágio será atribuída nota zero a todos os envolvidos Submissões que apresentarem erros de compilação ou falhas de segmentação no runcodes NÃO serão corrigidas O não atendimento dos requisitos especificados neste documento acarretará em perda de pontos Instituto Federal FluminenseIFF Campus Itaperuna Especificacao Sistema Bancario Simplificado Considere um banco fictıcio chamado BomBanco no qual possui clientes contas e movi mentacoes bancarias saques depositos e transferˆencias Por simplificacao dentro deste banco cada cliente possui uma unica conta sendo associada a esta conta todas as movimentacoes bancarias realizadas Os clientes deste banco podem ser organizados por meio de listas encade adas e as respectivas movimentacoes de suas contas tambem podem ser modeladas com listas encadeadas Desta forma poderıase ter em um determinado momento a seguinte configuracao Nesta atividade vocˆe devera implementar em C este sistema bancario simplificado Para tal vocˆe devera seguir a estrutura basica inicial bankc fornecida juntamente com esta especificao Nesta estrutura se encontra implementada a leitura de uma unica variavel denominada path sendo esta o caminho para o arquivo de entrada nomeado como bankdata e que tambem e fornecido com a especificacao Neste arquivo se encontram todos os dados referentes ao sistema bancario que sao necessarios para seu funcionamento No arquivo bankc tambem ha uma funcao denominada readFile Esta funcao realiza a leitura dos dados que se encontram padronizados no arquivo bankdata Para a realizacao desta atividade vocˆe devera completar a implementacao das estruturas e funcoes ja predefinidas no arquivo 2 Instituto Federal FluminenseIFF Campus Itaperuna Os tipos basicos TADs que devem ser completados sao Movimentacao tipo Valor inteiro representando uma operacao Valores possıveis 0 Deposito 1 Saque 2 transferˆencia idClienteDest Caso seja uma transferˆencia este campo deve conter o id do cliente para quem a transferˆencia foi enviada Para as demais operacoes este valor pode ser 0 idClienteOrig Em todos os tipos de movimentacoes este campo deve conter o id do cliente de origem valor Valor em ponto flutuante representando o valor da movimentacao Conta numero numero inteiro representando o numero da conta saldo saldo da conta que e atualizado de acordo com as movimentacoes movimentacoes lista de movimentacoes Lista Encadeada realizadas na respectiva conta Cliente id numero inteiro para identificacao do cliente conta conta do respectivo cliente Banco nome nome do banco clientes lista de clientes Lista Encadeada do banco Apos o termino da especificacao dos tipos acima vocˆe devera terminar a implementacao das seguintes funcoes Banco criarBanco Tem por objetivo criar um novo banco e retornar um ponteiro para o banco criado Cliente criarNovoClienteint idCliente int numConta float saldo Tem por objetivo criar um novo cliente e retornar um ponteiro para o cliente criado Movimentacao criarNovaMovimentacaoshort int tipo float valor int idClienteOrig int id ClienteDest Tem por objetivo criar uma nova movimentacao e retornar um ponteiro para a movimentacao criada Caso o tipo da movimentacao seja diferente de 2 transferˆencia entao o valor de idClienteDest devera ser 0 3 Instituto Federal FluminenseIFF Campus Itaperuna void adicionarClienteBanco b Cliente c Esta funcao devera adicionar o cliente c a lista de clientes do banco b A adicao devera ser realizada de maneira ordenada crescente pelo numero do cliente void realizarDepositoCliente c Movimentacao dep Funcao que adiciona uma movi mentacao de deposito na lista de movimentacoes da conta do cliente c Lembrese que o saldo do cliente devera ser atualizado apos a movimentacao A insercao devera ser realizada sempre no final da lista de movimentacoes float realizarSaqueCliente c Movimentacao saque Funcao que adiciona uma movi mentacao de saque na lista de movimentacoes da conta do cliente c Lembrese que o saldo do cliente devera ser atualizado apos a movimentacao A insercao devera ser realizada sempre no final da lista de movimentacoes void realizarTransferenciaCliente clienteOrig Cliente clienteDest float valor Funcao que adiciona uma movimentacao de saque na lista de movimentacoes da conta do cliente de origem clienteOrig e adiciona uma movimentacao de deposito na lista de movimentacoes da conta do cliente de destino clienteDest Lembrese que o saldo de ambos os clientes deverao ser atualizados apos a realizacao das movimentacoes As insercoes deverao ser realizadas sempre no final da lista de movimentacoes dos clientes Cliente buscarClienteBanco b int idCliente Esta funcao devera retornar o endereco do cliente que possui o idCliente na lista de clientes do banco b A funcao devera retornar NULL caso o cliente nao se encontre na lista void liberarBancoBanco b Funcao que tem por objetivo liberar toda e qualquer memoria alocada dinamicamente para o banco void imprimirDadosBanco B Funcao que tem por objetivo imprimir todos os dados do banco no padrao requerido da especificacao Vocˆe NAO devera modificar o padrao de leitura dos dados no arquivo de entrada pois caso o modifique os testes poderao nao funcionar corretamente uma vez que estes estao baseados no formato proposto Vocˆe podera criar outras funcoes auxiliares se achar necessario Apos a insercao dos dados em todas as estruturas criadas o programa devera apresentar uma saıda resumindo todas as movimentacoes dos clientes conforme o exemplo mostrado a seguir Obs A saıda de exemplo e correspondente ao arquivo de entrada de teste fornecido 4 Instituto Federal FluminenseIFF Campus Itaperuna Id Cliente 101 Numero Conta 120 Saldo inicial 000 Movimentacoes Tipo Deposito Valor 50000 Tipo Saque Valor 10000 Tipo Transf Valor 12000 Destinatario 110 Saldo Final 28000 Id Cliente 102 Numero Conta 121 Saldo inicial 10000 Movimentacoes Tipo Saque Valor 3000 Tipo Transf Valor 9000 Origem 103 Saldo Final 16000 Id Cliente 103 Numero Conta 122 Saldo inicial 2000 Movimentacoes Tipo Deposito Valor 60000 Tipo Transf Valor 9000 Destinatario 102 Saldo Final 53000 Id Cliente 104 Numero Conta 123 Saldo inicial 5000 Movimentacoes Tipo Deposito Valor 75000 Tipo Saque Valor 5000 Tipo Transf Valor 5000 Destinatario 107 Saldo Final 70000 Id Cliente 105 Numero Conta 124 Saldo inicial 000 Movimentacoes Tipo Deposito Valor 100000 Tipo Saque Valor 30000 Tipo Transf Valor 10000 Destinatario 108 Saldo Final 60000 Id Cliente 106 5 Instituto Federal FluminenseIFF Campus Itaperuna Numero Conta 125 Saldo inicial 5000 Movimentacoes Tipo Transf Valor 20000 Origem 109 Saldo Final 25000 Id Cliente 107 Numero Conta 126 Saldo inicial 000 Movimentacoes Tipo Deposito Valor 55000 Tipo Saque Valor 20000 Tipo Transf Valor 5000 Origem 104 Saldo Final 40000 Id Cliente 108 Numero Conta 127 Saldo inicial 5000 Movimentacoes Tipo Transf Valor 10000 Origem 105 Saldo Final 15000 Id Cliente 109 Numero Conta 128 Saldo inicial 000 Movimentacoes Tipo Deposito Valor 150000 Tipo Saque Valor 20000 Tipo Transf Valor 20000 Destinatario 106 Saldo Final 110000 Id Cliente 110 Numero Conta 129 Saldo inicial 5000 Movimentacoes Tipo Transf Valor 12000 Origem 101 Saldo Final 17000 Comece a tentar resolver a atividade o quanto antes enquanto os assuntos tratados estao frescos na memoria e o prazo para terminalo esta tao longe quanto jamais podera estar Bom Trabalho 6