Java實(shí)現(xiàn)通訊錄管理系統(tǒng)項(xiàng)目
本文實(shí)例為大家分享了Java實(shí)現(xiàn)通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、前言
我們學(xué)了這么久的知識(shí)了,光學(xué)知識(shí)不會(huì)用是一件很悲傷的事情,所以我們應(yīng)學(xué)完
部分練一些項(xiàng)目或題,來(lái)鞏固我們學(xué)習(xí)的知識(shí),激發(fā)我們持續(xù)學(xué)習(xí)的動(dòng)力。
二、創(chuàng)建通訊的功能
- 增加聯(lián)系人信息
- 刪除聯(lián)系人信息
- 修改聯(lián)系人信息
- 查看所有聯(lián)系人信息
- 退出通信錄管理系統(tǒng)
首先定義一個(gè)People類,提供相應(yīng)的get、set方法
(在idea中有快捷鍵Alt+insert生成get、set方法,和構(gòu)造方法)
public class People { private String sid; private String name; private String age; private String address; private String num; public People(){} public People(String sid, String name, String age, String address, String num) { this.sid = sid; this.name = name; this.age = age; this.address = address; this.num=num; } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getNum() { return num; } public void setNum(String num) { this.num = num; }
在People類中加上菜單,并在測(cè)試類中去調(diào)用。
public void 菜單(){ System.out.println("-------歡迎來(lái)到通訊錄管理系統(tǒng)-------"); System.out.println("1.增加聯(lián)系人"); System.out.println("2.刪除聯(lián)系人"); System.out.println("3.修改聯(lián)系人"); System.out.println("4.查看所有聯(lián)系人"); System.out.println("5.退出"); System.out.println("請(qǐng)選擇:"); }
我們?yōu)榱四苤苯油ㄟ^(guò)打印對(duì)象來(lái)得到我們想要得到信息,而不是得到
查看所有輸入的信息,沒(méi)有重寫toString時(shí): [controller.Student@6e0be858]
重寫了toString方法就可以得到看得懂。也可以通過(guò)Alt+Inset快捷鍵來(lái)快速生成toString方法
@Override public String toString(){//重寫toString方法,使其變成我們看得懂的指定的信息 return "[姓名:"+name+",年齡:"+age+",電話:"+num+",關(guān)系:"+sid+",住址:"+address+"]\n"; } }
以上都是在People類中。
我們?cè)赑eopleManner類下,書寫以下方法。
main方法中:
public static void main(String[] args) { ArrayList<People> array = new ArrayList(); while (true) { People s = new People();//創(chuàng)建對(duì)象,調(diào)用方法。 s.菜單(); Scanner sc1 = new Scanner(System.in); int d = sc1.nextInt(); switch (d) { case 1: { addPeople(array); System.out.println("添加聯(lián)系人成功"); break; } case 2:{ deletePeople(array); break; } case 3:{ revisePeople(array); break; } case 4:{ checkPeople(array); break; } case 5:{ System.out.println("退出成功,謝謝使用"); System.exit(0); break; } default:{ System.out.println("輸入錯(cuò)誤,請(qǐng)重新輸入"); } } }
在增加聯(lián)系人的方法addPeople中
public static void addPeople(ArrayList<People> array){ Scanner sc=new Scanner(System.in); System.out.println("請(qǐng)輸入姓名"); String name=sc.nextLine(); System.out.println("請(qǐng)輸入電話號(hào)碼"); String num=sc.nextLine(); System.out.println("請(qǐng)輸入你們之間的關(guān)系"); String sid=sc.nextLine(); System.out.println("請(qǐng)輸入年齡"); String age=sc.nextLine(); System.out.println("請(qǐng)輸入家庭住址"); String address=sc.nextLine(); People s1=new People();//創(chuàng)建對(duì)象,調(diào)用set成員,設(shè)置成員的值 s1.setAddress(address); s1.setAge(age); s1.setName(name); s1.setSid(sid); s1.setNum(num); array.add(s1);//將所有設(shè)置的變量加到集合中 }
在查看所有聯(lián)系人的方法checkPeople中
public static void checkPeople(ArrayList<People> array){ if(array.isEmpty()){//isEmpty是用來(lái)判斷非空的是collection接口的方法,ArrayList實(shí)現(xiàn)了 list接口,list接口繼承了collection接口 System.out.println("沒(méi)有聯(lián)系人信息,請(qǐng)先添加聯(lián)系人后查看"); } else{ System.out.println(array);}//查看所有輸入的信息,沒(méi)有重寫toString時(shí): //[controller.Student@6e0be858] }
在刪除聯(lián)系人信息方法中
public static void deletePeople(ArrayList<People> array){ if(array.isEmpty()){ System.out.println("沒(méi)有聯(lián)系人信息,請(qǐng)先添加聯(lián)系人信息再操作"); } else{ Scanner sc=new Scanner(System.in); System.out.println("請(qǐng)輸入你要?jiǎng)h除聯(lián)系人名字"); String num=sc.nextLine(); int sum=0; for(int i=0;i<array.size();i++) { People stu = array.get(i); // System.out.println(stu);//stu包括了一個(gè)元素聯(lián)系人的所有信(name,age...) if(stu.getName().equals(num)) { array.remove(i);sum++;//定義一個(gè)變量用來(lái)判斷是否含有該元素 System.out.println("刪除成功"); } } if(sum==0){ System.out.println("刪除失敗,該聯(lián)系人信息不存在"); } } }
在定義修改聯(lián)系人信息的方法中
public static void revisePeople(ArrayList<People> array) { if (array.isEmpty()) { System.out.println("沒(méi)有聯(lián)系人信息!請(qǐng)?zhí)砑雍笤谶M(jìn)行操作"); } else { Scanner sc1 = new Scanner(System.in); System.out.println("請(qǐng)輸入你要修改聯(lián)系人的姓名"); String name1 = sc1.nextLine(); int sum = 0; for (int j = 0; j < array.size(); j++) { People s2 = array.get(j); if (s2.getName().equals(name1)) { sum++; } } if (sum == 0) { System.out.println("沒(méi)有匹配的姓名,重新輸入"); }else{ Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入新姓名"); String name = sc.nextLine(); System.out.println("請(qǐng)輸入新電話碼"); String num = sc.nextLine(); System.out.println("請(qǐng)輸入你們之間的關(guān)系"); String sid = sc.nextLine(); System.out.println("請(qǐng)輸入新年齡"); String age = sc.nextLine(); System.out.println("請(qǐng)輸入新地址"); String address = sc.nextLine(); People s1 = new People(); s1.setAddress(address); s1.setAge(age); s1.setName(name); s1.setSid(sid); s1.setNum(num); // System.out.println(s1);//s1也是一個(gè)包含聯(lián)系人所有信息的元素,所以后續(xù)用array.set(i,s1)等價(jià)交換 for (int i = 0; i < array.size(); i++) { People s = array.get(i); if (s.getName().equals(name1)) { array.set(i, s1);//將他修改 System.out.println("修改成功"); break; } } } } }
最終效果總覽圖:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot jdbctemplate如何實(shí)現(xiàn)多數(shù)據(jù)源
這篇文章主要介紹了springboot jdbctemplate如何實(shí)現(xiàn)多數(shù)據(jù)源問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Java和C++通過(guò)new創(chuàng)建的對(duì)象有何區(qū)別?
Java和C++都是面向?qū)ο蟮木幊陶Z(yǔ)言,然而Java和C++在創(chuàng)建對(duì)象時(shí)卻存在不同的方式,由于方式的不同導(dǎo)致在內(nèi)存中管理的不同。這篇文章主要給大家介紹了關(guān)于Java和C++通過(guò)new創(chuàng)建對(duì)象區(qū)別的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-11-11詳解Java動(dòng)態(tài)代理的實(shí)現(xiàn)機(jī)制
這篇文章主要為大家詳細(xì)介紹了Java動(dòng)態(tài)代理的實(shí)現(xiàn)機(jī)制,感興趣的小伙伴們可以參考一下2016-03-03java錯(cuò)誤:?不支持發(fā)行版本?22的簡(jiǎn)單解決方法
這篇文章主要給大家介紹了關(guān)于java錯(cuò)誤:?不支持發(fā)行版本?22的簡(jiǎn)單解決方法,這個(gè)錯(cuò)誤通常是由于Java版本不兼容導(dǎo)致的,請(qǐng)檢查您的項(xiàng)目所使用的Java版本是否與您當(dāng)前安裝的Java版本一致,需要的朋友可以參考下2024-06-06Java異步線程中的CompletableFuture與@Async詳解
這篇文章主要介紹了Java異步線程中的CompletableFuture與@Async詳解,CompletableFuture是java中提供的一個(gè)異步執(zhí)行類,@Async是Spring提供的異步執(zhí)行方法,當(dāng)調(diào)用方法單獨(dú)開(kāi)啟一個(gè)線程進(jìn)行調(diào)用,需要的朋友可以參考下2024-01-01