日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Java实验4 -- 职工信息管理系统

發布時間:2023/12/10 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java实验4 -- 职工信息管理系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  • 時間:2020.5.18
  • 備注:太久沒有認真打代碼了,完成一個增刪改查就開始感動了自己…

題目

實現思路

怕作業重復率太高就先不放上來啦~
----------------2020.6.13更----------------
根據題意,分成三個類。

  • 測試類Main
    分成兩步走,盡可能簡潔。
    第一步輸出菜單,第二步選擇后通過Dao的方法實現功能。
  • 實體對象的職工類Employee
    主要放置了職工本體的基本私有屬性,并加入自動生成的get,set,toString的方法,以便后面設置和使用參數時的調用。
    包括:編號id,姓名name,性別sex,年齡age等。
  • 實現功能的職工管理類EmployeeDao
    分功能模塊實現。
    包括:
    (1) 增加一個職工;
    (2) 根據職工號刪除某位職工;
    (3) 根據職工號修改職工的某些信息;
    (4) 將所有職工年齡增加一歲;
    (5) 將數組中順序顯示所有職工信息;
    (6) 將所有職工按姓名排序輸出。
    其中:
    1為input()增加方法。
    2為delete()刪除方法。
    3、4合并為update()修改方法。
    5、6合并為output()查詢方法。
    另外增加一個sort(Employee[] e)排序算法,用于順序輸出。
    注意點:
    Dao中直接使用Employee[] e = new Employee[10000];中的e時,特別容易出現空指針問題,有時需要加個臨時的Employee employee = new Employee(id,name,sex,age);賦值來實現。(在錄入和修改中都有用到。)
  • 實現代碼

    1. Main.java package exp_04; import exp_04.dao.EmployeeDao; import java.util.Scanner; import static java.lang.System.exit; public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);EmployeeDao employeeDao = new EmployeeDao();while (true){System.out.println("************ 職工信息管理系統 ************");System.out.println("1.錄入 2.刪除 3.修改 4.輸出 0.退出");System.out.println("*****************************************");System.out.print("請選擇:");int key = scan.nextInt();switch (key){case 1: // 錄入employeeDao.input();break;case 2: // 刪除employeeDao.delete();break;case 3: // 修改employeeDao.update();break;case 4: // 輸出employeeDao.output();break;case 0:exit(0);break;default:break;}}} } 2. Employee.java package exp_04.javabean; public class Employee {private String id;private String name;private String sex;private int age;static int num; //表示數組的真實大小public Employee(){}public Employee(String id, String name, String sex, int age){this.id = id;this.name = name;this.sex = sex;this.age = age;}public String toString() {return "Employee{" +"id='" + id + '\'' +", name='" + name + '\'' +", sex='" + sex + '\'' +", age=" + age +'}';}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} } 3. EmployeeDao.java package exp_04.dao; import exp_04.javabean.Employee; import java.util.Scanner; public class EmployeeDao {Scanner scan = new Scanner(System.in);int num = 0; //表示數組的真實大小Employee[] e = new Employee[10000];/* 錄入 */public void input(){while (true) {System.out.print("職工號:");String id = scan.next();if(id.equals("000")) {break;}System.out.print("姓名:");String name = scan.next();System.out.print("性別:");String sex = scan.next();System.out.print("年齡:");int age = scan.nextInt();Employee employee = new Employee(id,name,sex,age);e[num++] = employee;//這里面直接使用e[num] = scan.next()是不成功的}}/* 刪除 */public int delete(){System.out.print("請輸入要刪除的職工號:");String deleteId = scan.next();int flag = 0;for (int i = 0; i < num; i++) {if(e[i].getId().equals(deleteId)){num--;flag++;if(i == num-1) break;for (int j = i; j < num; j++) {e[j]=e[j+1];}}}if (flag == 0)System.out.println("該職工不存在!");elseSystem.out.println("刪除成功!");return flag;}/* 修改 */public void update(){System.out.println("****** 修改 ******");System.out.println("1.指定 2.全部");System.out.println("******************");System.out.print("請選擇:");int key = scan.nextInt();int flag = 0;//修改某位員工名字if(key == 1){System.out.print("請輸入要修改職工號:");String updateId = scan.next();for (int i = 0; i < num; i++) {if(e[i].getId().equals(updateId)){flag++;System.out.print("姓名:");e[i].setName(scan.next());}}if(flag == 0)System.out.println("該職工不存在!");elseSystem.out.println("修改成功!");}//修改全部職工年齡else if(key == 2){for (int i = 0; i < num; i++) {int tempAge = e[i].getAge();e[i].setAge(tempAge+1);}/*這種寫法是空指針不對的for(Employee i : e){i.setAge(i.getAge()+1);}*//*修改全部職工年齡for (int i = 0; i < num; i++) {System.out.print("請輸入第" + (i+1) + "個職工的年齡:");e[i].setAge(scan.nextInt());}*/System.out.println("修改成功!");}}/* 輸出 */public void output(){System.out.println("****** 輸出 ******");System.out.println("1.原數組 2.排序");System.out.println("******************");System.out.print("請選擇:");while(true){int key = scan.nextInt();//原數組if(key == 1){System.out.println("********** 原數組 ***********");System.out.println("職工號\t姓名\t性別\t年齡");for (int i = 0; i < num; i++) {System.out.println(e[i].getId() + "\t\t" + e[i].getName() + "\t\t" + e[i].getSex() + "\t\t" + e[i].getAge());}}//排序后數組else if(key == 2){sort(e);System.out.println("********** 排序后數組 ***********");System.out.println("職工號\t姓名\t性別\t年齡");for (int i = 0; i < num; i++) {System.out.println(e[i].getId() + "\t\t" + e[i].getName() + "\t\t" + e[i].getSex() + "\t\t" + e[i].getAge());}}//退出else{break;}}}/* 排序 */public void sort(Employee[] e){Employee t = new Employee();for (int i = 0; i < num ; i++) {for (int j = i+1; j < num; j++) {//Str1.compareTo(Str2);//其返回的是一個int類型值。若Str1等于參數字符串Str2字符串,則返回0;// 若該Str1按字典順序小于參數字符串Str2,則返回值小于0;若Str1按字典順序大于參數字符串Str2,則返回值大于0。if(e[i].getName().compareTo(e[j].getName())>0){t = e[i];e[i] = e[j];e[j] = t;}}}} }

    實現結果圖

    也擔心重復率太高,也擔心兜兜之后會懶,就先不放上來了。
    代碼還是自己打下比較好,純做個參考。

    ----------------2020.6.13更----------------

    • ↓ 圖 1 錄入部分

    • ↓圖 2 輸出錄入部分

    • ↓圖 3 刪除一條記錄并輸出

    • ↓圖 4 修改一條記錄并輸出

    • ↓圖 5 修改所有記錄并輸出

    • ↓圖 6 退出程序

    • ↓補充1:

    由于之前沒看清題目,導致對update修改方法里,修改全部的有誤解。
    現更改后的結果如下:

    (原本是自行輸入修改后的各個年齡,
    現在代碼中已改為題目要求的所有年齡+1)

    • ↓補充2:
      后來同學在問些排序問題時,
      我發現了自己還有個看錯題目的問題
      將排序以學號排序了,
      現已把前面代碼改了,
      效果如下邊。

    總結

    以上是生活随笔為你收集整理的Java实验4 -- 职工信息管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。