使用顺序表定义一个通信录类,要求: >每个记录包括姓名和联系电话; >实现记录的添加、删除、修改操作; >实现查找操作(输入姓名,输出联系电话); >记录输出,输出全部记录、输出查询记录; 编写一个java测试程序,对通信录类中各方法进行测试
时间: 2024-09-15 19:11:26 浏览: 38
为了创建一个简单的顺序列表通信录类(PhoneDirectory),我们可以使用ArrayList作为底层数据结构,因为它的插入、删除和查找操作效率相对较高。以下是PhoneDirectory类的设计以及一个测试程序的概要:
```java
import java.util.ArrayList;
public class PhoneDirectory {
private ArrayList<Record> directory; // 存储联系人信息
public PhoneDirectory() {
this.directory = new ArrayList<>();
}
// 添加联系人记录
public void addContact(String name, String phoneNumber) {
Record record = new Record(name, phoneNumber);
directory.add(record);
}
// 删除联系人记录
public boolean deleteContact(String name) {
for (int i = 0; i < directory.size(); i++) {
if (directory.get(i).getName().equals(name)) {
directory.remove(i);
return true;
}
}
return false;
}
// 修改联系人电话
public boolean updateContact(String oldName, String newPhoneNumber) {
for (int i = 0; i < directory.size(); i++) {
if (directory.get(i).getName().equals(oldName)) {
directory.set(i, new Record(oldName, newPhoneNumber));
return true;
}
}
return false;
}
// 查找并返回联系电话
public String searchContact(String name) {
for (Record record : directory) {
if (record.getName().equals(name)) {
return record.getPhoneNumber();
}
}
return null; // 如果未找到则返回null
}
// 输出全部记录
public void printAllRecords() {
for (Record record : directory) {
System.out.println("姓名:" + record.getName() + ",联系电话:" + record.getPhoneNumber());
}
}
// 测试函数
public static void main(String[] args) {
PhoneDirectory phoneBook = new PhoneDirectory();
// 添加记录
phoneBook.addContact("张三", "13812345678");
phoneBook.addContact("李四", "13987654321");
// 打印所有记录
phoneBook.printAllRecords();
// 查询并打印
System.out.println(phoneBook.searchContact("张三")); // 输出:13812345678
// 修改记录并打印
phoneBook.updateContact("张三", "13888888888");
phoneBook.printAllRecords();
// 删除记录并确认
System.out.println(phoneBook.deleteContact("李四") ? "删除成功" : "未找到"); // 输出:删除成功
}
}
class Record {
private String name;
private String phoneNumber;
public Record(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
}
// 获取姓名和电话方法
public String getName() { return name; }
public String getPhoneNumber() { return phoneNumber; }
}
```
在这个例子中,`Record` 类代表单个联系人的信息,而 `PhoneDirectory` 类负责管理和操作整个通讯录。
阅读全文