基於java的通訊錄管理系統


需求


聯系人Contacts(姓名name,電話mobile,郵箱email,QQ,分組group)
1)創建集合,添加5個聯系人,聯系人姓名不能重復
2)用戶選擇1 查看聯系人,2 添加聯系人 3 刪除聯系人 4 修改聯系人 5查看分組聯系人 6查看所有聯系人0退出通訊錄
3)選擇1查看聯系人時,輸入聯系人姓名,根據聯系人姓名查看到聯系人的信息
4)選擇2添加聯系人時,從控制台讀取姓名、電話、郵箱、QQ、分組(如家人、同事、同 學、朋友)
5)選擇3刪除聯系人,輸入聯系人姓名,刪除該聯系人信息
6)選擇4修改聯系人,輸入聯系人姓名,如果聯系人姓名不存在,則不能修改
7)實現5按分組查詢聯系人,輸入分組名,查看該分組下所有聯系人
8)實現添加分組,如果添加聯系人時該分組不存在,則創建新分組

代碼

聯系人類

/*聯系人類
 *屬性:姓名 電話 郵箱 qq 分組
 */
public class Contacts {
	private String name;
	private String mobile;
	private String email;
	private String qq;
	private String group;
	public Contacts() {
		
	}
	public Contacts(String name, String mobile, String email, String qq, String group) {
		super();
		this.name = name;
		this.mobile = mobile;
		this.email = email;
		this.qq = qq;
		this.group = group;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getQq() {
		return qq;
	}
	public void setQq(String qq) {
		this.qq = qq;
	}
	public String getGroup() {
		return group;
	}
	public void setGroup(String group) {
		this.group = group;
	}
	@Override
	public String toString() {
		return "Contacts [name=" + name + ", mobile=" + mobile + ", email=" + email + ", qq=" + qq + ", group=" + group
				+ "]";
	}
	
	
}

 主界面類

import java.security.acl.Group;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

import javax.naming.spi.NamingManager;



/*通訊錄主界面類
 *功能:
 *	1 查看聯系人
 *	2 添加聯系人 
 *	3 刪除聯系人
 *	4 修改聯系人
 *	5查看分組聯系人
 *	6查看所有聯系人
 *	0退出通訊錄 
 */
public class MainUi {
	// 定義全局的兩個集合變量
	Map<String, Contacts> contactMap;// 聯系人集合
	// 一個分組下面有多個聯系人,所以使用list作為value值
	Map<String, List<Contacts>> contactGroup;// 分組集合
	// 構造方法

	public MainUi() {
		// 實例化聯系人集合
		contactMap = new HashMap<>();
		// 實例化分組集合
		contactGroup = new HashMap<>();
		// 調用初始化界面的方法
		initUi();
	}

	// 初始化界面的方法
	private void initUi() {
		// 先初始化及格聯系人集合
		initFiveContacts();
		System.out.println("============================歡迎使用Contacts管理系統=========================");
		System.out.println();
		// while循環系統一直可以操作
		while (true) {
			System.out.print("1:查看聯系人 " + "  ");
			System.out.print("2:添加聯系人 " + "  ");
			System.out.print("3:刪除聯系人 " + "  ");
			System.out.print("4:修改聯系人 " + "  ");
			System.out.print("5:查看分組聯系人" + "  ");
			System.out.print("6:查看所有聯系人" + "  ");
			System.out.println("0:退出");
			System.out.println();
			System.out.println("請選擇你要執行的操作");
			// 匿名類創建鍵盤輸入對象 ,獲取鍵盤輸入
			String input = new Scanner(System.in).next();
			switch (input) {
			case "1":
				// 調用查看聯系人方法
				System.out.println("*****************************查看聯系人******************************");
				searchContacts();
				System.out.println("================================================");
				break;
			case "2":
				// 調用添加聯系人方法
				System.out.println("*****************************添加聯系人*****************************");
				addOrUpdateContacts("add");// false代表里面沒有此聯系人才能添加,
				System.out.println("====================================================================");
				break;
			case "3":
				// 調用刪除聯系人方法
				System.out.println("*****************************刪除聯系人*****************************");
				deleteContacts();
				System.out.println("====================================================================");
				break;
			case "4":
				// 調用修改聯系人方法
				System.out.println("******************************修改聯系人******************************");
				addOrUpdateContacts("update");// true代表里面存在聯系人
				System.out.println("====================================================================");
				break;
			case "5":
				// 調用查看分組聯系人方法
				System.out.println("******************************查看分組聯系人******************************");
				searchContactsByGroup();
				System.out.println("====================================================================");
				break;
			case "6":
				// 調用查看分組聯系人方法
				System.out.println("******************************查看所有聯系人******************************");
				searchAllContacts();
				System.out.println("====================================================================");
				break;
			case "0":
				System.out.println("******************************歡迎下次使用,再見!*************************");
				return;
			default:
				System.out.println("!!!!!!!!!!!!!!!輸入序號有誤,重新選擇!!!!!!!!!!!!!!!!");
				break;
			}
		}
	}

	// 初始化幾個聯系人對象
	private void initFiveContacts() {
		// 添加到聯系人集合
		contactMap.put("張三", new Contacts("張三", "123456", "1234@qq.com", "12312", "家人"));
		contactMap.put("李四", new Contacts("李四", "34534", "8765@qq.com", "9876", "同事"));
		contactMap.put("李三", new Contacts("李三", "3456", "1234@qq.com", "12312", "朋友"));
		contactMap.put("張四", new Contacts("張四", "75", "456@qq.com", "4566", "同事"));
		contactMap.put("王三", new Contacts("王三", "23456", "3456@qq.com", "14562", "家人"));
		// 添加到分組集合
		contactGroup.put("朋友", new ArrayList<Contacts>());
		contactGroup.put("同事", new ArrayList<Contacts>());
		contactGroup.put("同事", new ArrayList<Contacts>());
		contactGroup.put("家人", new ArrayList<Contacts>());
		contactGroup.put("家人", new ArrayList<Contacts>());

		contactGroup.get("朋友").add(contactMap.get("李三"));
		contactGroup.get("同事").add(contactMap.get("張四"));
		contactGroup.get("同事").add(contactMap.get("李四"));
		contactGroup.get("家人").add(contactMap.get("張三"));
		contactGroup.get("家人").add(contactMap.get("王三"));
	}

	// 查看聯系人
	public void searchContacts() {
		System.out.println("輸入要查詢的聯系人姓名");
		String name = new Scanner(System.in).nextLine();
		if (contactMap.containsKey(name)) {
			System.out.println(contactMap.get(name));
		} else {
			System.out.println("沒有此聯系人");
		}
	}

	// 添加或者修改聯系人
	public void addOrUpdateContacts(String type) {
		Scanner sc = new Scanner(System.in);
		do {
			System.out.println("請輸入姓名");
			String name = sc.nextLine();
			// 如果是添加操作, 並且map中有聯系人,就不能添加
			if ("add".equals(type) && contactMap.containsKey(name)) {
				System.out.println("已經有此聯系人");
				continue;
			}
			// 如果是修改操作,並且map中沒有聯系人,就不能修改
			if ("update".equals(type) && !contactMap.containsKey(name)) {
				System.out.println("沒有此聯系人");
				break;//直接跳出
			}
			Contacts contact = new Contacts();
			contact.setName(name);
			System.out.println("請輸入電話");
			contact.setMobile(sc.nextLine());
			System.out.println("請輸入email");
			contact.setEmail(sc.nextLine());
			System.out.println("請輸入QQ");
			contact.setQq(sc.nextLine());
			System.out.println("請輸入分組");
			String group = sc.nextLine();
			contact.setGroup(group);
			contactMap.put(contact.getName(), contact);
			if (!contactGroup.containsKey(group)) {// 當分組不存在時,新建分組
				contactGroup.put(group, new ArrayList<Contacts>());
			}
			contactGroup.get(group).add(contact);// 將聯系人添加到分組
			System.out.println("成功");
			return;
		} while (true);
	}

	// 刪除聯系人
	public void deleteContacts() {
		System.out.println("輸入你刪除的聯系人姓名");
		String name = new Scanner(System.in).nextLine();
		if(contactMap.containsKey(name)) {
			contactMap.remove(name);
		}else {
			System.out.println("沒有此聯系人的信息!");
		}
	}

	// 查看所有聯系人
	public void searchAllContacts() {
		for (String key : contactMap.keySet()) {
			System.out.println(contactMap.get(key));
		}
	}

	// 查看分組聯系人
	public void searchContactsByGroup() {
		System.out.println("輸入要查看的分組");
		String group = new Scanner(System.in).nextLine();
		if(!contactGroup.containsKey(group)){
			System.out.println("不存在這個分組");
		}else {
			List<Contacts> list = contactGroup.get(group);
			for(Contacts c:list) {
				System.out.println(c);
			}
		}
	}

}

 運行類

/*測試類
 *功能:
 *	調用主界面窗口,用來啟動通訊錄
 */
public class Test {
	public static void main(String[] args) {
		MainUi mainui = new MainUi();
	}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM