JAVA資料管理系統(用ArrayList實現增刪改查等操作)
阿新 • • 發佈:2018-12-14
通過查詢大量有關ArrayList操作的文章,終於將這個小東西寫完了。感覺心累。
//import java.util.ArrayList; //import java.util.List; //import java.util.Scanner;// I/O庫函式 //import java.util.Comparator; //import java.util.Collections;//集合庫,在此程式中的作用是用來對ArrayList排序 //以上庫函式可以直接用 import java.util.*; import java.util.*; class Stu{ private int id; //編號 private String name; //姓名 private boolean sex; //性別 private int bornDate; //出生日期 private int edu; //學歷 private long phone; //電話 private float salary; //工資 // public void qtu(int id,String name,boolean sex,int bornDate,int edu,long phone,float salary) // { // this.id=id; // this.name=name; // this.sex=sex; // this.bornDate=bornDate; // this.edu=edu; // this.phone=phone; // this.salary=salary; // } public int getid() //返回輸入資料的值 { return id; } public void setid(int id) //因為定義的型別為私有,所以需要為資料的輸入提供一個供外部訪問的介面 { this.id=id; } public String getname() { return name; } public void setname(String name) { this.name=name; } public boolean getsex() { return sex; } public void setsex(boolean sex) { this.sex=sex; } public int getbornDate() { return bornDate; } public void setbornDate(int bornDate) { this.bornDate=bornDate; } public int getedu() { return edu; } public void setedu(int edu) { this.edu=edu; } public long getphone() { return phone; } public void setphone(long phone) { this.phone=phone; } public float getsalary() { return salary; } public void setsalary(float salary) { this.salary=salary; } } class Operate{ List<Stu> list=new ArrayList<Stu>(); Scanner cin=new Scanner(System.in); //輸入部分可以先將型別定義為String,再通過list.父型別.parse資料型別()轉換為指定型別 public void input() throws Exception//新增工程師資訊 { int student_number=1; System.out.println("********* 新增學生資訊,停止新增輸入0 **********"); while(true) { Stu stu=new Stu(); //這條語句一定要放在迴圈結構裡,否則list中的值不會更新 System.out.println("正在錄入第 "+student_number+" 個工程師的資訊....\n"); System.out.println("******請輸入工程師的編號******"); stu.setid(Integer.parseInt(cin.next())); //這裡不能用的輸入不能用 cin.nextLine() 原因應該與C語言的gets()後+scanf()差不多 if(stu.getid()==0) {System.out.println("******成功退出輸入******\n");break;} System.out.println("******請輸入工程師的名字******"); stu.setname(cin.next()); System.out.println("******請輸入工程師的性別******"); stu.setsex(Boolean.parseBoolean(cin.next())); System.out.println("******請輸入工程師的出生日期******"); stu.setbornDate(Integer.parseInt(cin.next())); System.out.println("******請輸入工程師的學歷******"); stu.setedu(Integer.parseInt(cin.next())); System.out.println("******請輸入工程師的聯絡電話******"); stu.setphone(Long.parseLong(cin.next())); System.out.println("******請輸入工程師的工資******"); stu.setsalary(Float.parseFloat(cin.next())); list.add(stu); // stu.id=cin.nextInt(); // stu.name=cin.nextLine(); // stu.sex=cin.nextBoolean(); // stu.bornDate=cin.nextInt(); // stu.edu=cin.nextInt(); // stu.phone=cin.nextInt(); // stu.salary=cin.nextFloat(); System.out.println("第"+student_number+"個工程師的資訊錄入成功!\n"); student_number++; } } public void select() //查詢並打印出指定工程師資訊 { System.out.println("************請輸入要查詢的工程師編號******"); int num=cin.nextInt(); int number=0; for(int i=0;i<list.size();i++) { if(num==list.get(i).getid()) { System.out.println("**************************************************************************************"); System.out.println(" 編號 姓名 性別 出生日期 學歷 電話 工資"); System.out.println(list.get(i).getid()+"\t"+list.get(i).getname()+"\t"+list.get(i).getsex()+"\t"+list.get(i).getbornDate()+"\t"+list.get(i).getedu()+"\t"+list.get(i).getphone()+"\t"+list.get(i).getsalary()); System.out.println("**************************************************************************************"); number++; } } if(number==0) System.out.println("************你要查詢的工程師編號不存在************"); } public void delete() //刪除指定工程師資訊 { System.out.println("******請輸入要刪除的工程師編號******"); int num=cin.nextInt(); for(int i=0;i<list.size();i++) { if(num==list.get(i).getid()) { System.out.println("成功刪除編號為"+list.get(i).getid()+"的工程師"); list.remove(i);//刪除下標為i的資訊 } } } public void update() //修改指定工程師資訊 { int rm=0; int id1; String name1; boolean sex1; int borndate1; int edu1; long phone1; float salary1; System.out.println("******請輸入要修改的工程師編號******"); int num=cin.nextInt(); for(int i=0;i<list.size();i++) { if(num==list.get(i).getid()) { rm=1; System.out.println("請輸入修改後的編號"); id1=Integer.parseInt(cin.next()); list.get(i).setid(id1);//通過訪問函式介面來完成修改功能 System.out.println("請輸入修改後的名字"); name1=cin.next(); list.get(i).setname(name1); System.out.println("請輸入修改後的性別"); sex1=Boolean.parseBoolean(cin.next()); list.get(i).setsex(sex1); System.out.println("請輸入修改後的出生日期"); borndate1=Integer.parseInt(cin.next()); list.get(i).setbornDate(borndate1); System.out.println("請輸入修改後的學歷"); edu1=Integer.parseInt(cin.next()); list.get(i).setedu(edu1); System.out.println("請輸入修改後的電話"); phone1=Long.parseLong(cin.next()); list.get(i).setphone(phone1); System.out.println("請輸入修改後的工資"); salary1=Float.parseFloat(cin.next()); list.get(i).setsalary(salary1); System.out.println("********資訊修改完成**************"); break; } } if(rm==0) System.out.println("無此編號工程師!"); } public static class idComparator implements Comparator //自定義比較器類 { public int compare(Object o1,Object o2) { Stu s1,s2; s1=(Stu)o1; s2=(Stu)o2; return new Integer(s1.getid()).compareTo(new Integer(s2.getid()));//將s.getid()包裝為Integer物件後進行比較 } } public void sort() //排序工程師資訊 { Comparator cmp=new idComparator();//建立比較器物件 Collections.sort(list,cmp);//集合排序函式Collections.sort(集合列表,比較器) System.out.println("*******編號排序成功**********"); } public void output() //輸出所有工程師資訊 { System.out.println("============列印工程師資訊==========="); System.out.println("**************************************************************************************"); System.out.println(" 編號\t姓名\t性別\t出生日期\t\t學歷\t電話\t\t工資(元)"); System.out.println("**************************************************************************************"); for( Stu u:list) { System.out.println(u.getid()+"\t"+u.getname()+"\t"+u.getsex()+"\t"+u.getbornDate()+"\t\t"+u.getedu()+"\t"+u.getphone()+"\t"+u.getsalary()); } System.out.println("**************************************************************************************"); System.out.println("======================================================================================"); } public void clear() throws Exception //清除所有工程師資訊 { System.out.println("確認刪除? true/false"); boolean s=cin.nextBoolean(); if(s)list.clear(); if(!s) return ; System.out.println("******成功清除所有工程師資訊******"); } } public class Ims{ public static void main(String[] args)throws Exception{ Scanner sc=new Scanner(System.in); Operate pt=new Operate(); System.out.println("==============工程師資訊管理系統===============\n"); System.out.println("請選擇: 1: 錄入工程師資訊 2: 查詢指定工程師資訊 3: 刪除指定工程師資訊 4: 修改指定工程師資料 5: 對工程師資料排序 6: 輸出所有工程師資料 7: 清除所有工程師資料 8: 退出"); while(sc.hasNextInt()) { int n=sc.nextInt(); if(n==8) break; switch(n) { case 1: pt.input();break; case 2: pt.select();break; case 3: pt.delete();break; case 4: pt.update();break; case 5: pt.sort();break; case 6: pt.output();break; case 7: pt.clear();break; } System.out.println("請選擇: 1: 錄入工程師資訊 2: 查詢指定工程師資訊 3: 刪除指定工程師資訊 4: 修改指定工程師資料 5: 對工程師資料排序 6: 輸出所有工程師資料 7: 清除所有工程師資料 8: 退出"); } System.out.println("歡迎您下次繼續使用本資訊管理系統!"); } }
此程式碼僅供初學者參考=.=