好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java实现通讯录管理系统项目

本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下

一、前言

我们学了这么久的知识了,光学知识不会用是一件很悲伤的事情,所以我们应学完

部分练一些项目或题,来巩固我们学习的知识,激发我们持续学习的动力。

二、创建通讯的功能

增加联系人信息 删除联系人信息 修改联系人信息 查看所有联系人信息 退出通信录管理系统

首先定义一个People类,提供相应的get、set方法

(在idea中有快捷键Alt+insert生成get、set方法,和构造方法)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

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类中加上菜单,并在测试类中去调用。

?

1

2

3

4

5

6

7

8

9

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方法

?

1

2

3

4

5

@Override

     public String toString(){ //重写toString方法,使其变成我们看得懂的指定的信息

         return "[姓名:" +name+ ",年龄:" +age+ ",电话:" +num+ ",关系:" +sid+ ",住址:" +address+ "]\n" ;

     }

  }

以上都是在People类中。

我们在PeopleManner类下,书写以下方法。

main方法中:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

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中

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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中

?

1

2

3

4

5

6

7

8

9

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]

      }

在删除联系人信息方法中

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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( "删除失败,该联系人信息不存在" );

                }

         }

      }

在定义修改联系人信息的方法中

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

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://blog.csdn.net/weixin_60719453/article/details/121086292

查看更多关于Java实现通讯录管理系统项目的详细内容...

  阅读:31次