Este exemplo compartilha o código específico de Java implementando o sistema de gerenciamento de funcionários para sua referência. O conteúdo específico é o seguinte
Os conteúdos relevantes que são praticados principalmente neste sistema:
1. Declarações de controle de processo
2. Classes, objetos
3. Encapsulamento, herança, polimorfismo
4. Sobrecarga e reescrita de métodos
5. Modificador de acesso
6. estática
Descrição do requisito:
Basic information of employee information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Não - - - - - - - - - - - - - - - - - - - -
Atributos: Número do funcionário, nome do funcionário, posição do funcionário, dias de licença, salário básico, salário comum do funcionário:
Com base no salário básico, aumente as refeições de trabalho em 10%, 50% de subsídio de emprego, subsídio a 200 yuan Salário básico do subsídio + salário básico * 0.1 + salário básico * 0,5 + 200
---------gerente----------
Atributos: Número do funcionário, nome do funcionário, posição do funcionário, dias de licença, Salário do gerente de salário básico:
Com base no salário básico, 20% de refeições de trabalho, 50% de subsídio de emprego, 500 yuan subsídio à habitação Salário básico + salário básico * 0.2 + salário básico * 0,5 + 500
-----------diretor----------
Atributos: Número do funcionário, nome do funcionário, posição do funcionário, dias de licença, salário básico, salário do diretor:
Com base no salário básico, 8% de refeições de trabalho, subsídio a 30%, subsídio à habitação de 2.000 yuan, 3.000 Yuan Investment Subsidy Salário Básico + Salário Básico * 0,08 + Salário Básico * 0,3 + 2.000 + 3.000
----------outro-----------
Após a dedução do salário, todos os funcionários não se despedem. Todo o salário básico é pago. Se você tiver uma licença, o salário médio diário será deduzido* número de dias de licença.
Idéias de design geral:
Existe a classe pai de um funcionário, um funcionário comum, um gerente e uma subclasse presidente, e o método salarial da classe pai é reescrita, respectivamente. A última aula de teste.
A interface após a implementação é mostrada na figura:
Não há problema em escrever subclasses da classe pai. Preste atenção ao encapsulamento o máximo possível. É melhor usar privado para modificar as propriedades. O editor tem sido preguiçoso e passa principalmente tempo escrevendo aulas de teste o ( ̄ε ̄*) o.
NOTA: Como este sistema armazena apenas objetos nas matrizes de objetos, o comprimento fixo é definido como 100 ao inicializar a matriz e o sistema inicializará automaticamente cada elemento da matriz como NULL. Portanto, ao escrever métodos de teste, você deve prestar atenção à gravação de erros de ponteiro nulo em atribuições de travessia. O editor é estúpido, então passei um tempo para escrevê -lo (_)
Além disso, se você alterar as informações do funcionário, preste atenção no que fazer se a posição do funcionário mudar. Afinal, o objeto mudou e o método de lidar com o salário é diferente.
O código a seguir é publicado:
Primeiro, o funcionário da classe pai
// Classe premium classe pública funcionário {string id; Nome da string; Posição da string; int férias; salário duplo; public Employee () {} public void sumsalary () {} public void Display () {System.out.println ("Id:"+Id+", Nome:"+Nome+", Posição:"+Posição+", número de dias de licença:"+Holiday+", Salário:"+Salário); }}Três subcategorias:
classe pública CommonEmployee estende o funcionário {@Override public void sumsalary () {super.salary = super.salary+super.salary*0.1+super.Salary*0.5+200-super.holiday*(super.salary/30); }} Public Class Manager estende o funcionário {@Override public void sumsalary () {super.salary = super.salary+super.salary*0.2+super.salary*0.5+200-super.holiday*(super.salary/30); }} Diretor de classe pública estende o funcionário {@Override public void sumsalary () {super.salary = super.salário+salário*0,08+super.salário*0.3+2000+3000-super.holiday*(super.salary/30); }}Em seguida, é a classe de teste principal, aqui está um pouco demais para concluir a adição, exclusão, modificação e pesquisa.
classe pública testemd {scanner estático sc = new scanner (system.in); funcionário estático [] em = novo funcionário [100]; public static void Caozuo () { System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Modificar --- "); System.out.println ("--- 4 Query ---"); System.out.println ("--- 0 saída ---"); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- UpdateMomployee (); System.Println ("-------------"); dias: "); int holiday = sc.nextInt (); system.out.print (" Salário básico: "); salário duplo = sc.nextDouble (); switch (position) {case" Ordinary funcionário ": funcionário a = new Commonemployee (); a.id = id; 0; i < 100; i++) { if (em[i] == null) { em[i] = a; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; case "Manager": Employee b = new Manager(); b.ID = id; b.name = name; b.position = "Manager"; b.holiday = holiday; b.salary = salary; b.sumSalary(); for (int i = 0; i < 100; i++) { if (em[i] == null) { em[i] = b; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; case "Chairman": Employee c = new Director(); c.ID = id; c.name = name; C.Positão "Presidente"; System.Println (esta posição não existe, entre em frente! "); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- i = 0; SC.Next (); Caozuo (); 99) {Continue; System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println (o que você deseja modificar é: "); SC.Next () Sistema. em[i].position = position; em[i].holiday = holiday; em[i].salary = salary; em[i].sumSalary(); System.out.println("Modification successful!"); em[i].display(); } else { em[i] = null; Employee a = new CommonEmployee(); a.ID = id; a.name = name; a.position = "ordinary employee"; A.Holiday = Holiday; (EM]. EM [i] = NOW; EM [J]. O Sumsalário (); J ++) {se Thread.Sleep (2000); {if (i! = 99) {continue; System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ TODO BLOCO DE CATURA AUTOMÁRIO E.PRESSTACKTRACE ();Cheguei a postar assim que terminei de escrever o programa. Não encontrei nenhum problema com o teste simples. Se você encontrar algo errado, por favor me corrija. Obrigado.
Para mais materiais de aprendizagem, preste atenção ao tópico especial "Desenvolvimento do Sistema de Gerenciamento".
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.