Este ejemplo comparte el código específico de Java que implementa el sistema de gestión de empleados para su referencia. El contenido específico es el siguiente
El contenido relevante que se practican principalmente en este sistema:
1. Declaraciones de control de procesos
2. Clases, objetos
3. Encapsulación, herencia, polimorfismo
4. Sobrecarga y reescritura de métodos
5. Modificador de acceso
6. estática
Descripción del requisito:
Basic information of employee information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Atributos: número de empleado, nombre del empleado, puesto de empleado, días de licencia, salario básico, salario de empleados ordinarios:
Sobre la base del salario básico, aumente las comidas de trabajo en un 10%, 50% de subsidio laboral, 200 yuanes subsidio salarial básico + salario básico * 0.1 + salario básico * 0.5 + 200
---------gerente----------
Atributos: número de empleado, nombre del empleado, puesto de empleado, días de licencia, salario básico de gerente salarial:
Sobre la base del salario básico, 20% de comidas de trabajo, 50% de subsidio laboral, 500 yuanes subsidio salarial básico + salario básico * 0.2 + salario básico * 0.5 + 500
-----------director----------
Atributos: número de empleado, nombre del empleado, puesto de empleado, días de licencia, salario básico, salario del director:
Sobre la base del salario básico, 8% de comidas de trabajo, 30% de subsidio laboral, 2,000 yuanes subsidio de vivienda, 3,000 yuanes de inversión salario básico + salario básico * 0.08 + salario básico * 0.3 + 2,000 + 3,000
----------otro-----------
Después de la deducción salarial, todos los empleados no se despiden. Se paga todo el salario básico. Si tiene un permiso, el salario diario promedio se deducirá* Número de días de licencia.
Ideas generales de diseño:
Hay la clase matriz de un empleado, un empleado ordinario, un gerente y una subclase del presidente, y el método salarial de la clase matriz es reescribir respectivamente. La última clase de prueba.
La interfaz después de la implementación se muestra en la figura:
No hay problema con la redacción de subclases de clase principal. Presta atención a la encapsulación tanto como sea posible. Es mejor usar privado para modificar las propiedades. El editor ha sido perezoso y principalmente pasa tiempo escribiendo clases de prueba o ( ̄ε ̄*) o.
Nota: Dado que este sistema solo almacena objetos en matrices de objetos, la longitud fija se establece en 100 al inicializar la matriz, y el sistema inicializará automáticamente cada elemento de matriz a NULL. Por lo tanto, al escribir métodos de prueba, debe prestar atención a escribir errores de puntero nulo en tareas transversales. El editor es estúpido, así que pasé un tiempo para escribirlo (_)
Además, si cambia la información del empleado, preste atención a qué hacer si cambia la posición del empleado. Después de todo, el objeto ha cambiado y el método para manejar el salario es diferente.
Se publica el siguiente código:
Primero, el empleado de la clase matriz
// empleado de clase pública de clase premium {ID de cadena; Nombre de cadena; Posición de cadena; int Holiday; doble salario; Public Employee () {} public void Sumsalary () {} public void display () {System.out.println ("id:"+id+", nombre:"+nombre+", posición:"+posición+", número de días de licencia:"+vacaciones+", salario:"+salario); }}Tres subcategorías:
Public Class CommonEmploye extiende a los empleados {@Override public void sumsalary () {super.salary = super.salary+super.salary*0.1+super.salary*0.5+200-super.holiday*(super.salary/30); }} El gerente de clase pública extiende el empleado {@Override public void sumsalary () {super.salary = super.salary+super.salary*0.2+super.salary*0.5+200-super.holiday*(super.salary/30); }} El director de clase pública extiende el empleado {@Override public void sumsalary () {super.salary = super.salary+salario*0.08+super.salary*0.3+2000+3000-super.holiday*(super.salary/30); }}El siguiente es la clase de prueba clave, aquí hay demasiados para completar la adición, la eliminación, la modificación y la búsqueda.
clase pública TestEmd {static scanner sc = new Scanner (System.in); empleado estático [] em = nuevo empleado [100]; public static void caozuo () { System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- Modificar --- "); System.out.println ("--- 4 consulta ---"); System.out.println ("--- 0 Salida ---"); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------- UpdateMeee (); System.out.println ("------------"); días: "); int Holiday = sc.nextInt (); system.out.print (" salario básico: "); doble salario = sc.nextDouble (); switch (posición) {case" empleado ordinario ": empleado a = new CommonMloyee (); a.id = id; a.name = name; a.position =" empleado ordinario "; a.holidiation = a.salary = salary; salary; saviAn 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 = Salario; name; c.position = "Chairman"; c.holiday = holiday; c.salary = salary; c.sumSalary(); for (int i = 0; i < 100; i++) { if (em[i] == null) { em[i] = c; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; default: System.out.println ("Esta posición no existe, por favor vuelva a entrar!") System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ String n = sc.next(); for (int i = 0; SC.NEXT (); CAOZUO (); 99) {Continuar; System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- System.Out.Println ("Lo que desea modificar es:") SC.NEXT (); EM [i] .Positione = empleado "; a.holiday = Holiday; a.salary = salary; a.sumsalary (); for (int j = 0; j <100; j ++) {if (em [j] == null) {em [j] = a; system.out.println (" La modificación fue exitosa! "); em [j] .display (); ruper;} más {continuar;}}}} (EM [I] .Positions.equals ("Manager") {EM [i] = NULL; EM [J] .Display (); em[i].sumSalary(); System.out.println("Modified successfully!"); em[i].display(); } else { em[i] = null; Employee c = new Director(); c.ID = id; c.name = name; c.position = "Chairman"; c.holiday = holiday; c.salary = salary; c.sumSalary(); for (int j = 0; j < 100; j ++) {if (em [j] == NULL) {EM [J] = C; Thread.sleep (2000); {if (i! = 99) {continuar; System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ TODO Auto Generado Bloque E.PrintStackTrace ();Vine a publicar tan pronto como terminé de escribir el programa. No encontré ningún problema con la prueba simple. Si encuentra algo mal, corríjeme. Gracias.
Para obtener más materiales de aprendizaje, preste atención al tema especial "Desarrollo del sistema de gestión".
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.