Trabalhos Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório 3.2 Avaliação 4. Propostas Na disciplina de Programação II é proposto um único trabalho, dividido em duas partes, cuja apresentação e discussão será realizada em momentos diferentes dando origem a avaliações distintas. Ou seja, cada uma das partes dos trabalho poderá ter notas diferentes, sendo o peso de cada uma delas na nota final da disciplina de 15% para a 1ª parte e 20% para a 2ª parte. Para os alunos que tenham dispensa de avaliação contínua, o peso da nota de cada uma das partes do trabalho na nota final será de 20% e 30% respectivamente para a 1ª parte e 2º parte. 1. Objectivos Análise, projecto e desenvolvimento de uma aplicação que envolva alguns dos conceitos abordados na disciplina, nomeadamente, estruturas, ficheiros e apontadores. Os objectivos específicos de cada problema proposto deverão ser plenamente atingidas.!ª Parte Este módulo do trabalho deverá incluir todas as funcionalidades de manipulação de arrays de estruturas. Este módulo do trabalho deverá incluir todas as funcionalidades de manipulação de ficheiros binários, deverá também incluir as estruturas de dados definidas para a 1ª parte do trabalho. Ana Almeida Figueiredo 1
2. Calendarização Lançamento das propostas dos temas: 21 de Outubro de 2002 Identificação dos grupos e temas escolhidos: 25 de Outubro de 2002 Entrega do relatório e código da 1ª parte : até 15 de Novembro de 2002 Apresentação e discussão da 1ª parte : de 18 e 19 de Novembro de 2002 Entrega do relatório e código da 2ª parte : até 13 de Dezembro de 2002 Apresentação e discussão da 2ª parte: de 16 Maio a 17 de Dezembro de 2002 A identificação dos grupos e temas escolhidos pode ser entregue ao professor das aulas práticas. A entrega dos relatórios de cada uma das partes do trabalho deve ser feita em mão ao professor das aulas práticas. 3. Normas O trabalho pode ser realizado individualmente ou em grupos de dois alunos, no entanto, a apresentação e discussão será sempre realizada individualmente. 3.1 Relatório Dever ser realizado um relatório por cada uma das partes do trabalho, onde deverá constar obrigatoriamente: a identificação do trabalho, a identificação completa dos alunos que o realizaram, a especificação das funcionalidades implementadas, a definição completa das estruturas de dados utilizadas, uma explicação da estrutura geral do programa, e qualquer outra informação adicional que o aluno julgue conveniente. 3.2 Avaliação Na avaliação do trabalho serão considerados a concretização dos objectivos propostos, Ana Almeida Figueiredo 2
e definição das estruturas de dados, a estruturação do programa, a robustez, o interface. O não cumprimento das datas acima mencionadas implica a anulação da nota do trabalho. A não entrega de relatório implica uma redução para metade da nota final do trabalho 4. Propostas Tema 1 - Gestão de Contas Bancárias Tema 2 - Gestão de Stocks num armazém Tema 3- Gestão Comercial Tema 4- Gestão de dadores no IPS Tema 5- Gestão de Notas de Alunos num Curso Tema 6- Gestão de Candidatos ao Ensino Superior Ana Almeida Figueiredo 3
Tema 1- Gestão de Contas Bancárias Muitas pessoas são titulares de mais do que uma conta bancária (contas à ordem, a prazo, de poupança habitação/ reforma,...). Pretende-se uma aplicação que facilite a gestão do dinheiro em diferentes contas bancárias, bem como do dinheiro de bolso (aquele que está na posse do indivíduo). Deverá guardar informações sobre as contas; Número, descrição (ordem, prazo, poupança acções,...), Instituição Bancária, data de abertura e saldo. Deverá guardar informações dos movimentos de cada conta; (Data, conta a que se refere, valor e tipo (levantamento, depósito ou transferência), categoria (descrição do gasto, casa, seguros, medicina, salário, telefone, prendas, alimentação,...)). No caso de se tratar de uma transferência deverá guardar a informação da conta destino. A aplicação deverá permitir:?? Inserir alterar e eliminar contas e movimentos sobre contas.?? Transferências entre contas.?? Informação do saldo global.?? Avisar o utilizador quando o saldo de um movimento altera o saldo de uma conta para um valor negativo.?? Pesquisar movimentos sobre uma conta entre duas datas e respectiva, visualização no ecrã e gravação em ficheiro de texto.?? Pesquisa de movimentos por categoria numa ou em todas as contas.?? Guardar as categorias possíveis num ficheiro texto para permitir uma rápida inserção na altura de criar um movimento. Ana Almeida Figueiredo 4
Tema 2- Gestão de Stocks num armaém Pretende-se informatizar o processo de gestão de stocks num armazém de peças de automóveis. A informação necessária para este processo refere-se às peças em stock e à carteira de encomendas, estando esta organizada da seguinte forma: Stocks Código da peça Descrição da peça Quantidade em stock Quantidade mínima de segurança Preço Encomendas Código da encomenda Tipo de encomenda Código da peça Quantidade Data de Entrega O programa deverá ser capaz de realizar as seguintes operações: 1. Inserir uma nova peça. A quantidade de peças inicial deve ser zero 2. Adicionar uma encomenda. O tipo da encomenda indica se se trata de uma encomenda de clientes ou a fornecedores 3. Actualizar o stock, a partir das encomendas, tendo em consideração que uma encomenda de cliente implica uma saída de armazém enquanto que uma encomenda de um fornecedor implica uma entrada. 4. Apresentar as seguintes listagens: a. Quantidade de uma determinada peça existente em stock e respectiva quantidade mínima de segurança b. Códigos das peças cuja quantidade em stock seja inferior à quantidade mínima de segurança, bem como a quantidade que é necessário encomendar de modo a que fique em stock o triplo da quantidade mínima. Indicar o montante envolvido nessa operação. Ana Almeida Figueiredo 5
Tema 3 Gestão Comercial O proprietário de uma loja pretende ter informatizada informação sobre os produtos que vende habitualmente e respectivos fornecedores. Terá que ser guardada informação sobre o nome do produto, a referência do produto, o nome do fornecedor, preço de compra e e venda do produto. Note que cada produto pode ter mais do que um fornecedor (máximo 5), tendo para cada fornecedor um determinado preço de compra. Desenvolva um programa em Linguagem C que implemente uma aplicação para ajudar o proprietário da loja. A aplicação deverá manter num vector os dados dos produto ordenados alfabeticamente, e conter as seguintes funcionalidades:?? acrescentar produtos;?? acrescentar fornecedor a um produto;?? listar produtos;?? retirar produtos;?? pesquisar para um dado produto qual o fornecedor aconselhável;?? pesquisar qual o produto que permite tirar o maior lucro;?? alterar preço de compra de um produto a um determinado fornecedor;?? alterar preço de venda de um produto. Recorra a uma função para introduzir informação inicial na estrutura de dados a utilizar. Ana Almeida Figueiredo 6
Tema 4 Gestão de Dadores no IPS O Instituto Português de Sangue pretende informatizar a gestão dos dadores. Pretende-se que haja em memória central, num vector, um registo de todos seus dadores, com a seguinte informação:?? Nome?? Morada?? Telefone?? Data de nascimento?? Sexo?? Data da ultima doação efectuada?? Eliminado (S/N) Além da manutenção dessa informação, há algum processamento especial que só é feito em situações especiais. Os dadores recebem por altura dos seus anos, um pequeno cartão de felicitações. No passado, todos os dadores recebiam um cartão de boas-festas por altura do Natal, mas agora, por razões de contenção financeira, apenas o recebem os dadores que efectuaram uma doação a menos de um ano. Em situações em que há risco de vida e falta de sangue, o IPS pode contactar telefonicamente, os dadores com determinado tipo de sangue, de forma a verificar-se a eventual disponibilidade em efectuarem uma dádiva de sangue de carácter excepcional e urgentes. Mas são apenas contactados os dadores em situação que lhes permita doar sangue (exitem várias situações mas de momento apenas estas serão verificadas automaticamente):?? Se o dador for do sexo feminino, devem ter passado pelo menos 4 meses desde a ultima dádiva;?? Se o dador for do sexo masculino, devem ter passado pelo menos 3 meses desde a ultima dádiva. Pretende-se um programa com uma série de funções distintas, a saber: a) Uma função que permita a alteração de dados dos dadores. b) Uma função que faça a inserção de novos dadores. c) Uma função que permita a remoção de um dador da base de dados, pela alteração do campo Eliminado de N para S. d) Uma função que permita a eliminação de todos os registos cujo campo Eliminado seja S. No vector devem ficar apenas registos cujo campo Eliminado seja N. e) Uma função que mostre os dadores que fazem anos entre três a sete dias depois do dia actual. f) Uma função que mostre os dadores que fizeram uma dádiva de sangue a menos de um ano. g) Uma função que para um determinado tipo de sangue mostre todos os dadores em situação que lhes permita doar sangue. Aconselha-se a utilização de um menu com uma série de opções, de forma a que o utilizador possa escolher rapidamente o que deseja realizar no programa. Nota: Considere que todos os meses têm exactamente 30 dias. Ana Almeida Figueiredo 7
Ana Almeida Figueiredo 8
Tema 5 Gestão de Notas Pretende-se gerir a informação relativa aos alunos do Curso de Eng. Electrotécnica Electrónica e Computadores Essa informação deve ser armazenada da seguinte forma: Alunos Número Nome Disciplinas Código da disciplina Nome da disciplina Peso na nota do curso Notas Número do aluno Código da disciplina Nota Avaliação Continua Nota de Exame Nota de recurso Nº de faltas Elabore um programa que permita: 1. Efectuar a manutenção dos alunos, disciplinas e notas (inserção, alteração e eliminação) 2. Apresentar as seguintes listagens: a. as notas de um determinado aluno b. a percentagem de alunos que obtiveram uma determinada nota numa dada disciplina c. os nomes dos alunos que obtiveram uma determinada média global d. as notas de todos os alunos, identificados pelo seu nome, numa determinada disciplina, por ordem decrescente Ana Almeida Figueiredo 9
Tema 6 Gestão de Candidatos ao Ensino Superior O Departamento do Ministério da Educação responsável pela colocação dos alunos candidatos ao ensino superior pretende um programa que permita gerir os candidatos. Deve existir informação sobre os 50 CURSOS com o número do curso, a designação e os números clausus, assim como informação sobre os ALUNOS com o respectivo número, nome, nota de candidatura e os 10 cursos preferidos. O programa deve manter os dados ordenados pelo número, e deve permitir:?? Inserir novos cursos.?? Retirar curso.?? Ler a informação sobre os CURSOS e construir um array de cursos preferidos com a informação dos cursos (quando não está completamente preenchido contém zeros).?? Distribuir os candidatos pelos cursos tendo em atenção os números clausus, as notas de candidatura e as preferências dos candidatos.?? Construir array com informação sobre o nome de um candidato e a designação do curso em que foi colocado ou a indicação de "Não Colocado".?? Vários tipos de listagem:?? Todos os cursos?? Todos os cursos com maior número de candidatos "Não Colocados"?? Todos os cursos com números clausus vagos?? Todos os cursos com média superior a um determinado valor.?? Alterar os dados de um curso.?? Eliminar um candidato de um curso. Recorra a uma função para introduzir informação nas estruturas de dados a utilizar. Ana Almeida Figueiredo 10