Jump to content

Ajuda Programa Importante!!!


pedrom20
 Share

Recommended Posts

Olá pessoal eu sou novo aqui no fórum...

e estou a abrir este tópico porque tenho um programa para fazer na escola mas não sei como fazelo!!!!! 😁

O Problema é o seguinte:

  • Uma empresa tem n funcionários, e para cada um quer registar informações referentes ao nome, morada, telefone, salário e função. Faz um programa que armazene todos os funcionários num vector.
  • Utilizando o programa anterior, faz um procedimento que mostre no ecrã todos os funcionários que moram em Odemira.

Agradecia que algum me ajuda-se a resolver isto, sei que tem de ser feito com um record e um array.

Link to comment
Share on other sites

ok eu vou meter o codigo aqui com o geshi mas aviso já que é muito grande porque tem um procedimento enorme para o menu.... :bored:

Program funcionarios_empresa;

  type funcionarios=record
        Nome:string;
   Morada:string;
   	   Telefone:integer;
   Salario:real;
  	   Funcao:string;
 end;

var
  escolha:string;
  opc:char;
  i,n,cont:integer ;
  dados:array[0..100]of funcionarios;

  Procedure menu;
    Begin
      textcolor(lightcyan);
 gotoxy(2,1); write('__________________________________EMPRESA XPTO________________________________');
 textcolor(yellow);
 gotoxy(2,2); for i := 1 to 78 do
        begin
         delay(1);
          write(#177);
        end;
      gotoxy(2,3); write(#177);
      gotoxy(2,4); write(#177);
      gotoxy(2,5); write(#177);
      gotoxy(2,6); write(#177);
      gotoxy(2,7); write(#177);
      gotoxy(2,8); write(#177);
      gotoxy(2,9); write(#177);
      gotoxy(2,10); write(#177);
      gotoxy(2,11); write(#177);
      gotoxy(2,12); write(#177);
      gotoxy(2,13); write(#177);
      gotoxy(2,14); write(#177);
      gotoxy(2,15); write(#177);
      gotoxy(2,16); write(#177);
      gotoxy(2,17); write(#177);
      gotoxy(2,18); write(#177);
      gotoxy(2,19); write(#177);
      gotoxy(2,20); write(#177);
      gotoxy(2,21); write(#177);
      gotoxy(2,22); write(#177);
      gotoxy(2,23); write(#177);
      gotoxy(79,3); write(#177);
      gotoxy(79,4); write(#177);
      gotoxy(79,5); write(#177);
      gotoxy(79,6); write(#177);
      gotoxy(79,7); write(#177);
      gotoxy(79,8); write(#177);
      gotoxy(79,9); write(#177);
      gotoxy(79,10); write(#177);
      gotoxy(79,11); write(#177);
      gotoxy(79,12); write(#177);
      gotoxy(79,13); write(#177);
      gotoxy(79,14); write(#177);
      gotoxy(79,15); write(#177);
      gotoxy(79,16); write(#177);
      gotoxy(79,17); write(#177);
      gotoxy(79,18); write(#177);
      gotoxy(79,19); write(#177);
      gotoxy(79,20); write(#177);
      gotoxy(79,21); write(#177);
      gotoxy(79,22); write(#177);
      gotoxy(79,23); write(#177);
 gotoxy(2,24); for i := 1 to 78 do
        begin
         delay(1);
          write(#177);  
        end;
     
 gotoxy(3,20); for i := 1 to 76 do
        begin
         delay(1);
          write(#220);   
          
        end;
       gotoxy(3,3);write('                                     MENU'); 
       gotoxy(3,4); for i := 1 to 76 do
        begin
         delay(1);
          write(#220);
        end;
  gotoxy(4,6);write('Escola uma da opções seguintes, introduzindo o número correspondente.');   
  gotoxy(4,8);write('1 - Introduzir dados sobre funcionários.');
  gotoxy(4,9);write('2 - Pesquisar funcionários por localidade.');
  gotoxy(4,18);write('Escreva a letra "s" para sair do programa.');
  gotoxy(4,22);write('Digite a opção: ');
    end;
    
   Procedure introduzir_dados;
     Begin
      writeln('Entrada de funcionário n: ');
  writeln;  
    Begin 
	 Write('Introduza o nome do funcionário:');
           read(dados[i].Nome);
           write('Introduza a morada do funcionário:');
           read(dados[i].Morada);
           write('Introduza o telefone do funcionário:');
           read(dados[i].Telefone);
           write('Introduza o salário do funcionário:');
           read(dados[i].Salario);
           write('Introduza a funcão do funcioionário:');
           read(dados[i].Funcao);
	 writeln('Pretende introduzir outro funcionário?');
            read (escolha);
           if ( escolha ='sim') then
             introduzir_dados
           else
             clrscr;
	   menu;	
         end; 
            
      end; 

   Procedure localizar;
     Begin

End;	   
   
   Procedure final;
     Begin
  menu;
        case (opc) of 
         1:introduzir_dados;
         2:localizar;
          else
      writeln('f') ;
        end;
end;	
              
Begin
   final;
End.

EDIT: o programa está a dar um erro que não sei como resolver... no case do procedure final: diz que as constantes do case devem ter o mesmo tipo de expressão

Link to comment
Share on other sites

esta aqui o programa já completo, mas algumas coisas não tam a ttrabalhar, tipo quando introduzimos os funcionários eunao consigo meter o programa a mostrar o nº de entrada de funcionario e depois no localizar ou localiza mal ou não mostra

Program funcionarios_empresa;

  type funcionarios=record
        Nome:string;
   Morada:string;
   	   Telefone:integer;
   Salario:real;
  	   Funcao:string;
 end;

var
  a,escolha:string;
  opc,i,n,cont:integer ;
  dados:array[0..100]of funcionarios;

  
    
   Procedure tabela;
     Begin
        textcolor(lightcyan);
 gotoxy(2,1); write('__________________________________EMPRESA XPTO________________________________');
 textcolor(yellow);
 gotoxy(2,2); for i := 1 to 78 do
        begin
         delay(1);
          write(#177);
        end;
      gotoxy(2,3); write(#177);
      gotoxy(2,4); write(#177);
      gotoxy(2,5); write(#177);
      gotoxy(2,6); write(#177);
      gotoxy(2,7); write(#177);
      gotoxy(2,8); write(#177);
      gotoxy(2,9); write(#177);
      gotoxy(2,10); write(#177);
      gotoxy(2,11); write(#177);
      gotoxy(2,12); write(#177);
      gotoxy(2,13); write(#177);
      gotoxy(2,14); write(#177);
      gotoxy(2,15); write(#177);
      gotoxy(2,16); write(#177);
      gotoxy(2,17); write(#177);
      gotoxy(2,18); write(#177);
      gotoxy(2,19); write(#177);
      gotoxy(2,20); write(#177);
      gotoxy(2,21); write(#177);
      gotoxy(2,22); write(#177);
      gotoxy(2,23); write(#177);
      gotoxy(79,3); write(#177);
      gotoxy(79,4); write(#177);
      gotoxy(79,5); write(#177);
      gotoxy(79,6); write(#177);
      gotoxy(79,7); write(#177);
      gotoxy(79,8); write(#177);
      gotoxy(79,9); write(#177);
      gotoxy(79,10); write(#177);
      gotoxy(79,11); write(#177);
      gotoxy(79,12); write(#177);
      gotoxy(79,13); write(#177);
      gotoxy(79,14); write(#177);
      gotoxy(79,15); write(#177);
      gotoxy(79,16); write(#177);
      gotoxy(79,17); write(#177);
      gotoxy(79,18); write(#177);
      gotoxy(79,19); write(#177);
      gotoxy(79,20); write(#177);
      gotoxy(79,21); write(#177);
      gotoxy(79,22); write(#177);
      gotoxy(79,23); write(#177);
 gotoxy(2,24); for i := 1 to 78 do
        begin
         delay(1);
          write(#177);  
        end;
     
 gotoxy(3,20); for i := 1 to 76 do
        begin
         delay(1);
          write(#220);   
          
        end;
     end;   
    
    Procedure menu;
    Begin
       gotoxy(3,3);write('                                     MENU'); 
       gotoxy(3,4); for i := 1 to 76 do
        begin
         delay(1);
          write(#220);
        end;
  gotoxy(4,6);write('Escola uma da opções seguintes, introduzindo o número correspondente.');   
  gotoxy(4,8);write('1 - Introduzir dados sobre funcionários.');
  gotoxy(4,9);write('2 - Pesquisar funcionários por localidade.');
  gotoxy(4,18);write('Escreva o número "666" para sair do programa.');
  gotoxy(4,22);write('Digite a opção: ');	   
    end;
    
    Procedure localizar;
     Begin
   clrscr;
    tabela;
          gotoxy(4,22);write('Introduza uma localidade: ');
          read(a);
             for i:=1 to n do
         if a =  dados[i].Morada then
            
            tabela;
		  gotoxy(4,5);write('Os funcionários dessa localidade são:');
		  textcolor(lightblue);
            gotoxy(4,6);write('-------------------------------------');
            textcolor(yellow);
		  gotoxy(5,7);writeln(dados[i].nome);
End;	 
    
   Procedure introduzir_dados;
     Begin
      clrscr;
       tabela;
    gotoxy(4,4);writeln('Entrada de funcionário n: ');
    writeln;  
    Begin 
	 textcolor(lightblue);
	 gotoxy(4,5);write('-------------------------------');
	 textcolor(yellow);
	 gotoxy(4,22);Write('Introduza o nome do funcionário:');
           read(dados[i].Nome);
           gotoxy(4,6);Write('Nome:     ',dados[i].nome);
           gotoxy(4,22);write('                                                                           ');
	 gotoxy(4,22);write('Introduza a morada do funcionário:');
           read(dados[i].Morada);
           gotoxy(4,7);Write('Morada:   ',dados[i].morada);
           gotoxy(4,22);write('                                                                           ');
           gotoxy(4,22);write('Introduza o telefone do funcionário:');
           read(dados[i].Telefone);
           gotoxy(4,8);Write('Telefone: ',dados[i].telefone);
           gotoxy(4,22);write('                                                                           ');
           gotoxy(4,22);write('Introduza o salário do funcionário:');
           read(dados[i].Salario);
           gotoxy(4,9);Write('Salário:  ',dados[i].salario);
           gotoxy(4,22);write('                                                                           ');
           gotoxy(4,22);write('Introduza a funcão do funcioionário:');
           read(dados[i].Funcao);
           gotoxy(4,10);Write('Função  : ',dados[i].funcao);
           gotoxy(4,22);write('                                                                           ');
	 gotoxy(4,22);writeln('Pretende introduzir outro funcionário?');
            gotoxy(42,22);read (escolha);
           if ( escolha ='sim') then
             introduzir_dados
           else
             clrscr;
	   tabela;
	   menu;
	     read(opc);
          case (opc) of 
                1:introduzir_dados;
                2:localizar;
                end;	
         end; 
            
      end; 

     
   
   Procedure menu3;
    Begin
       gotoxy(3,3);write('                                     MENU'); 
       gotoxy(3,4); for i := 1 to 76 do
        begin
         delay(1);
          write(#220);
        end;
  gotoxy(4,6);write('Escola uma da opções seguintes, introduzindo o número correspondente.');   
  gotoxy(4,8);write('1 - Introduzir dados sobre funcionários.');
  gotoxy(4,9);write('2 - Pesquisar funcionários por localidade.');
  gotoxy(4,18);write('Escreva o número "666" para sair do programa.');
  gotoxy(4,22);write('Digite a opção: ');
  read(opc);
   case (opc) of 
         1:introduzir_dados;
         2:localizar;
         end;
    end;
   
   Procedure final;
     Begin
  tabela;
  menu;
  read(opc);
   case (opc) of 
         1:introduzir_dados;
         2:localizar;
         end;	
end;
              
Begin
   final;
End.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.