Java实现通讯录

这篇具有很好参考价值的文章主要介绍了Java实现通讯录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:通讯录非常适合前期需要练习语法的小伙伴,效果非常好。
水再浑浊,只要长久沉淀,依然会分外清澈。
人再愚钝,只要足够努力,一样能改写命运。

此通讯录的功能包括:
1.删除联系人
2.增加联系人
3.展示已有联系人
4.查找联系人
5.排序联系人
6.退出通讯录

public class Main {
    public static IMainList func(){
        AddressList.menu();//打印菜单
        Scanner scanner=new Scanner(System.in);
        System.out.println("请选择->");
        int k= scanner.nextInt();
        if(k==1){
            return new DeleatePerson();//删除联系人
        }else if(k==2) {
            return new AddPerson();//增加联系人
        }else if(k==3){
            return new ShowPerson();//展示联系人
        }else if(k==4){
            return new LookupPerson();//查询联系人
        }else if(k==5){
            return new SortPerson();//联系人排序
        }
        return null;
    }
    public static void main(String[] args) {
        //AddPerson addPerson=new AddPerson();//创建通信录
        AddressList addressList=new AddressList();
        while(true) {
            IMainList iMainList = func();//向上转型,执行通讯录的相关操作
            if(iMainList==null){
                System.out.println("选择错误,退出通讯录系统!");
                break;
            }
            iMainList.func(addressList);
        }
    }
}

联系人包含姓名、电话号、出生年月信息。

public class Person1 implements Comparable<Person1>{
    public String name;
    private String Telephone;//电话号
    private int year;//出生年月
    private  int month;
    private int day;

    public Person1(String name, String telephone, int year, int month, int day) {
        this.name = name;
        Telephone = telephone;
        this.year = year;
        this.month = month;
        this.day = day;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTelephone() {
        return Telephone;
    }

    public void setTelephone(String telephone) {
        Telephone = telephone;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }

    @Override
    public String toString() {
        return "Person1{" +
                "name='" + name + '\'' +
                ", Telephone='" + Telephone + '\'' +
                ", year=" + year +
                ", month=" + month +
                ", day=" + day +
                '}';
    }

    @Override
    public int compareTo(Person1 o) {
        return this.name.compareTo(o.name);
    }
    
}

IMainList是一个接口主要实现通过向上转型调用某个功能。

public interface IMainList {
    public abstract void func(AddressList addressList);
}

定义了联系人数组用于存放联系人信息,和菜单功能。

public class AddressList {//通讯录
    Person1[] person=new Person1[100];
    public static int count=0;
    public AddressList() {

    }
    public static void menu(){
        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("6.退出通讯录");
        System.out.println("=================");
    }
}

AddPerson类实现了IMainList接口,主要重写方法,增加联系人操作。

public class AddPerson implements IMainList {
    @Override
    public void func(AddressList addressList) {
        Scanner scanner =new Scanner(System.in);
        System.out.println("请输入姓名");
        String name= scanner.nextLine();

        System.out.println("请输入电话号");
        String Telephone= scanner.nextLine();
        System.out.println("请输入年份");
        int year= scanner.nextInt();
        System.out.println("请输入月份");
        int month= scanner.nextInt();
        System.out.println("请输入日期");
        int day= scanner.nextInt();
        Person1 per=new Person1(name,Telephone,year,month,day);
        addressList.person[addressList.count]=per;
        System.out.println("添加联系人成功");
        addressList.count++;
    }
}

删除联系人功能

public class DeleatePerson implements IMainList {


    @Override
    public void func(AddressList addressList) {
            //删除联系人

        Scanner scanner =new Scanner(System.in);
        System.out.println("请输入要删除的联系人姓名:");
        String n= scanner.nextLine();
        for(int i=0;i<AddressList.count;i++){
            if(n.equals(addressList.person[i].getName())){
                for(int j=i;j<AddressList.count-1;j++){
                    addressList.person[j]=addressList.person[j+1];
                }
                break;
            }
        }
        addressList.person[AddressList.count-1]=null;
        AddressList.count-=1;
        System.out.println("删除"+n+"联系人成功");
    }
}

查找联系人功能

public class LookupPerson implements IMainList {
    @Override
    public void func(AddressList addressList) {
        Scanner scanner =new Scanner(System.in);
        System.out.println("请输入要查找的联系人->");
        String n= scanner.nextLine();
        int flag=0;
        for(int i=0;i<=AddressList.count;i++){
            if(n.equals(addressList.person[i].getName())){
                System.out.println("找到了-->"+n+ "  联系人");
                flag=1;
                break;
            }

        }
        if(flag==0){
            System.out.println("找不到此联系人");
        }
    }
}

显示已有联系人的信息

public class ShowPerson implements IMainList {
    @Override
    public void func(AddressList addressList) {
        for(int i=0;i<addressList.count;i++){
            System.out.println(addressList.person[i].toString());
        }
    }
}

对联系人进行排序(通过年份排序)

public class SortPerson implements IMainList {
    @Override
    public void func(AddressList addressList) {
        Person1 person1=new Person1("1","222",1,1,1);
       for(int i=0;i<AddressList.count-1;i++){
           for(int j=0;j<AddressList.count-1-i;j++){
               if(addressList.person[j].getYear()>addressList.person[j+1].getYear()){
                   person1=addressList.person[j];
                   addressList.person[j]=addressList.person[j+1];
                   addressList.person[j+1]=person1;

               }
           }
       }
        System.out.println("排序完成!");
    }
}

Java实现通讯录文章来源地址https://www.toymoban.com/news/detail-512751.html

到了这里,关于Java实现通讯录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通讯录实现【C语言】

    目录 前言 一、整体逻辑分析 二、实现步骤 1、创建菜单和多次操作问题 2、创建通讯录 3、初始化通讯录 4、添加联系人 5、显示联系人 6、删除指定联系人 ​7、查找指定联系人 8、修改联系人信息 9、排序联系人信息 三、全部源码 我们上期已经详细的介绍了自定义类型,本

    2024年02月11日
    浏览(60)
  • 【C语言】动态内存管理基础知识——动态通讯录,如何实现通讯录容量的动态化

    动态内存管理的函数有:malloc,calloc,ralloc,free,本文讲解动态内存函数和使用,如何进行动态内存管理,实现通讯录联系人容量的动态化,对常见动态内存错误进行总结。                           ✨  猪巴戒 :个人主页✨                 所属专栏 :《C语言进阶》

    2024年02月04日
    浏览(68)
  • Android Studio 简易通讯录制作 (Java)

    通讯录首页:  添加联系人页面:  修改联系人: 删除联系人:  程序代码: MainActivity.java MyAdapter.java  DBHelper.java User.java  activity_main.xml dialog.xml  item.xml colors.xml  详细见:https://gitee.com/love1213/Android-Studio-Contacts.git

    2024年02月11日
    浏览(44)
  • Java、JSP等通讯录管理系统

    技术: Java、JSP 等 摘要: 1.1 选题背景 随着市场经济的发展和人们生活水平的提高,随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。人们已经不满

    2024年02月04日
    浏览(51)
  • 通讯录的实现(静态入手版)

    🍉博客主页:阿博历练记 📖文章专栏:c语言(初阶与进阶) 🎁代码仓库:阿博编程日记 🌹欢迎关注:欢迎友友们点赞收藏+关注哦 在生活中,我们可以通过通讯录快速实现对一位好友的查找,便捷了我们的日常生活,今天阿博就带领友友们一起探索通讯录的实现🙈🙈🙈

    2024年02月02日
    浏览(63)
  • 动态通讯录实现(C语言)

    目录 前言: 一:单个节点的设计和主逻辑  结点设计 主逻辑 二:接口实现 (1)生成一个新的结点 (2)增加信息 (3)打印信息 (4)查找  (5)删除信息 (6)修改信息 (7)排序  插入排序 快速排序 (8)已有数据读取 (9)更新数据录入 三:全部代码 contact.h(声明) contact.c(接口) test.c(主逻辑) 本

    2024年02月05日
    浏览(58)
  • C语言--通讯录的实现

    人的信息:姓名+年龄+性别+住址+电话 通讯录中可以存放100个人的信息 增加联系人 删除指定联系人 查找指定联系人 修改指定联系人 显示所有联系人的信息 test.c----测试通讯录 contact.c----通讯录的实现 contact.h----函数的声明 代码如下(示例): 代码如下(示例):

    2024年02月15日
    浏览(48)
  • 通讯录(纯C语言实现)

    相信大家都有过通讯录,今天我来带大家实现以下最简单的通讯录,通过本篇文章,相信可以让大家对C语言有进一步的认识。 话不多说,我们先放函数的实现  是不是看到这里会感到很害怕??不用怕,跟着我的思路,你也可以实现它,我带着你一步一步实现每一个功能  

    2024年02月16日
    浏览(48)
  • 通讯录的实现(动态完结版)

    🍉博客主页:阿博历练记 📖文章专栏:c语言(初阶与进阶) 🍗代码仓库:阿博编程日记 🌹欢迎关注:欢迎友友们点赞收藏+关注哦 上期阿博带领友友们实现了通讯录的静态版,这种版本有个缺点,它的大小是固定的,只能存放固定大小的一个人的基本信息,今天阿博就带

    2024年02月02日
    浏览(28)
  • 【数据结构】顺序表实现通讯录

    前言 在上一节中我们实现了顺序表,现在我们将使用顺序表完成通讯录的实现。(注:本人水平有限,“小屎山”有些许bug,代码冗余且语无伦次,望谅解!😅) 首先,定义一个结构体Contact来存储单个联系人的信息,包括姓名、性别、年龄和手机号。 然后,定义一个结构

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包