Java 通訊錄管理系統 簡易版(hashmap)
阿新 • • 發佈:2019-02-19
通訊錄管理系統(java)
本程式使用java編寫,主要用到了Myhashmap類(使用了自己編寫的Mypair),讀者可以換成Hashmap,這樣就可以運行了,整體非常簡單。
執行結果如下:
程式碼:
package DS1; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.util.Scanner; public class Contactsmap { Myhashmap<String, String> map = new Myhashmap<String, String>(100);//建一個新的myhashmap String[] keynum = new String[100]; //記錄所有人的姓名資訊 int length = 0; //聯絡人的數量 Scanner scanner = new Scanner(System.in); public void print(String s) { System.out.println("姓名 " + "性別 " + "電話號碼 " + "電子郵件"); //查詢結果輸出 System.out.println("-------------------------------------------------"); System.out.print(s + " "); System.out.println(map.get(s)); } public void add() { //新增聯絡人 System.out.print("請輸入姓名:"); String name = scanner.next(); //以姓名為索引新增 System.out.print("請輸入性別:"); String se = scanner.next(); System.out.print("請輸入電話號碼:"); String num = scanner.next(); System.out.print("請輸入電子郵件:"); String email = scanner.next(); String phone = se + " " + num + " " + email; //性別、電話號碼、電子郵件放到同一個字串進行處理 map.add(name, phone); //新增到Myhashmap keynum[length++] = name; //聯絡人數量加一,存進列表中 System.out.println("新增成功"); } public void search() { //查詢聯絡人 if (map.isEmpty()) { System.out.println("通訊錄為空,請先新增聯絡人"); } else { System.out.println("請輸入要查詢人的姓名:"); String name1 = scanner.next(); print(name1); } } public void remove() { //刪除聯絡人 if (map.isEmpty()) System.out.println("通訊錄為空"); System.out.print("請輸入要刪除的姓名:"); String deletName = scanner.next(); for (int i = 0; i < length; i++) if (keynum[i].equals(deletName)) { map.remove(deletName); System.out.println("刪除成功"); length--; return; } System.out.println("使用者不存在!"); } public void update() { //修改聯絡人 System.out.print("請輸入您要修改的通訊人的姓名:"); String updateName = scanner.next(); for (int i = 0; i < length; i++){ if (keynum[i].equals(updateName)) { map.remove(updateName); System.out.print("請輸入修改後的通訊人姓名:"); String name = scanner.next(); System.out.print("請輸入修改後的通訊人性別:"); String se = scanner.next(); System.out.print("請輸入修改後的通訊人電話號碼:"); String num = scanner.next(); System.out.print("請輸入修改後的通訊人電子郵件:"); String email = scanner.next(); String phone = se + " " + num + " " + email; map.add(name, phone); keynum[i] = name; System.out.println("修改成功"); return; } } System.out.println("使用者不存在!"); } public void save() throws FileNotFoundException { //儲存修改的記錄到text.txt FileOutputStream fs = new FileOutputStream(new File("text.txt")); PrintStream p = new PrintStream(fs); p.println("姓名 " + "性別 " + "電話號碼 " + "電子郵件"); p.println("-------------------------------------------------"); int it = 0; while (it < length) { if (map.get(keynum[it]) != null) { p.print(keynum[it] + " "); p.println(map.get(keynum[it])); } it++; } p.close(); System.out.println("儲存成功"); } public void message() throws FileNotFoundException { //主操作函式 while (true) { System.out.println("請輸出1~6的數字:1.新增 2.查詢 3.刪除 4.修改 5.儲存 6.退出"); char[] choose = scanner.next().toCharArray(); if (choose.length > 1) { System.out.println("只能輸入1-6的數字"); } else { switch (choose[0]) { case '1': add(); break; case '2': search(); break; case '3': remove(); break; case '4': update(); break; case '5': save(); break; case '6': System.out.println("您已退出操作!"); return; default: break; } } } } }