1. O documento descreve vários sistemas para gerir dados relacionados com atletas, automóveis, reuniões com clientes, carteiras de ações e despesas mensais. Para cada sistema, propõe estruturas de dados e métodos para adicionar, consultar e alterar registos.
1. Procedimentos e Funções<br />Dados de atleta e calculo do IMC <br />Pretende-se registar e processar um conjunto de dados relativos aos atletas de determinado clube desportivo.<br />Para cada atleta deve ser considerada a seguinte informação: <br />codigo, nome, altura, peso, índice de massa corporal (IMC)<br />Notas:<br />Deve utilizar um array de registos.<br />Como não sabemos de quantos atletas se trata, deve usar uma sentinela na leitura dos dados.<br />Métodos a implementar:<br />Leitura e armazenamento da informação relativa a um ou mais atletas, armazenando também o IMC de cada atleta - IMC = peso / (altura * altura) <br />Consulta da informação relativa a um atleta a partir do seu codigo, com a apresentação do conteúdo de todos os campos do registo.<br />Listagem com o codigo, nome, altura, peso e IMC de todos os atletas.<br />Listagem com o codigo, nome, altura, peso e IMC de todos os atletas cujo IMC é superior ao IMC médio do conjunto.<br />Stand Automóvel <br />Um stand pretende gerir a informação sobre os automóveis disponíveis para venda.<br />A informação a considerar para cada automóvel : codigo, marca, modelo, cor, ano, cilindrada, potência, preço de compra, preço de venda<br />Conjunto de métodos que implementam as seguintes operações: <br />a) Acrescentar informação de um novo automóvel disponível para venda <br />b) Listar todos os automóveis de determinada marca (modelo, cor, cilindrada, potência e preço de venda)<br />c) Listar o código, marca, modelo, preço de compra e preço de venda dos automóveis de maior margem de lucro<br />d) Listar todos os automóveis de cilindrada compreendida entre 2 valores a definir pelo utilizador (marca, modelo, cor, cilindrada, potência e preço de venda)<br />e) Listagem geral de todos os automóveis disponíveis (listar todos os campos)<br />f) Remover a informação de um automóvel a partir da leitura do seu código.<br />g) Actualizar a informação de determinado automóvel a partir da leitura do seu código<br />xxxxx<br />Um stand pretende gerir a informação sobre os automóveis disponíveis para venda. A informação a considerar para cada automóvel é a seguinte:<br />codigo, marca, modelo, cor, ano, cilindrada, potência, preço de compra, preço de venda<br />Nota: Deve utilizar um array de registos.<br />2.1.Apresente as estruturas de dados que permitem armazenar a informação relativa aos automóveis do stand em questão.<br />2.2.Desenvolva um conjunto de métodos que permitam implementar as operações:<br />a)Acrescentar informação de um novo automóvel disponível para venda <br />b)Listar todos os automóveis de determinada marca (modelo, cor, cilindrada, potência e preço de venda)<br />c)Listar o código, marca, modelo, preço de compra e preço de venda dos automóveis de maior margem de lucro<br />d) Listar todos os automóveis de cilindrada compreendida entre 2 valores a definir pelo utilizador (marca, modelo, cor, cilindrada, potência e preço de venda)<br />e) Listagem geral de todos os automóveis disponíveis (listar todos os campos)<br />f) Remover a informação de um automóvel a partir da leitura do seu código.<br />g)Alterar a informação de determinado automóvel a partir da leitura do seu código<br />2.3.Construa o método main() de modo a que selectivamente (de acordo com uma opção escolhida pelo utilizador), permita executar os procedimentos desenvolvidos em 8.2.<br />Gestão de reuniões com clientes<br />Construa em C# um programa que permita controlar as marcações de reuniões com clientes de modo a otimizar o relacionamento com estes. Vamos partir do principio que são os clientes a proporem as datas para as reuniões. A questão que se coloca é dizer sim ou não às datas propostas em função da importância do cliente.<br />Para cada cliente temos de registrar: um nome; uma classificação (de 1 a 5). A classificação do cliente indica o seu grau de importância, em que 5 é o grau de importância máximo. <br />Quando um cliente de valor 5 marca uma reunião para um dia e hora onde já esteja marcada outra reunião com cliente de menor importância, este último tem de ser avisado que a sua reunião foi desmarcada.<br />Considera-se que cada reunião dura uma hora, que pretendemos marcar reuniões para um mês, que cada mês tem 31 dias, e que em cada dia as reuniões só podem ser marcadas entre as 8:00 e as 20:00 horas.<br />Desenvolva um conjunto de métodos que permitam executar as seguintes operações:<br />Introduzir os dados de um cliente: nome e classificação. O código do cliente corresponde à sua posição no array clientes;<br />Dado um código de um cliente, altere a sua classificação;<br />Marque uma reunião com um cliente, indicando o dia e a hora. No caso de já estar marcada uma reunião para esse dia e a essa hora, duas situações podem ocorer:<br />A reunião que já está marcada é com um cliente de maior ou igual importância. Neste caso o método retorna false, e a reunião não é marcada;<br />A reunião que já está marcada é com um cliente de menor importância. Neste caso o método retorna true, e a reunião é marcada com o cliente mais importante. No entanto, tem de ser retornado o código do cliente para o qual foi desmarcada a reunião;<br />Listar todas as reuniões marcadas para um dado dia (hora, nome do cliente, e importância do cliente)<br />Listar todas as reuniões marcadas com um cliente para todo o mês<br />Indicar o nome e importância do cliente que tem mais reuniões marcadas no mês<br />Listar por ordem decrescente de importância, todos os clientes que não têm qualquer reunião marcada<br />Listar todas as reuniões marcadas para o mês (dia, hora, nome do cliente, e importância do cliente)<br />Construa o método main() de modo a que selectivamente (de acordo com uma opção escolhida pelo utilizador), permita executar os procedimentos anteriores.<br />Gestão de carteira de acções<br />Construa em C# um programa que permita controlar uma carteira de acções. Para cada conjunto de acções, pretende-se armazenar a seguinte informação:<br />Nome da Empresa; número de acções em carteira; total investido; total recebido<br />Desenvolva um conjunto de métodos que permitam executar as seguintes operações:<br />a)Introduzir acções de uma nova empresa: Neste caso deve ser introduzido o nome da empresa, o número de acções compradas, o valor unitário e o total investido (gasto).<br />b)Introduzir acções de uma empresa existente: Neste caso deve ser somado o número de acções compradas ao total de acções que já temos desta empresa, além de somar o valor investido (calculado a partir do valor unitário) ao total investido (gasto) nas acções desta empresa.<br />c)Listar para todas as empresas, o número de acções e a diferença entre o valor total investido e o valor total recebido com as acções da empresa.<br />d)Vender acções de uma empresa: Neste caso, é necessário indicar o número de acções vendidas, o valor unitário de venda, e somar o valor total de venda ao Total recebido<br />e)Listar ganhos e perdas: Para cada ação, indicar o nome da empresa, o número de ações em carteira, a diferença entre o total investido e o total recebido, e o valor unitário das ações em carteira, calculado da seguinte forma<br />(Total investido – Total Recebido)<br />Valor unitárioNúmero total de acções=<br />f)Listar o valor das ações por ordem decrescente de valor. Como interpretar e tratar os valores unitários negativos?<br />g)Calcular o valor total da carteira<br />Construa o método main() de modo a que selectivamente (de acordo com uma opção escolhida pelo utilizador), permita executar os procedimentos anteriores.<br />Gestão mensal de despesas<br />Construa em C# um programa que permita anotar e controlar todas as despesas ao longo de um mês. Para efeitos de simplificação considere que um mês tem 31 dias.<br />Cada despesa tem uma descrição, pertence a um tipo, ocorre num dia do mês e tem um valor. Considere os tipos seguintes: transportes, alimentação, vestuário, água, luz, alimentação, educação<br />Desenvolva um conjunto de métodos que permitam executar as seguintes operações:<br />Introduzir despesas de um dia: Neste caso devem ser introduzidos os dados das despesas de um só dia e deve considerar que o número de despesas não é conhecido à partida;<br />Listar todas as despesas de um dia;<br />Listar todas as despesas do mês que pertencem a um mesmo tipo (introduzido pelo utilizador);<br />Indicar o dia em que foram feitas mais despesas e indicar o total de despesas desse dia;<br />Indicar o tipo de despesas onde foi gasto mais dinheiro num intervalo de dias (e.g. do dia 3 ao dia 10) e indique o total dessas despesas.<br />Para um determinado tipo de despesas, indicar a média diária de despesas e os dias onde a média foi ultrapassada (para esses dias indicar o respectivo valor)<br />Construa o método main() de modo a que selectivamente (de acordo com uma opção escolhida pelo utilizador), permita executar os procedimentos anteriores.<br />Pauta de Linguagens de Programação<br />Construa em C# um programa que permita manter a pauta da disciplina de Linguagens de Programação.<br />A nota final de cada aluno pode ser obtida por avaliação contínua ou por exame.<br />Por avaliação inclui dois testes e uma componente prática. O primeiro teste tem um peso de 30%, o segundo teste de 50% e a componente prática 20%. Qualquer uma destas componentes tem de ser maior ou igual a 10. Caso o aluno não obtenha uma nota na avaliação contínua maior ou igual a 10, tem de ir a exame, onde, tem de tirar uma nota maior ou igual a 10 para ser aprovado.<br />Quando um aluno não tem nota a uma componente (falta), a nota é assinala como -1<br />Depois de introduzir as notas da disciplina, pretende-se produzir os seguintes resultados:<br />Número de alunos avaliados e número de alunos não avaliados. Um aluno considera-se avaliado se tem pelo menos uma nota, por exemplo, se foi a um dos testes.<br />Número de alunos avaliados que tiveram nota >= 10<br />Número de alunos avaliados que tiveram nota < 10<br />Percentagem dos alunos avaliados que tiveram nota >=10<br />Percentagem dos alunos avaliados que tiveram nota <10<br />Nome do aluno ou alunos com a maior nota final<br />Média das notas de cada teste e do exame (atenção não contar com os alunos não avaliados)<br />Construa o método main() de modo a que selectivamente (de acordo com uma opção escolhida pelo utilizador), permita executar os procedimentos anteriores.<br />