题目描述
使用链表定义一个通信录类,要求:
每个记录包括姓名和联系电话;实现记录的添加、删除、修改操作
实现查找操作(输入姓名,输出联系电话)
记录输出,输出全部记录、输出查询记录
编写一个测试程序,对通信录类中各方法进行测试
源代码
import java.util.LinkedList;
public class AddressBook {
private LinkedList<Contact> contacts;
public AddressBook() {
contacts = new LinkedList<>();
}
public void addContact(String name, String phoneNumber) {
Contact contact = new Contact(name, phoneNumber);
contacts.add(contact);
}
public void deleteContact(String name) {
for (int i = 0; i < contacts.size(); i++) {
Contact contact = contacts.get(i);
if (contact.getName().equals(name)) {
contacts.remove(i);
break;
}
}
}
public void modifyContact(String name, String newPhoneNumber) {
for (int i = 0; i < contacts.size(); i++) {
Contact contact = contacts.get(i);
if (contact.getName().equals(name)) {
contact.setPhoneNumber(newPhoneNumber);
break;
}
}
}
public String searchContact(String name) {
for (int i = 0; i < contacts.size(); i++) {
Contact contact = contacts.get(i);
if (contact.getName().equals(name)) {
return contact.getPhoneNumber();
}
}
return null;
}
public void displayAllContacts() {
System.out.println("通信录中的全部记录:");
for (int i = 0; i < contacts.size(); i++) {
Contact contact = contacts.get(i);
System.out.println("姓名:" + contact.getName());
System.out.println("联系电话:" + contact.getPhoneNumber());
System.out.println("----------------");
}
}
public void displaySearchResult(String name) {
String phoneNumber = searchContact(name);
if (phoneNumber != null) {
System.out.println("查询结果:");
System.out.println("姓名:" + name);
System.out.println("联系电话:" + phoneNumber);
} else {
System.out.println("未找到与姓名匹配的记录。");
}
}
public static void main(String[] args) {
AddressBook addressBook = new AddressBook();
addressBook.addContact("张三", "1234567890");
addressBook.addContact("李四", "9876543210");
addressBook.addContact("王五", "1357924680");
addressBook.displayAllContacts();
System.out.println("----------------");
addressBook.modifyContact("李四", "1111111111");
addressBook.displayAllContacts();
System.out.println("----------------");
addressBook.deleteContact("张三");
addressBook.displayAllContacts();
System.out.println("----------------");
addressBook.displaySearchResult("王五");
}
}
class Contact {
private String name;
private String phoneNumber;
public Contact(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
}
public String getName() {
return name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
在这个代码中,我们定义了一个AddressBook
类,使用LinkedList
作为通信录的数据结构,每个记录由Contact
对象表示,包括姓名和联系电话。
AddressBook
类提供了以下方法:
addContact
:用于添加记录。deleteContact
:用于删除记录。modifyContact
:用于修改记录。searchContact
:用于查找记录,根据姓名返回对应的联系电话。displayAllContacts
:用于输出全部记录。displaySearchResult
:用于输出查询结果,根据姓名进行查询。
在main
方法中,我们创建一个AddressBook
对象,添加了几条记录,并测试了各个方法的功能。
运行截图
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END