يشارك هذا المثال رمز Java المحدد لتنفيذ نظام إدارة الموظفين للرجوع إليه. المحتوى المحدد كما يلي
المحتويات ذات الصلة التي تمارس بشكل رئيسي في هذا النظام:
1. بيانات التحكم في العملية
2. الفئات ، الكائنات
3. التغليف ، الميراث ، تعدد الأشكال
4. التحميل الزائد وإعادة كتابة الأساليب
5. معدل الوصول
6. ثابت
وصف المتطلبات:
Basic information of employee information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
السمات: رقم الموظف ، اسم الموظف ، موقف الموظف ، أيام الإجازة ، الراتب الأساسي ، راتب الموظف العادي:
على أساس الراتب الأساسي ، وزيادة وجبات العمل بنسبة 10 ٪ ، و 50 ٪ دعم الوظائف ، و 200 يوان دعم الإسكان الراتب الأساسي + الراتب الأساسي * 0.1 + الراتب الأساسي * 0.5 + 200
---------مدير----------
السمات: رقم الموظف ، اسم الموظف ، موقف الموظف ، أيام الإجازة ، راتب مدير الرواتب الأساسي:
على أساس الراتب الأساسي ، 20 ٪ وجبات العمل ، و 50 ٪ الدعم الوظيفي ، و 500 إعانة في يوان الراتب الأساسي + الراتب الأساسي * 0.2 + الراتب الأساسي * 0.5 + 500
-----------مخرج----------
السمات: رقم الموظف ، اسم الموظف ، موقف الموظف ، أيام الإجازة ، الراتب الأساسي ، راتب المدير:
على أساس الراتب الأساسي ، 8 ٪ وجبات العمل ، و 30 ٪ دعم الوظائف ، و 2،000 إعانة سكنية يوان ، و 3000 إعانة استثمارية يوان الراتب الأساسي + الراتب الأساسي * 0.08 + الراتب الأساسي * 0.3 + 2،000 + 3،000
----------آخر-----------
بعد خصم الراتب ، لا يأخذ جميع الموظفين إجازة. يتم دفع جميع الراتب الأساسي. إذا كان لديك إجازة ، فسيتم خصم متوسط الراتب اليومي* عدد أيام الإجازة.
أفكار التصميم العامة:
هناك فئة الوالدين للموظف ، وموظف عادي واحد ، ومدير واحد ، ورئيس فرعي ، وطريقة رواتب الفصل الأصل هي إعادة كتابة على التوالي. آخر فئة اختبار.
يظهر الواجهة بعد التنفيذ في الشكل:
لا توجد مشكلة في كتابة فئات فرعية من فئة الوالدين. انتبه إلى التغليف قدر الإمكان. من الأفضل استخدام الخاص لتعديل الخصائص. كان المحرر كسولًا ويقضي بشكل أساسي فصول اختبار الوقت O ( ̄ε ̄*) O.
ملاحظة: نظرًا لأن هذا النظام يخزن فقط الكائنات في صفائف الكائنات ، يتم ضبط الطول الثابت على 100 عند تهيئة الصفيف ، وسيقوم النظام تلقائيًا بتهيئة كل عنصر صفيف إلى NULL. لذلك ، عند كتابة أساليب الاختبار ، يجب أن تنتبه إلى كتابة أخطاء مؤشر فارغة في مهام اجتياز. المحرر غبي ، لذلك قضيت بعض الوقت لكتابتها (_)
أيضًا ، إذا قمت بتغيير معلومات الموظف ، فقم بالاهتمام بما يجب القيام به إذا تغير موقف الموظف. بعد كل شيء ، لقد تغير الكائن ، وطريقة معالجة الراتب مختلفة.
تم نشر الرمز التالي:
أولاً ، موظف فئة الوالدين
// Premium Class Public Class Employee {String ID ؛ اسم السلسلة موقف السلسلة العطلة راتب مزدوج الموظف العام () {} public void sumsalary () {} public void display () {system.out.println ("id:"+id+"، name:"+name+"، الموضع: }}ثلاث فئات فرعية:
الطبقة العامة CommonEmployee يمتد الموظف {Override public void sumsalary () {super.salary = super.salary+super.salary*0.1+super.salary*0.5+200-super.holiday*(super.salary/30) ؛ }} مدير الفئة العامة يمتد الموظف {Override public void sumsalary () {super.salary = super.salary+super.salary*0.2+super.salary*0.5+200-super.holiday*(super.salary/30) ؛ }} مدير الفئة العامة يمتد الموظف {Override public void sumsalary () {super.salary = super.salary+salary*0.08+super.salary*0.3+2000+3000-super.holiday*(super.salary/30) ؛ }}التالي هو فئة الاختبار الرئيسية ، إليك الكثير مما لإكمال الإضافة والحذف والتعديل والبحث.
الفئة العامة TestEmd {Static Scanner SC = New Scanner (System.in) ؛ الموظف الثابت [] EM = موظف جديد [100] ؛ الفراغ الثابت العام caozuo () { System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- يُعدِّل ---")؛ System.out.println ("--- 4 QUERY ---") ؛ System.out.println ("--- 0 خروج ---") ؛ System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ upctionemplye () System.Out.Println (----------- الأيام: ") ؛ int holiday = sc.nextint () ؛ system.out.print (" الراتب الأساسي: ") ؛ راتب مزدوج = sc.nextDouble () ؛ التبديل (الموضع) {حالة" الموظف العادي ": الموظف a = new commonemploye () ؛ a.id = id ؛ a.name = a.position =" الموظف المرمني "؛ A. (int 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 = 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.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; } } System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ String n = sc.next(); for (int i = 0 ؛ sc.next () if (s.equals (y ") {em [i] = null ؛ caozuo () 99) {متابعة ؛ System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.Out.println (ما تريد تعديله: " sc.ext () 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 الموظف "؛ 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 (" التعديل كان ناجحًا! ") ؛ em [j] .display () ؛ (I]. em [i] em [j]. 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 ؛ Thread.sleep (2000) {if (i! = 99) {تابع ؛ System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ TODO AUTO CATCH BLOCK E.PRINTSTACKTRACE () ؛جئت للنشر بمجرد انتهائي من كتابة البرنامج. لم أجد أي مشاكل في الاختبار البسيط. إذا وجدت أي شيء خاطئ ، يرجى تصحيحني. شكرًا لك.
لمزيد من المواد التعليمية ، يرجى الانتباه إلى الموضوع الخاص "تطوير نظام الإدارة".
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.