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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

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

發(fā)布時(shí)間:2023/12/10 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java实验4 -- 职工信息管理系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

  • 時(shí)間:2020.5.18
  • 備注:太久沒(méi)有認(rèn)真打代碼了,完成一個(gè)增刪改查就開(kāi)始感動(dòng)了自己…

題目

實(shí)現(xiàn)思路

怕作業(yè)重復(fù)率太高就先不放上來(lái)啦~
----------------2020.6.13更----------------
根據(jù)題意,分成三個(gè)類(lèi)。

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

    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("************ 職工信息管理系統(tǒng) ************");System.out.println("1.錄入 2.刪除 3.修改 4.輸出 0.退出");System.out.println("*****************************************");System.out.print("請(qǐng)選擇:");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; //表示數(shù)組的真實(shí)大小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; //表示數(shù)組的真實(shí)大小Employee[] e = new Employee[10000];/* 錄入 */public void input(){while (true) {System.out.print("職工號(hào):");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("請(qǐng)輸入要?jiǎng)h除的職工號(hào):");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("請(qǐng)選擇:");int key = scan.nextInt();int flag = 0;//修改某位員工名字if(key == 1){System.out.print("請(qǐng)輸入要修改職工號(hào):");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);}/*這種寫(xiě)法是空指針不對(duì)的for(Employee i : e){i.setAge(i.getAge()+1);}*//*修改全部職工年齡for (int i = 0; i < num; i++) {System.out.print("請(qǐng)輸入第" + (i+1) + "個(gè)職工的年齡:");e[i].setAge(scan.nextInt());}*/System.out.println("修改成功!");}}/* 輸出 */public void output(){System.out.println("****** 輸出 ******");System.out.println("1.原數(shù)組 2.排序");System.out.println("******************");System.out.print("請(qǐng)選擇:");while(true){int key = scan.nextInt();//原數(shù)組if(key == 1){System.out.println("********** 原數(shù)組 ***********");System.out.println("職工號(hào)\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());}}//排序后數(shù)組else if(key == 2){sort(e);System.out.println("********** 排序后數(shù)組 ***********");System.out.println("職工號(hào)\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);//其返回的是一個(gè)int類(lèi)型值。若Str1等于參數(shù)字符串Str2字符串,則返回0;// 若該Str1按字典順序小于參數(shù)字符串Str2,則返回值小于0;若Str1按字典順序大于參數(shù)字符串Str2,則返回值大于0。if(e[i].getName().compareTo(e[j].getName())>0){t = e[i];e[i] = e[j];e[j] = t;}}}} }

    實(shí)現(xiàn)結(jié)果圖

    也擔(dān)心重復(fù)率太高,也擔(dān)心兜兜之后會(huì)懶,就先不放上來(lái)了。
    代碼還是自己打下比較好,純做個(gè)參考。

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

    • ↓ 圖 1 錄入部分

    • ↓圖 2 輸出錄入部分

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

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

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

    • ↓圖 6 退出程序

    • ↓補(bǔ)充1:

    由于之前沒(méi)看清題目,導(dǎo)致對(duì)update修改方法里,修改全部的有誤解。
    現(xiàn)更改后的結(jié)果如下:

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

    • ↓補(bǔ)充2:
      后來(lái)同學(xué)在問(wèn)些排序問(wèn)題時(shí),
      我發(fā)現(xiàn)了自己還有個(gè)看錯(cuò)題目的問(wèn)題
      將排序以學(xué)號(hào)排序了,
      現(xiàn)已把前面代碼改了,
      效果如下邊。

    總結(jié)

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

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。