问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java个人通讯录管理系统

发布网友 发布时间:2022-04-23 10:07

我来回答

3个回答

热心网友 时间:2023-10-10 20:35

import java.util.Arrays;

public class AddressBook
{
private int totalContacts; // 现在通讯录中的总数

private int maxContacts; // 通讯录的最大值

private Contact[] contacts; // 通讯录的array

/**
* Constructor. 设定这个通讯录最初的大小为10人上限.
*/
public AddressBook()
{
totalContacts = 0;
maxContacts = 10;
contacts = new Contact[totalContacts];
}

/**
* 得到一个联系通过通讯录中的名字
*
* @param name
* 要去得到的联系人名字
* @return 这个联系人, 没有的话为null
*/
public Contact getContactByName(String name)
{
for(int i = 0; i < totalContacts; i++)
{
Contact c = contacts[i];
if(name.equals(c.getName()))
{
return c;
}
}
return null;
}

/**
* 在这个contacts array的最后给这个通讯录添加联系人.
* 如果联系人已经存在且号码参数不为0的话,联系人的号码会更新或者地址参数不是null的话,地址会更新。.
* 如果totalContacts达到maxContacts的值的话,在新的联系人被添加前,这个contacts
* array的size会乘以双倍并且maxContacts也乘以双倍。
*
* @param contact
* 要加到这个通讯录的联系人
* @return true 如果这个联系人添加成功, 否则 false;
*/
public boolean addContact(Contact contact)
{
for(int i = 0; i < contacts.length; i++)
{
Contact ct = contacts[i];
if(ct.equals(contact))
{
if(ct.getNumber() != 0)
{
ct.setNumber(contact.getNumber());
}
if(null != ct.getAddress())
{
ct.setAddress(contact.getAddress());
}
return true;
}
}
if(totalContacts == maxContacts)
{
totalContacts *= 2;
maxContacts *= 2;
}
Contact[] cs = new Contact[totalContacts + 1];
System.arraycopy(contacts, 0, cs, 0, totalContacts);
cs[cs.length - 1] = contact;
contacts = cs;
totalContacts++;
return true;
}

/**
* 检查是否联系人已经存在
*
* @param contact
* 要去检查的contact
* @return true 如果这个联系人被找到,否则false
*/
public boolean contains(Contact contact)
{
for(int i = 0; i < totalContacts; i++)
{
if(contacts[i].equals(contact))
{
return true;
}
}
return false;
}

public void printAddressBook()
{
for(int i = 0; i < totalContacts; i++)
{
System.out.println(contacts[i]);
}
}

/**
* 在AddressBook中还有一个方法!
* 从通讯录中移除一个指定的联系人,之后把其他的入口左移,这样在联系人间就没有空隙了,
* For example:
* before -> {C1, C2, C3, C4, C5, C6, C7, C8, C9, null} remove C6
* after -> {C1, C2, C3, C4, C5, C7, C8, C9, null, null}
*
* @param contact
* 要移除的联系人,
* @return true 如果这个联系人被成功移除了,否则false;
*/
public boolean removeContact(Contact contact)
{
if(totalContacts == 0)
{
return false;
}
for(int i = 0; i < totalContacts; i++)
{
Contact ct = contacts[i];
if(ct.equals(contact))
{
Contact[] cs = new Contact[totalContacts];
System.arraycopy(contacts, 0, cs, 0, i);
System.arraycopy(contacts, i + 1, cs, i, cs.length - i - 1);
contacts = cs;
totalContacts--;
return true;
}
}
return false;
}

@Override
public String toString()
{
return String.format("AddressBook [totalContacts=%s, maxContacts=%s, contacts=%s]", totalContacts, maxContacts,
Arrays.toString(contacts));
}
}

//--------------------------------------------------

public class Contact
{
private String name;

private long number;

private String address;

public String getName()
{
return name;
}

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

public long getNumber()
{
return number;
}

public void setNumber(long number)
{
this.number = number;
}

public String getAddress()
{
return address;
}

public void setAddress(String address)
{
this.address = address;
}

@Override
public boolean equals(Object obj)
{
if(!(obj instanceof Contact))
{
return false;
}
Contact contact = (Contact) obj;
if(this.getName().equals(contact.getName())
&&
this.getAddress().equals(contact.getAddress())
&&
this.getNumber() == contact.getNumber())
{
return true;
}
return false;
}

@Override
public String toString()
{
return String.format("Contact [name=%s, number=%s, address=%s]", name, number, address);
}
}

//---------------------------------------------

public class Test
{
public static void main(String[] args)
{
AddressBook ab = new AddressBook();
for(int i = 0; i < 10; i++)
{
Contact contact = new Contact();
int x = i + 1;
contact.setName("C" + x);
contact.setAddress("china");
contact.setNumber(x);
ab.addContact(contact);
}
System.out.println(ab);
Contact c = new Contact();
c.setName("C6");
c.setAddress("china");
c.setNumber(6);
ab.removeContact(c);
System.out.println(ab);
}
}

热心网友 时间:2023-10-10 20:36

额,java web飘过,so easy,但是界面不会友好,估计也不是想要web系统

热心网友 时间:2023-10-10 20:36

想太多了....
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
蓝藻是植物吗 养殖蓝藻的方法 一建压题机构哪个好 一级建造师押题准吗?哪家机构押题准点? 千千静听怎么保存不了LRC歌词文件啦? 太平猴魁保质期有多久(太平猴魁茶保质期多长时间) 绿茶太平猴魁茶叶保质期是多长时间 太平猴魁茶叶有保质期吗 会计专业毕业后是什么学位 会计专业什么学士 会计毕业什么学士学位 求! 用JAVA编写一个通讯录,只要有最基本的添加、查找就可以 用java编写通讯录的方法 不需要 窗口输入输出的 JAVA 通讯录 用java 开发出一个简单的android通讯录的思路是什么? Java编写一个简单的通讯录 java通讯录管理 ipad里只有一个home键吗?没有返回键等那些键吗? js或java代码导出手机通讯录信息 没有Home键的苹果平板是不是ipadpro? java通讯录的简单程序 java通讯录小程序,代码, IPAD没有home键,卡屏了怎么办? JAVA通讯录 求一个JAVA编写的通讯录,基本的就可以。 Java如何实现手机通讯录“添加”联系人电话、姓名、功能 java通讯录全部代码! ipad桌面快捷键怎么设置啊?新系统 ipad已经更新到iOS14,然后长按桌面添加小组件,但是为什么主屏幕左上角没有“? 苹果ipad里的设置键没了,怎么办 端午节祝福? BOSE qc35怎么连接电脑? 求助java通讯录代码,,要求具备添加,删除,修改,查看和退出通讯录信息的功能. 输入3位数字 在通讯录中找到跟前3位数字相匹配的手机号码,用java怎么写代码? 接收数据MD5效验失败是什么意思? java系统的手机如何将通讯录里导出? java 电子通讯录的载入和保存代码 为什么我的电脑在tgp下载的地下城与勇士 下载好 安装的时候会显示安装包MD5校验失败 错误码: java手机通讯录怎么备份,最好可以备份到电脑或网络上 java 实现简单通讯录 安装地下城失败,什么情况 安卓机怎么样跟JAVA无系统手机互相导入导出通讯录啊 地下城与勇士登陆游戏出md5怎么解决 地下城与勇士下载为什么安装不了 dnf安装失败 dnf更新 出现更新包MD5校验失败,请手动更新 这是怎么了 我的DNF更新包MD5校验失败,卸了重下很多次 把所有安全设置都关了也没用,包括系统自带的,网络防 DNF安装失败错误代码7001263(7002263) 送三岁小男孩什么礼物好 给三岁小男孩买什么礼物最好? 孩子三岁了,适合给他买什么样的玩具呢? 三岁小孩送什么礼物比较好?