Contoh ini membagikan kode spesifik Java yang menerapkan sistem manajemen karyawan untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Isi yang relevan yang terutama dipraktikkan dalam sistem ini:
1. Pernyataan kontrol proses
2. Kelas, objek
3. Enkapsulasi, warisan, polimorfisme
4. Kelebihan dan penulisan ulang metode
5. Pengubah Akses
6. Statis
Deskripsi Persyaratan:
Informasi Dasar Informasi Karyawan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' - - - - - - - - - - - - - - - - - - - - - - -
Atribut: Nomor Karyawan, Nama Karyawan, Posisi Karyawan, Hari Cuti, Gaji Dasar, Gaji Karyawan biasa:
Atas dasar gaji dasar, tingkatkan makanan kerja sebesar 10%, subsidi pekerjaan 50%, 200 yuan rumah subsidi gaji dasar + gaji dasar * 0,1 + gaji dasar * 0,5 + 200
---------manajer----------
Atribut: Nomor Karyawan, Nama Karyawan, Posisi Karyawan, Hari Tinggalkan, Gaji Manajer Gaji Dasar:
Atas dasar gaji dasar, 20% makanan kerja, subsidi pekerjaan 50%, 500 yuan housing subsidi gaji pokok + gaji dasar * 0,2 + gaji dasar * 0,5 + 500
-----------direktur----------
Atribut: Nomor Karyawan, Nama Karyawan, Posisi Karyawan, Hari Cuti, Gaji Dasar, Gaji Direktur:
Berdasarkan gaji dasar, 8% makanan kerja, subsidi pekerjaan 30%, 2.000 subsidi perumahan yuan, 3.000 gaji dasar investasi yuan + gaji dasar * 0,08 + gaji dasar * 0,3 + 2.000 + 3.000
----------lainnya-----------
Setelah pengurangan gaji, semua karyawan tidak mengambil cuti. Semua gaji pokok dibayar. Jika Anda memiliki cuti, rata -rata gaji harian akan dikurangkan* jumlah hari cuti.
Ide Desain Umum:
Ada satu kelas orang tua karyawan, satu karyawan biasa, satu manajer, dan satu ketua subclass, dan metode gaji kelas induk masing -masing ditulis ulang. Kelas tes terakhir.
Antarmuka setelah implementasi ditunjukkan pada gambar:
Tidak ada masalah dengan menulis subkelas kelas induk. Perhatikan enkapsulasi sebanyak mungkin. Yang terbaik adalah menggunakan pribadi untuk memodifikasi properti. Editor telah malas dan terutama menghabiskan waktu menulis kelas tes o ( ̄ε ̄*) o.
Catatan: Karena sistem ini hanya menyimpan objek dalam array objek, panjang tetap diatur ke 100 saat menginisialisasi array, dan sistem akan secara otomatis menginisialisasi setiap elemen array ke nol. Oleh karena itu, saat menulis metode tes, Anda harus memperhatikan menulis kesalahan penunjuk nol dalam penugasan traversal. Editornya bodoh, jadi saya menghabiskan waktu untuk menuliskannya (_)
Juga, jika Anda mengubah informasi karyawan, perhatikan apa yang harus dilakukan jika posisi karyawan berubah. Bagaimanapun, objek telah berubah, dan metode penanganan gaji berbeda.
Kode berikut diposting:
Pertama, karyawan kelas induk
// Kelas Premium Kelas Publik Karyawan {String ID; Nama string; Posisi string; hari libur int; gaji ganda; Pegawai publik () {} public void sumsalary () {} public void display () {System.out.println ("id:"+id+", nama:"+nama+", posisi:"+posisi+", jumlah hari cuti:"+holiday+", gaji:"+gaji); }}Tiga Subkategori:
Kelas Publik CommonEmployee memperluas karyawan {@Override public void sumSalary () {super.salary = super.salary+super.salary*0,1+super.salary*0,5+200-super.holiday*(super.salary/30); }} Manajer kelas publik memperluas karyawan {@Override public void sumSalary () {super.salary = super.salary+super.salary*0,2+super.salary*0,5+200-super.holiday*(super.salary/30); }} Direktur kelas publik memperluas karyawan {@Override public void SumSalary () {super.salary = super.salary+gaji*0,08+super.salary*0,3+2000+3000-super.holiday*(super.salary/30); }}Berikutnya adalah kelas uji utama, di sini sedikit terlalu banyak untuk menyelesaikan penambahan, penghapusan, modifikasi, dan pencarian.
testemd kelas publik {pemindai statis sc = pemindai baru (system.in); Karyawan statis [] em = karyawan baru [100]; public static void caozuo () { System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Ubah --- "); System.out.println ("--- 4 kueri ---"); System.out.println ("--- 0 keluar ---"); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Pembaruan (); System.outs.println (" hari: "); int holiday = sc.nextInt (); System.out.print (" Gaji Dasar: "); gaji ganda = sc.nextdouble (); switch (posisi) {kasus" karyawan biasa ": karyawan a = karyawan biasa (); a.id = iD; a.name = nama; a.posisi =" Pegawai biasa (); a.iderbol = a.name = name; a.posisi = "Pegawai biasa"; a.idhole = 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 = Gaji; 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; } } break; Default: System.out.println ("Posisi ini tidak ada, mohon masukkan kembali!") System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- i = 0; sc.Next (); {caozuo (); (i! = 99) {Lanjutkan; System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System Sc.Next (); EM [Posisi = Posisi; Karyawan "; a.holiday = Holiday; a.salary = gaji; a.sumsalary (); for (int j = 0; j <100; j ++) {if (em [j] == null) {em [j] = a; System.out.println (" Modifikasi berhasil! "); em [j] .display (); break; break;}} {} {} {} {} {} {} {ev; (I] .Posisi {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 (j] == null) {em [j] = c; Thread.sleep (2000); } else {if (i! = 99) {Lanjutkan; System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ TODO AUTO-ENTERATED Catch Block E.PrintStackTrace ();} caozuo ();Saya datang untuk memposting segera setelah saya selesai menulis program. Saya tidak menemukan masalah dengan tes sederhana. Jika Anda menemukan kesalahan, harap perbaiki saya. Terima kasih.
Untuk materi pembelajaran lebih lanjut, harap perhatikan topik khusus "pengembangan sistem manajemen".
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.