当前位置: 首页 > news >正文

Java实现简单的通讯录

每日一言

泪眼问花花不语,乱红飞过秋千去。 —欧阳修-


简单的通讯录实现,跟写Java实现图书管理系统差不多,用到的知识也差不多,就当个小练习,练习一下写Java程序的手感。

Java实现图书管理系统

关于通讯录的代码都写在下面了

1. 代码

1.1 contact 包

1.1.1 Contact

package contact;public class Contact {private int size;//当前占用容量private Person[] people = new Person[3];public int getSize() {return size;}public void setSize(int size) {this.size = size;}public Person getPerson(int pos) {return people[pos];}public void setPerson(Person person,int pos) {this.people[pos] = person;}public Boolean isFull(Contact contact) {return contact.getSize() == people.length;}
}

1.1.2 Person

package contact;public class Person {private String name;private String sex;private int age;private String telephone;public String getName() {return name;}public int getAge() {return age;}@Overridepublic String toString() {return "Person{" +"名字='" + name + '\'' +", 性别='" + sex + '\'' +", 年龄=" + age +", 电话='" + telephone + '\'' +'}';}public Person(String name, String sex, int age, String telephone) {this.name = name;this.sex = sex;this.age = age;this.telephone = telephone;}
}

1.2 option 包

1.2.1 AddContact

package option;import contact.Contact;
import contact.Person;import java.util.Scanner;public class AddContact implements IOperation{@Overridepublic void work(Contact contact) {if(contact.isFull(contact)) {System.out.println("通讯录已满,无法添加!");return;}else {Scanner scanner = new Scanner(System.in);System.out.println("请输入联系人姓名:>");String name = scanner.nextLine();System.out.println("请输入联系人性别:>");String sex = scanner.nextLine();System.out.println("请输入联系人年龄:>");int age = scanner.nextInt();System.out.println("请输入联系人电话:>");String telephone = scanner.next();Person person = new Person(name,sex,age,telephone);int size = contact.getSize();contact.setPerson(person,size);contact.setSize(size+1);System.out.println("添加成功!");}}}

1.2.2 DelContact

package option;import contact.Contact;import java.util.Scanner;public class DelContact implements IOperation{@Overridepublic void work(Contact contact) {int size = contact.getSize();if(0 == size) {System.out.println("通讯录为空,无法删除!");return;}else {System.out.println("请输入要删除的联系人姓名");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();for (int i = 0; i < size; i++) {if(name.equals(contact.getPerson(i).getName())) {//删除for (int j = i; j < size-1; j++) {contact.setPerson(contact.getPerson(j+1),j);}contact.setSize(size-1);System.out.println("删除成功!");return;}}System.out.println("没有你要删除的联系人!");}}
}

1.2.3 ExitContact

package option;import contact.Contact;public class ExitContact implements IOperation{@Overridepublic void work(Contact contact) {//释放占用内存for (int i = 0; i < contact.getSize(); i++) {contact.setPerson(null,i);}System.out.println("退出成功!");System.exit(0);}
}

1.2.4 FindContact

package option;import contact.Contact;import java.util.Scanner;public class FindContact implements IOperation{@Overridepublic void work(Contact contact) {int size = contact.getSize();System.out.println("请输入要查找的联系人姓名");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();for (int i = 0; i < size; i++) {if(name.equals(contact.getPerson(i).getName())) {System.out.println(contact.getPerson(i).toString());return;}}System.out.println("没有你要查找的联系人!");}
}

1.2.5 IOperation 接口

package option;import contact.Contact;public interface IOperation {void work(Contact contact);
}

1.2.6 ModifyContact

package option;import contact.Contact;
import contact.Person;import java.util.Scanner;public class ModifyContact implements IOperation{@Overridepublic void work(Contact contact) {int size = contact.getSize();System.out.println("请输入要修改的联系人姓名");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();for (int i = 0; i < size; i++) {if(name.equals(contact.getPerson(i).getName())) {//修改System.out.println("请输入联系人姓名:>");String name1 = scanner.nextLine();System.out.println("请输入联系人性别:>");String sex = scanner.nextLine();System.out.println("请输入联系人年龄:>");int age = scanner.nextInt();System.out.println("请输入联系人电话:>");String telephone = scanner.next();Person person = new Person(name1,sex,age,telephone);contact.setPerson(person,i);System.out.println("修改成功!");return;}}System.out.println("没有你要修改的联系人!");}
}

1.2.7 ShowContact

package option;import contact.Contact;public class ShowContact implements IOperation{@Overridepublic void work(Contact contact) {if(0 == contact.getSize()) {System.out.println("通讯录为空");return;}else {for (int i = 0; i < contact.getSize(); i++) {System.out.println(contact.getPerson(i).toString());}}}
}

1.3 Main

import contact.Contact;
import option.AddContact;import java.util.Scanner;public class Main {public static int 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("0.退出通讯录");System.out.println("*********************");System.out.println("请输入选项:>");Scanner scanner = new Scanner(System.in);return scanner.nextInt();}public static void main(String[] args) {int op;User user = new User();Contact contact = new Contact();do {op = menu();if(op > user.iOperation.length || op < 0) {System.out.println("输入错误!");continue;}user.doOperation(contact,op);}while (0 != op);}
}

1.4 User

import contact.Contact;
import option.*;public class User {IOperation[] iOperation = new IOperation[]{new ExitContact(),new AddContact(),new DelContact(),new ShowContact(),new FindContact(),new ModifyContact(),};public void doOperation(Contact contact,int op) {this.iOperation[op].work(contact);}
}

2. 效果

2.1 添加联系人

在这里插入图片描述

2.2 展示联系人

在这里插入图片描述

2.3 删除联系人

在这里插入图片描述

2.4 查找联系人

在这里插入图片描述

2.5 修改联系人

在这里插入图片描述

2.6 退出通讯录

在这里插入图片描述


结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


http://www.lryc.cn/news/319706.html

相关文章:

  • 服务器数据恢复—raid5热备盘上线同步数据失败的如何恢复数据
  • 探索C语言中的循环结构
  • 数学建模-估计出租车的总数
  • 设计模式在芯片验证中的应用——装饰器
  • Python 查找并高亮PDF中的指定文本
  • LEETCODE LCS 03. 主题空间
  • 【Spring Boot 源码学习】深入应用上下文初始化器实现
  • 【Docker】一文趣谈Docker
  • 代码随想录day19(2)二叉树:二叉树的最大深度(leetcode104)
  • Lua中文语言编程源码-第五节,更改lcorolib.c协程库函数, 使Lua加载中文库关键词(与所有的基础库相关)
  • Docker学习之数据管理(超详解析)
  • FDTD液晶折射率各项异性表示方法
  • RoketMQ主从搭建
  • Linux网络瑞士军刀 nc(netcat)
  • 1.Spring入门
  • 【JavaEE Spring 项目】消息队列的设计
  • SpringFramework学习笔记(Spring IoC,aop,tx)
  • 口腔管理平台 |基于springboot框架+ Mysql+Java+B/S结构的口腔管理平台 设计与实现(可运行源码+数据库+lw文档)
  • 【设计模式】Java 设计模式之工厂模式(Factory Pattern)
  • 安卓UI面试题 36-40
  • Java有哪些常用的集合?
  • 虚拟机网络链接
  • 代码随想录阅读笔记-字符串【反转字符串】
  • 4. Linux文件属性和目录系列
  • Linux第78步_使用原子整型操作来实现“互斥访问”共享资源
  • C++——C++11(3)
  • 更改el-tabs默认样式,实现tab标签居中显示,标签对应内容使用另一个div显示
  • 微信小程序原生<map>地图实现标记多个位置以及map 组件 callout 自定义气泡
  • 外包干了3天,技术明显进步。。。。。
  • Transformer学习笔记(二)