1. 程式人生 > >Java 通訊錄管理系統 簡易版(hashmap)

Java 通訊錄管理系統 簡易版(hashmap)

                                                通訊錄管理系統(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;
				}
			}
		}
	}
}