% Rishi Vadher
% http://rishivadher.pt.vu
[missoes] = ler_missoes;
%Menu do utilizador
while true
fprintf('\n\nMenu principal:\n 1 - Analisar um ficheiro de dados\n 2 – Apresentar lista de missões por factor de prioridade decrescente\n 3 - Remover missao manualmente\n 4 – Criar relatório da escolha da missão\n 0 - Terminar o programa\n');
p = input ('\nIntroduza a opçao pretendida:', 's');
% O utilizador deve introduzir o numero correspondente à opção do menu
% que pretende (0;1;2;3 ou 4)
switch p
case '1'
x = dir('*.tab');
% find('tab') = x;
fprintf('\n\nCódigo | Ficheiro\n')
for i = 1:length(x)
fprintf(' %d | %s\n',i,x(i).name);
end
% Pede o código correspondente ao ficheiro a analisar
while true
codigo = input('\nIntroduza o código do ficheiro a processar:');
if codigo >i || codigo<=0
fprintf('Erro, código não válido.\n');
else
fprintf ('\nFicheiro enviado para análise, aguarde um momento...\n')
break
end
end
nome_ficheiro=x(codigo).name;
% cria uma struct com as informaçoes do ficheiro analisado
[missoes_novo] = opcao_1(nome_ficheiro);
% adiciona as informaçoes do ficheiro analisado neste ponto ao ficheiro
% que ja continha missoes analisadas anteriores
[missoes] = escreverficheiros(missoes_novo, missoes);
case '2'
% ordena as missoes analisadas por factor de prioridade
% decrescente e apresenta-as;
[missoes] = opcao_2 (missoes);
case '3'
[missoes] = apagarmissoes(missoes);
case '4'
% Esta opção leva o utilizador ao submenu
% Apresenta a lista missoes analisadas
mostrar_missoes_4(missoes);
while true
fprintf ('\n\nSubmenu:\n 1 - Limitar lista de missões por prioridade mínima\n 2 – Gerar relatório\n 0 - Voltar ao menu principal: \n\n');
submenu = input('\nIntroduza a opçao do submenu pretendida:', 's');
% O utilizador introduz o numero da opção do submenu que
% deseja efectuar (0;1 ou 2)
switch submenu
case '1'
%executa a funcao limitar_missoes_4
[missoes2] = limitar_missoes_4(missoes);
case '2'
fprintf('\n\nLista actual de missões a incluir no relatório:');
fprintf('\nFP: Dist: Int: Nome de ficheiro: Efectuado em:\n');
for i=1:length(missoes2)
fprintf('%.6f %.2f %.0f %s %s\n',missoes2(i).factor_prioridade, missoes2(i).distancia, missoes2(i).intensidade_min, missoes2(i).nome, missoes2(i).data);
end
escreve_relatorio(missoes2);
break
case '0'
% O programa volta ao menu principal
break
otherwise
fprintf ('Opçao nao valida\n');
end
end
case '0'
fprintf('\nEscolheu a opçao "Sair do programa"\n');
y = input('\nTem a certeza que deseja terminar? (S/N)\n\n','s');
% O utilizador deve secrever sim ou nao com letras maiusculas
% ou minusculas
if y=='s'||y=='S';
gravarficheiro(missoes);
break
elseif y=='n'||y=='N';
else
fprintf('\nOpção nao válida');
end
otherwise
fprintf ('\nOpcao nao valida')
end
end