Enunciado do projecto final de programação aqui - versão 2.

Ficheiro com a listagem das estações aqui e com a listagem de viagens aqui. Ficheiro adicional com uma nova listagem de viagens aqui.

Todos os projectos intermédios entregues devem compilar em Linux usando o seguinte comando: gcc *.c -g -I/usr/local/include -Wall -pedantic -std=c99 -L/usr/local/lib -lm -lSDL2 -lSDL2_ttf -lSDL2_image -o bikestation

Nota: o local dos ficheiros include e das bibliotecas poderá variar conforme a versão do Linux usada (fazer "sdl2-config --cflags --libs" para descobrir os locais).

Q1: O ficheiro das estações tem uma linha de cabeçalho. O que fazer ?
Ignorar a linha durante a leitura do ficheiro.

Q2: Alguns dados (linhas) dos ficheiros não estão correctos. O que fazer ?
Fazer validação e ignorar ou corrigir os dados.

Q3: Segundo o enunciado, devemos "perguntar ao utilizador quantas viagens devem ser mostradas". Isto significa mostrar apenas X viagens ou mostrar todas as viagens, mas apenas X de cada vez, sendo que o utilizador pode ir passando "páginas" de X viagens?
Mostrar páginas de X viagens.

Q4: Como é que posso calcular a distância entre duas estações ?
A partir da latitude e longitude: http://www.movable-type.co.uk/scripts/latlong.html. 

Q5: Como é que posso calcular o dia da semana a partir da data ?
Ver http://mathforum.org/dr.math/faq/faq.calendar.html

Q6: Como é que se calcula o valor mínimo, máximo é médio na listagem de estações ?
Calcula-se o número de bicicletas a sair (e a entrar) por hora do dia para todas viagens de uma estação, obtendo-se um vector de ocorrências. De seguida, calcula-se o valor máximo, mínimo é médio desse vector. 
Para a estação 3 com o ficheiro fornecido, dá 72, 11 e 27.6 (período de tempo entre as 8h00 e as 22h00).

Q7: Como é que devem limpar a selecção de dados ?
Removendo todos os nós da lista e carregando do ficheiro ou de uma estrutura auxiliar.

Q8: Qual é a escala de notas utilizada na avaliação do projecto final ?
Na secção 5.1 do enunciado do projecto foram identificadas as principais fases do projecto e organizadas em listas numeradas. Desta forma, estas notas indicativas são usados no projecto:
  • Até ao ponto 4: 7 valores máximo
  • Até ao ponto 5: 8 valores máximo
  • Até ao ponto 6: 10 valores máximo
  • Até ao ponto 7: 12 valores máximo
  • Até ao ponto 8: 14.5 valores máximo
  • Até ao ponto 9: 17 valores máximo
  • Até ao ponto 10: 19 valores máximo
  • Até ao ponto 11, considerando vários aspectos: 20 valores máximo
Note-se que estes são valores máximos e a nota vai depender de vários factores como a discussão, qualidade do código produzido, ocorrência de bugs, etc..