Cet exemple partage le code spécifique de Java implémentant le système de gestion des employés pour votre référence. Le contenu spécifique est le suivant
Le contenu pertinent qui est principalement pratiqué dans ce système:
1. Instructions de contrôle des processus
2. Classes, objets
3. Encapsulation, héritage, polymorphisme
4. surcharge et réécriture des méthodes
5. Modificateur d'accès
6. Statique
Description des exigences:
Basic information of employee information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Attributs: numéro d'employé, nom des employés, poste d'employé, jours de congé, salaire de base, salaire ordinaire des employés:
Sur la base du salaire de base, augmentez les repas de travail de 10%, 50% de subvention en matière d'emploi, 200 yuans de logement Salaire de base + salaire de base * 0,1 + salaire de base * 0,5 + 200
---------directeur----------
Attributs: numéro d'employé, nom des employés, poste d'employé, jours de congé, salaire de base du gestionnaire de salaire:
Sur la base du salaire de base, 20% de repas de travail, 50% de subvention en matière d'emploi, 500 yuans de logement Salaire de base + salaire de base * 0,2 + salaire de base * 0,5 + 500
-----------directeur----------
Attributs: numéro d'employé, nom des employés, poste d'employé, jours de congé, salaire de base, salaire du directeur:
Sur la base du salaire de base, 8% de repas de travail, 30% de subvention en matière d'emploi, 2 000 yuans de logements, 3 000 yuans Investissement Salaire de base + salaire de base * 0,08 + salaire de base * 0,3 + 2 000 + 3 000
----------autre-----------
Après la déduction salariale, tous les employés ne prennent pas de congé. Tout le salaire de base est payé. Si vous avez un congé, le salaire quotidien moyen sera déduit * Nombre de jours de congé.
Idées de conception générale:
Il existe une classe parent d'un employé, un employé ordinaire, un gestionnaire et une sous-classe de président, et la méthode salariale de la classe parent est respectivement réécrite. La dernière classe de test.
L'interface après l'implémentation est indiquée sur la figure:
Il n'y a aucun problème à rédiger des sous-classes de classe parent. Faites attention à l'encapsulation autant que possible. Il est préférable d'utiliser privé pour modifier les propriétés. L'éditeur a été paresseux et passe principalement du temps à écrire des classes de test o ( ̄ε ̄ *) o.
Remarque: Étant donné que ce système stocke uniquement les objets dans les tableaux d'objets, la longueur fixe est définie sur 100 lors de l'initialisation du tableau et le système initialise automatiquement chaque élément de tableau à Null. Par conséquent, lors de la rédaction de méthodes de test, vous devez prêter attention à l'écriture d'erreurs de pointeur nul dans les affectations de traversée. L'éditeur est stupide, alors j'ai passé un certain temps à l'écrire (_)
De plus, si vous modifiez les informations de l'employé, faites attention à ce qu'il faut faire si le poste de l'employé change. Après tout, l'objet a changé et la méthode de traitement du salaire est différente.
Le code suivant est publié:
Premièrement, l'employé de la classe parentale
// Employee de classe publique de classe premium {String id; Nom de chaîne; Position de chaîne; IN Holiday; double salaire; Public Employee () {} public void SUMSALARY () {} public void display () {System.out.println ("id:" + id + ", nom:" + name + ", position:" + position + ", nombre de jours de congé:" + Holiday + ", salaire:" + salaire); }}Trois sous-catégories:
classe publique CommonEmployee étend l'employé {@Override public void sumsalary () {super.salary = super.salary + super.salary * 0,1 + super.salary * 0,5 + 200-super.holiday * (super.salary / 30); }} Gestionnaire de classe publique étend l'employé {@Override public void Sumsalary () {super.salary = super.salary + super.salary * 0,2 + super.salary * 0,5 + 200-super.holiday * (super.salary / 30); }} Directeur de classe publique étend l'employé {@Override public void sumsalary () {super.salary = super.salary + salaire * 0,08 + super.salary * 0,3 + 2000 + 3000-Super.Holiday * (super.salary / 30); }}Vient ensuite la classe de test clé, voici un peu trop pour terminer l'ajout, la suppression, la modification et la recherche.
classe publique TestEmd {Scanner statique SC = nouveau scanner (System.in); Employé statique [] EM = nouvel employé [100]; Public Static Void Caozuo () { System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Modifier --- "); System.out.println ("--- 4 Query ---"); System.out.println ("--- 0 exit ---"); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Mise à jour de la mise en œuvre du case ":« MERCI System.out.Println (s'il vous plaît entrez des informations pertinentes: ") Jours: "); int holiday = sc.nextint (); System.out.print (" Salaire de base: "); double salaire = sc.nextDouble (); commutateur (position) {case" Employé ordinaire ": employé a = nouveau CommonEmployee (); A.Id = Id; A.name = nom; A.Position =" Employee ordinaire "; A.Holiday = Holiday; i = 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 = salaire; C.Name = Nom; par défaut: System.out.println (cette position n'existe pas, veuillez réintégrer! "); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- i = 0; i <100; i ++) {if (em [i]! = null) {if (em [i] .name.equals (n)) {System.out.println (" SC.NEXT (); Caozuo (); 99) {Continuer;} else {System.out.println ("Le compte que vous avez entré n'existe pas! System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.Println (ce que vous voulez modifier: "); SC.NEXT (); Em [I]. Employé "; A.Holiday = Holiday; A.Salary = salaire; a.sumsalary (); pour (int j = 0; j <100; j ++) {if (em [j] == null) {em [j] = a; system.out.println (" Modification a réussi! "); em [j] .display (); briser;} else {continuer; (Em [i]. Em [i] = null; Em [J]. 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; {// Bloc de capture généré par Auto E.PrintStackTrace ();} Caozuo (); System.out.println ("l'employé que vous avez entré n'existe pas! System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Bloc de capture généré par Auto E.PrintStackTrace ();} CaoZuo ();} public static vid Main (String [] args) {//Je suis venu poster dès que j'ai fini d'écrire le programme. Je n'ai trouvé aucun problème avec le test simple. Si vous trouvez quelque chose de mal, veuillez me corriger. Merci.
Pour plus de matériel d'apprentissage, veuillez faire attention au sujet spécial «développement du système de gestion».
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.