Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. % Rishi Vadher
  2. % http://rishivadher.pt.vu
  3. [missoes] = ler_missoes;
  4. %Menu do utilizador
  5. while true
  6.     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');
  7.     p = input ('\nIntroduza a opçao pretendida:', 's');
  8.     % O utilizador deve introduzir o numero correspondente à opção do menu
  9.     % que pretende (0;1;2;3 ou 4)
  10.     switch p
  11.         case '1'
  12.             x = dir('*.tab');
  13.             % find('tab') = x;
  14.             fprintf('\n\nCódigo | Ficheiro\n')
  15.             for i = 1:length(x)
  16.                 fprintf('     %d | %s\n',i,x(i).name);
  17.             end
  18.             % Pede o código correspondente ao ficheiro a analisar
  19.             while true
  20.                 codigo = input('\nIntroduza o código do ficheiro a processar:');
  21.                 if codigo >i || codigo<=0
  22.                     fprintf('Erro, código não válido.\n');
  23.                 else
  24.                     fprintf ('\nFicheiro enviado para análise, aguarde um momento...\n')
  25.                     break
  26.                 end
  27.             end
  28.             nome_ficheiro=x(codigo).name;
  29.             % cria uma struct com as informaçoes do ficheiro analisado
  30.             [missoes_novo] = opcao_1(nome_ficheiro);
  31.             % adiciona as informaçoes do ficheiro analisado neste ponto ao ficheiro
  32.             % que ja continha missoes analisadas anteriores
  33.             [missoes] = escreverficheiros(missoes_novo, missoes);
  34.         case '2'
  35.             % ordena as missoes analisadas por factor de prioridade
  36.             % decrescente e apresenta-as;
  37.             [missoes] = opcao_2 (missoes);
  38.         case '3'
  39.             [missoes] = apagarmissoes(missoes);
  40.         case '4'
  41.             % Esta opção leva o utilizador ao submenu
  42.             % Apresenta a lista missoes analisadas
  43.             mostrar_missoes_4(missoes);
  44.             while true
  45.                 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');
  46.                 submenu = input('\nIntroduza a opçao do submenu pretendida:', 's');
  47.                 % O utilizador introduz o numero da opção do submenu que
  48.                 % deseja efectuar (0;1 ou 2)
  49.                 switch submenu
  50.                     case '1'
  51.                         %executa a funcao limitar_missoes_4
  52.                         [missoes2] = limitar_missoes_4(missoes);
  53.                     case '2'
  54.                         fprintf('\n\nLista actual de missões a incluir no relatório:');
  55.                         fprintf('\nFP:      Dist: Int: Nome de ficheiro:              Efectuado em:\n');
  56.                         for i=1:length(missoes2)
  57.                             fprintf('%.6f %.2f  %.0f  %s %s\n',missoes2(i).factor_prioridade, missoes2(i).distancia, missoes2(i).intensidade_min, missoes2(i).nome, missoes2(i).data);
  58.                         end
  59.                         escreve_relatorio(missoes2);
  60.                         break
  61.                     case '0'
  62.                         % O programa volta ao menu principal
  63.                         break
  64.                     otherwise
  65.                         fprintf ('Opçao nao valida\n');
  66.                 end
  67.             end
  68.         case '0'
  69.             fprintf('\nEscolheu a opçao "Sair do programa"\n');
  70.             y = input('\nTem a certeza que deseja terminar? (S/N)\n\n','s');
  71.             % O utilizador deve secrever sim ou nao com letras maiusculas
  72.             % ou minusculas
  73.             if y=='s'||y=='S';
  74.                 gravarficheiro(missoes);
  75.                 break
  76.             elseif y=='n'||y=='N';
  77.                
  78.             else
  79.                 fprintf('\nOpção nao válida');
  80.             end
  81.         otherwise
  82.             fprintf ('\nOpcao nao valida')
  83.     end
  84. end