一、前言
我們學了這么久的知識了,光學知識不會用是一件很悲傷的事情,所以我們應學完
部分練一些專案或題,來鞏固我們學習的知識,激發我們持續學習的動力,
二、創建通訊的功能
增加聯系人資訊
洗掉聯系人資訊
修改聯系人資訊
查看所有聯系人資訊
退出通信錄管理系統
首先定義一個People類,提供相應的get、set方法
(在idea中有快捷鍵Alt+insert生成get、set方法,和構造方法)
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類中加上選單,并在測驗類中去呼叫,
public void 選單(){
System.out.println("-------歡迎來到通訊錄管理系統-------");
System.out.println("1.增加聯系人");
System.out.println("2.洗掉聯系人");
System.out.println("3.修改聯系人");
System.out.println("4.查看所有聯系人");
System.out.println("5.退出");
System.out.println("請選擇:");
}
我們為了能直接通過列印物件來得到我們想要得到資訊,而不是得到
查看所有輸入的資訊,沒有重寫toString時:[controller.Student@6e0be858]
重寫了toString方法就可以得到看得懂,也可以通過Alt+Inset快捷鍵來快速生成toString方法
@Override
public String toString(){//重寫toString方法,使其變成我們看得懂的指定的資訊
return "[姓名:"+name+",年齡:"+age+",電話:"+num+",關系:"+sid+",住址:"+address+"]\n";
}
}
以上都是在People類中,
我們在PeopleManner類下,書寫以下方法,
main方法中:
public static void main(String[] args) {
ArrayList<People> array = new ArrayList();
while (true) {
People s = new People();//創建物件,呼叫方法,
s.選單();
Scanner sc1 = new Scanner(System.in);
int d = sc1.nextInt();
switch (d) {
case 1: {
addPeople(array);
System.out.println("添加聯系人成功");
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("輸入錯誤,請重新輸入");
}
}
}
在增加聯系人的方法addPeople中
public static void addPeople(ArrayList<People> array){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入姓名");
String name=sc.nextLine();
System.out.println("請輸入電話號碼");
String num=sc.nextLine();
System.out.println("請輸入你們之間的關系");
String sid=sc.nextLine();
System.out.println("請輸入年齡");
String age=sc.nextLine();
System.out.println("請輸入家庭住址");
String address=sc.nextLine();
People s1=new People();//創建物件,呼叫set成員,設定成員的值
s1.setAddress(address);
s1.setAge(age);
s1.setName(name);
s1.setSid(sid);
s1.setNum(num);
array.add(s1);//將所有設定的變數加到集合中
}
在查看所有聯系人的方法checkPeople中
public static void checkPeople(ArrayList<People> array){
if(array.isEmpty()){//isEmpty是用來判斷非空的是collection介面的方法,ArrayList實作了
list介面,list介面繼承了collection介面
System.out.println("沒有聯系人資訊,請先添加聯系人后查看");
}
else{
System.out.println(array);}//查看所有輸入的資訊,沒有重寫toString時:
//[controller.Student@6e0be858]
}
在洗掉聯系人資訊方法中
public static void deletePeople(ArrayList<People> array){
if(array.isEmpty()){
System.out.println("沒有聯系人資訊,請先添加聯系人資訊再操作");
}
else{
Scanner sc=new Scanner(System.in);
System.out.println("請輸入你要洗掉聯系人名字");
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包括了一個元素聯系人的所有信(name,age...)
if(stu.getName().equals(num)) {
array.remove(i);sum++;//定義一個變數用來判斷是否含有該元素
System.out.println("洗掉成功");
}
}
if(sum==0){
System.out.println("洗掉失敗,該聯系人資訊不存在");
}
}
}
在定義修改聯系人資訊的方法中
public static void revisePeople(ArrayList<People> array) {
if (array.isEmpty()) {
System.out.println("沒有聯系人資訊!請添加后在進行操作");
} else {
Scanner sc1 = new Scanner(System.in);
System.out.println("請輸入你要修改聯系人的姓名");
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("沒有匹配的姓名,重新輸入");
}else{
Scanner sc = new Scanner(System.in);
System.out.println("請輸入新姓名");
String name = sc.nextLine();
System.out.println("請輸入新電話碼");
String num = sc.nextLine();
System.out.println("請輸入你們之間的關系");
String sid = sc.nextLine();
System.out.println("請輸入新年齡");
String age = sc.nextLine();
System.out.println("請輸入新地址");
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也是一個包含聯系人所有資訊的元素,所以后續用array.set(i,s1)等價交換
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;
}
}
}
}
}
最終效果總覽圖:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/344212.html
標籤:java
上一篇:java多執行緒提交,如何按照時間順序獲取執行緒結果,看完你就懂了 | Java工具類
下一篇:在多個命令列中等待不起作用
