この例では、参照のために従業員管理システムを実装する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元住宅補助金、3,000元投資補助金 +基本給与 * 0.08 +基本給与 * 0.3 + 2,000 + 3,000に基づいて
- - - - - 他の - - - - - -
給与控除の後、すべての従業員は休暇を取ることはありません。すべての基本給与が支払われます。休暇がある場合、1日の平均給与は控除されます*休暇の日数。
一般的なデザインのアイデア:
1人の従業員の親クラス、1人の普通の従業員、1人のマネージャー、1人の会長サブクラスがあり、親クラスの給与方法がそれぞれ書き直されています。最後のテストクラス。
実装後のインターフェイスを図に示します。
親クラスのサブクラスを書くことに問題はありません。可能な限りカプセル化に注意してください。プライベートを使用してプロパティを変更するのが最善です。編集者は怠zyであり、主にテストクラスo( ̄ε ̄*)oの作成に時間を費やしています。
注:このシステムはオブジェクトアレイにオブジェクトのみを保存するため、アレイを初期化するときに固定長は100に設定され、システムは各配列要素をNULLに自動的に初期化します。したがって、テスト方法を作成する場合は、トラバーサル割り当てのnullポインターエラーの作成に注意を払う必要があります。編集者は愚かなので、私はそれを書き留めるためにしばらく費やしました(_)
また、従業員の情報を変更した場合は、従業員のポジションが変更された場合に何をすべきかに注意してください。結局のところ、オブジェクトが変更され、給与を処理する方法は異なります。
次のコードが投稿されています。
まず、親クラスの従業員
//プレミアムクラスのパブリッククラス従業員{string id;文字列名;文字列位置; INTホリデー;二重給与; public Employee(){} public void sumsalary(){} public void display(){system.out.println( "id:"+id+"、name:"+name+"、position:"+position+"、休暇日数:"+ホリデー+"、給与:"+給与); }}3つのサブカテゴリ:
パブリッククラスCommonEmployeeは従業員を拡張します{@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は従業員を拡張します{@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); }}次は重要なテストクラスです。追加、削除、修正、検索を完了するには少し多すぎます。
Public Class Testemd {Static Scanner SC = new Scanner(System.in);静的従業員[] em =新しい従業員[100]; public static void caozuo(){ System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------修正する - -"); system.out.println( "--- 4 query ---"); system.out.println( "--- 0 exit ---"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- update emblyeas():system.out. system.out.out.Out.Out.print( "); days: "); int holidy = sc.nextint(); system.out.print(" Basic Salary: "); double Salary = sc.nextdouble(); switch(switch(position){case" emordering Employee ":employee a = new commonemployee(); a.id = id; a.name = name; < 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 = b.sumsaly(i ++) c.holiday = c.sumsalary; system.out.println(この位置は再び存在しません!」 System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ String n = sc.next(); for (int i = 0; i ++){em [i] .name.equals(n)) sc.next( "y"){i] aout.println; caozuo(); 99){続行} system.out.println( "存在しません!")}}}} System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- system sc.next.out.print( "); em [i]。 A.Holiday = a.sumsalary(j ++); (i]。 em [i] em [j] em [) J ++(j] = em [J] = crintln(j];スレッド(2000) if(e!= 99) System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ TODO自動生成ブロックe.printstacktrace();プログラムの書き終えたらすぐに投稿しました。簡単なテストに問題はありませんでした。何か問題がある場合は、修正してください。ありがとう。
より多くの学習資料については、特別なトピック「管理システム開発」に注意してください。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。