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.
1ª Fase
Este módulo do trabalho deverá incluir todas as funcionalidades de manipulação de
arrays de estruturas.
2ª Fase
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ª
fase do trabalho.
2. Calendarização
Lançamento das propostas dos temas: 22 de Março de 2004
Identificação dos grupos e temas escolhidos: 29 de Março de 2004
Entrega do relatório e código da 1ª parte : até 26 de Abril de 2004
Apresentação e discussão da 1ª parte : de 26 a 30 de Abril de 2004
Entrega do relatório e código da 2ª parte : até 31 de Maio de 2004
Apresentação e discussão da 2ª parte: de 31 Maio a 04 de Junho de 2004
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,
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 da disciplina de Programação II
Tema 2 – Gestão de Edifícios e Condóminos
Tema 3 – Agenda Electrónica “Sem-Stress”
Tema 4- Gestão de uma Gare de Camionagem
Tema 5- Manutenção de assiduidade
Tema 6- Campeonato de Futsal
Tema 7- Gestão de uma Imobiliária
Tema 8- Gestão de um Horto
Tema 1 – Gestão da disciplina de Programação II
Elabore um programa que permita gerir a cadeira de Programação 2, nomeadamente, controle da
assiduidade, aprovações e reprovações, alguns dados estatísticos (por ex: percentagem dos alunos
reprovados e aprovados, e etc.) e contabilísticos (por ex: numero de alunos que realizaram os trabalhos, os
mini-testes, e etc.).
O programa deverá guardar informações sobre os dados dos alunos (numero, nome e turma), as
respectivas classificações nos mini-testes e nos trabalhos, assim como nos exames.
Em função dos critérios definidos para a cadeira de Programação 2 (2 º semestre do ano lectivo 2003/04)
determinar os alunos aprovados e reprovados.
Os critérios definidos para a cadeira de Programação 2:
• A avaliação durante o período lectivo, Nota de Frequência, tem um peso de 50% no valor final da
nota da disciplina. Esta avaliação é realizada durante o período lectivo e tem duas componentes:
o Três mini-testes escritos, a realizar ao longo do período lectivo, com um peso de 15% na
nota final, no entanto dos três mini-testes considera-se somente as duas melhores
classificações.
o Dois trabalhos práticos, a realizar ao longo do período lectivo, em grupo ou individualmente,
apresentados e discutidos individualmente em qualquer um dos casos. O primeiro trabalho
terá um peso de 15% na nota final e o segundo trabalho terá um peso de 20% na nota final.
•
Os alunos com dispensa de avaliação contínua ficam dispensados da realização dos mini-testes
escritos, mas não dispensados da realização dos trabalhos, que neste caso terão um peso global de
35% na nota final.
• Avaliação na prova de exame:
o Prova escrita no final do semestre, com um peso de 50% para os alunos não dispensados
de avaliação contínua e um peso de 65% para os alunos dispensados de avaliação
contínua.
o Para aprovação na disciplina o aluno deverá ter na prova de exame uma classificação igual
ou superior a 7 valores
• Classificação final da disciplina
o A classificação final obtém-se a partir da média pesada da Nota de Frequência (NFREQ)e
da Prova de Exame (PE), tendo em consideração que para ser Aprovado o aluno precisa de
ter o mínimo de 7 valores na Nota de Exame.
( xNFREQ + yPE )
x+y
x = 0.5
y = 0.5
o
•
Min NFREQ = 0
Min PE = 7
Para os alunos com dispensa de avaliação contínua a Nota de Frequência é substituída
pela Nota dos Trabalhos (NTRAB). Assim:
( xNTRAB + yPE )
x+y
x = 0.35
Min NTRAB = 0
y = 0.65
Min PE = 7
Nota: reprovam os alunos que não assistam a pelo menos 2/3 das aulas práticas efectivamente
dadas.
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e alteração e eliminação), leitura
(consultas), pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Desenvolvimento das funções de manipulação de ficheiros e criação de estruturas para armazenar a
informação necessária. (inserção e alteração e eliminação), leitura (consultas), pesquisa de dados no
ficheiro, assim como funções de ordenação se assim entender necessário.
Tema 2 – Gestão de Edifícios e Condóminos
Desenvolva uma aplicação que permita realizar a gestão dos condomínios de vários edifícios. Para
tal necessita de armazenar informação relativa aos edifícios e aos condóminos de cada edifício.
Relativamente aos edifícios a informação a armazenar é a seguinte, código edifício, nome do
edifício, morada, localidade, número de fracções, valor anual estimado para gastos em água, valor
anual estimado para gastos em electricidade, valor anual estimado para gastos em limpezas, valor
anual estimado para gastos em jardinagem, valor anual estimado para gastos em segurança, valor
anual estimado para gastos em elevadores, valor anual estimado para outro tipo de despesas.
Quanto aos condóminos (proprietário de uma fracção existente no edifício) a informação necessária
é a seguinte, código do edifício, número da fracção, nome do proprietário, percentagem ocupada
pela fracção no edifício, valor mensal a pagar pela água, valor mensal a pagar pela electricidade,
valor mensal a pagar pela limpeza, valor mensal a pagar pela jardinagem, valor mensal a pagar pela
segurança, valor mensal a pagar pelos elevadores, valor mensal a pagar para outros tipos de
despesas e número de meses pagos pelo proprietário.
A aplicação deve permitir inserir edifícios e condóminos, tendo sempre em atenção as necessárias
validações. A aplicação deve também permitir alterar, consultar e eliminar esta informação. Além
disso, deve ser capaz de calcular os valores a serem pagos por cada condómino relativos às despesas
do edifício e alertar se há condóminos com valores em atraso.
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura,
pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Desenvolvimento das funções de manipulação de ficheiros e criação de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura e
pesquisa de dados no ficheiro, assim como funções de ordenação se assim entender necessário.
Tema 3 – Agenda Electrónica - “SEM–STRESS”
Desenvolva uma aplicação que permita manter uma Agenda Electrónica que possa ser utilizada por
várias pessoas, cada pessoa é identificada pelo nº de BI e por uma Senha.
O programa deverá guardar informações sobre Compromissos (Data, Hora, Descrição e [Duração])
e Tarefas (Descrição, [Data] e [Hora]) dos vários utilizadores da agenda. Os Compromissos podem
estar relacionas com uma determinada Categoria (Reunião, Férias, Chamada Telefónica, ...) e as
Tarefas encontram-se sempre num determinado Estado (Por Iniciar, Em progresso, Completa).
A aplicação deverá permitir:
•
•
•
•
Inserir, Alterar e Eliminar informação sobre Compromissos e Tarefas.
Apresentar ou enviar para Ficheiro Texto, Compromissos agendados para determinado Dia,
Semana ou Mês.
Apresentar ou enviar para Ficheiro Texto, Compromissos agendados de uma determinada
Categoria.
Apresentar ou enviar para Ficheiro Texto, Tarefas que se encontrem num determinado
Estado.
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura,
pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Desenvolvimento das funções de manipulação de ficheiros e criação de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura e
pesquisa de dados no ficheiro, assim como funções de ordenação se assim entender necessário.
Tema 4 – Gestão de uma Gare de Camionagem
A ISEPTours, empresa de viagens internacionais em camionetas, alargou o negócio à Europa de
Leste. Consequentemente, pretende criar um sistema de controlo das partidas/chegadas.
Para este sistema, pretende-se implementar um programa que permita guardar informação sobre as
partidas/chegadas, com as seguintes funcionalidades:
• Adicionar/remover a partida, com informação da hora, camioneta e destino.
• Adicionar/remover a partida, com informação da hora, camioneta e proveniência.
• Atrasar uma chegada/partida.
• Listar informação sobre as próximas chegadas/partidas.
• Listar informação sobre as partidas/chegadas, dado um destino/proveniência.
• Calcular o tempo para uma chegada/partida.
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura,
pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Deve desenvolver a aplicação criada anteriormente, de forma a que seja possível, no final do dia,
guardar a informação no disco para o dia seguinte.
Tema 5- Manutenção de assiduidade
Uma empresa tem-se debatido com alguns problemas relativamente à assiduidade e pontualidade
dos seus funcionários. Assim, pretende implementar um sistema de manutenção da assiduidade dos
seus colaboradores, na tentativa de reduzir os problemas encontrados.
O programa a desenvolver deve permitir registar os empregados, juntamente com os respectivos
horários.
As horas de entrada e saída são registadas pelo segurança, que introduz as horas juntamente com a
respectiva data.
Deverá ser possível verificar os dados sobre a assiduidade de um determinado funcionário, sobre os
funcionários que se atrasaram num dado intervalo de tempo ou funcionários que faltaram num
intervalo de tempo.
Adicionalmente, será instituído um “prémio” para os 3 funcionários menos assíduos, aos quais será
descontado 2% do salário por cada hora que tenham faltado. A contabilização das horas de faltas
será feita adicionando todos os intervalos de tempo que o funcionário faltou, contando um dia como
8 horas. Para tal deve ser elaborada uma lista de funcionários, ordenada decrescentemente pelo
número de horas de falta.
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura,
pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Desenvolvimento das funções de manipulação de ficheiros e criação de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura e
pesquisa de dados no ficheiro, assim como funções de ordenação se assim entender necessário.
Tema 6 - Campeonato de Futsal
Devido à grande participação que se regista no campeonato de Futsal Taça ISEP 150 anos,
pretende-se, para futuros eventos destes tipo, desenvolver um programa que ajude a registar os
dados relativos ao decorrer do campeonato. Deve ser possível armazenar informação das várias
equipas (nome da equipa, contacto do responsável, elementos que a constituem, etc).
Pretende-se que o torneio decorra sob a forma de rondas. Assim, o programa terá que permitir a
manutenção dos pontos acumulados por cada equipa, em cada jogo durante cada ronda. No final de
uma ronda (indicada pelo utilizador), o programa deve verificar os pontos de cada equipa e apenas
manter no campeonato as N equipas com melhor pontuação e reiniciar a pontuação de cada. As
rondas repetem-se até termos o grande vencedor da taça.
Em qualquer momento deverá ser possível ver um sumário sobre o decorrer do campeonato.
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura,
pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Desenvolvimento das funções de manipulação de ficheiros e criação de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura e
pesquisa de dados no ficheiro, assim como funções de ordenação se assim entender necessário.
Tema 7 – Gestão de uma imobiliária
Pretende-se criar uma aplicação informática para controlo e gestão de uma imobiliária.
Determinada imobiliária solicitou o desenvolvimento de uma aplicação que permitisse armazenar as
características de vários apartamentos e de vários possíveis compradores. Pretende-se que sejam
guardadas as seguintes características sobre os apartamentos à venda:
• Nº de angariação
• Nome(s) dos proprietários
• Tipologia (por exemplo, T2, T1+1)
• Área útil
• Se tem garagem e se esta é fechada ou aberta
• Se tem varanda
• Nº de anos do imóvel
• Morada do imóvel
• Contactos dos proprietários
• Preço de venda do imóvel
Para os possíveis compradores interessa saber:
• Tipologia pretendida
• Nome(s) dos possíveis compradores
• Nº de anos
• Preço mínimo
• Preço máximo
• Nº de anos do imóvel
• Localidade ou localidades onde fica o imóvel a comprar
• Nº de telefone para contacto
Pretende-se o desenvolvimento de um programa em C com as seguintes funcionalidades:
a. Permita a inserção de dados;
b. Permita a alteração de dados, inclusive a inserção/remoção de outros telefones de contacto,
ou localidades de interesse para os possíveis compradores;
c. Permita a listagem de todos os imóveis que possam interessar a determinado cliente,
ordenada pelo preço;
d. Permita apagar todos os dados de um determinado imóvel.
e. Permita apagar todos os dados de um possível comprador
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura,
pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Desenvolvimento das funções de manipulação de ficheiros e criação de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura e
pesquisa de dados no ficheiro, assim como funções de ordenação se assim entender necessário.
Tema 8 – Gestão de um Horto
Determinada cadeia de lojas especializadas no comércio de plantas pediu o desenvolvimento de uma
aplicação que permitisse armazenar as características das várias plantas comercializadas de forma a
melhor responder as solicitações dos clientes, mesmo quando atendidos por funcionários menos
experientes. Pretende-se que sejam guardadas as seguintes características:
•
Nome científico da planta;
•
Nomes comuns (há plantas com mais do que um nome comum);
•
Meses de floração (há plantas sem flores);
•
Cor(es) das flores para diversas variedades da planta. Por exemplo, determinada
planta pode ter flores amarelas ou brancas, mas outra planta diferente pode ter apenas
flores brancas;
•
Se a planta é de interior ou exterior;
•
Se a planta necessita de muita ou pouca luz;
•
Frequência de utilização de adubos (em meses);
•
Frequência de rega (em dias)
•
Preço
Pretende-se o desenvolvimento de um programa em C que numa fase inicial apenas trabalhe em memória
central e que tenha as seguintes funcionalidades:
a. Permita a inserção de dados de novas plantas;
b. Permita a alteração de dados, inclusive a inserção/remoção de outros nomes
comuns ou de outras cores possíveis para as flores;
c. Permita a listagem de todas as plantas que reunam determinadas
características, ordenada pelo preço;
Permita apagar todos os dados de uma determinada planta.
1ª Fase
Desenvolvimento das funções de criação e manipulação de arrays de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura,
pesquisa de dados no array e ordenação se assim entender necessário.
2ª Fase
Desenvolvimento das funções de manipulação de ficheiros e criação de estruturas para armazenar a
informação necessária. Deverão ser utilizadas funções de escrita (inserção e actualização), leitura e
pesquisa de dados no ficheiro, assim como funções de ordenação se assim entender necessário.
Download

Trabalhos Práticos 1. Objectivos