设计并实现一个管理电话簿的管理系统,数据信息文本文件存储,也可以采 用数据库存储。 3.2基本要求 以联系人为单位,管理联系人姓名、单位名称、移动电话、固定电话、办公 电话、分组等信息。 提供便利的查询功能,输入联系人名称或单位名称或分组信息,能查找出相 应联系人的联络信息。 根据功能要求,设计数据结构和界面,完成程序设计。,请用java实现
时间: 2024-03-25 20:35:35 浏览: 68
好的,我会尽力回答你的问题。
首先,我们需要定义联系人的基本信息,包括姓名、单位名称、移动电话、固定电话、办公电话、分组。我们可以创建一个 Contact 类来表示联系人,如下所示:
```java
public class Contact {
private String name; // 姓名
private String company; // 单位名称
private String mobilePhone; // 移动电话
private String homePhone; // 固定电话
private String workPhone; // 办公电话
private String group; // 分组
// 构造函数
public Contact(String name, String company, String mobilePhone, String homePhone, String workPhone, String group) {
this.name = name;
this.company = company;
this.mobilePhone = mobilePhone;
this.homePhone = homePhone;
this.workPhone = workPhone;
this.group = group;
}
// 获取联系人信息
public String getName() {
return name;
}
public String getCompany() {
return company;
}
public String getMobilePhone() {
return mobilePhone;
}
public String getHomePhone() {
return homePhone;
}
public String getWorkPhone() {
return workPhone;
}
public String getGroup() {
return group;
}
// 设置联系人信息
public void setName(String name) {
this.name = name;
}
public void setCompany(String company) {
this.company = company;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
public void setHomePhone(String homePhone) {
this.homePhone = homePhone;
}
public void setWorkPhone(String workPhone) {
this.workPhone = workPhone;
}
public void setGroup(String group) {
this.group = group;
}
}
```
接下来,我们需要实现一个管理系统来进行联系人的添加、删除、修改和查询等操作。我们可以创建一个 ContactManager 类来实现这些功能,如下所示:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class ContactManager {
private List<Contact> contactList; // 联系人列表
// 构造函数
public ContactManager() {
contactList = new ArrayList<>();
}
// 添加联系人
public void addContact(Contact contact) {
contactList.add(contact);
}
// 删除联系人
public void deleteContact(String name) {
for (Contact contact : contactList) {
if (contact.getName().equals(name)) {
contactList.remove(contact);
break;
}
}
}
// 修改联系人
public void modifyContact(String name, Contact newContact) {
for (int i = 0; i < contactList.size(); i++) {
if (contactList.get(i).getName().equals(name)) {
contactList.set(i, newContact);
break;
}
}
}
// 查询联系人
public List<Contact> searchContact(String keyword) {
List<Contact> result = new ArrayList<>();
for (Contact contact : contactList) {
if (contact.getName().contains(keyword) || contact.getCompany().contains(keyword) || contact.getGroup().contains(keyword)) {
result.add(contact);
}
}
return result;
}
// 保存联系人列表到文件
public void saveToFile(String filename) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
for (Contact contact : contactList) {
writer.write(contact.getName() + "," + contact.getCompany() + "," + contact.getMobilePhone() + "," + contact.getHomePhone() + "," + contact.getWorkPhone() + "," + contact.getGroup() + "\n");
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 从文件加载联系人列表
public void loadFromFile(String filename) {
try {
BufferedReader reader = new BufferedReader(new FileReader(filename));
String line;
while ((line = reader.readLine()) != null) {
String[] fields = line.split(",");
Contact contact = new Contact(fields[0], fields[1], fields[2], fields[3], fields[4], fields[5]);
contactList.add(contact);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
最后,我们需要实现一个用户界面来让用户进行操作。我们可以创建一个 ContactUI 类来实现这个界面,如下所示:
```java
import java.util.List;
import java.util.Scanner;
public class ContactUI {
private ContactManager contactManager; // 联系人管理器
// 构造函数
public ContactUI() {
contactManager = new ContactManager();
}
// 运行用户界面
public void run() {
Scanner scanner = new Scanner(System.in);
while (true) {
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("7. 退出程序");
int choice = scanner.nextInt();
switch (choice) {
case 1:
addContact();
break;
case 2:
deleteContact();
break;
case 3:
modifyContact();
break;
case 4:
searchContact();
break;
case 5:
saveToFile();
break;
case 6:
loadFromFile();
break;
case 7:
return;
default:
System.out.println("无效操作!");
break;
}
}
}
// 添加联系人
private void addContact() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入联系人姓名:");
String name = scanner.nextLine();
System.out.println("请输入联系人单位名称:");
String company = scanner.nextLine();
System.out.println("请输入联系人移动电话:");
String mobilePhone = scanner.nextLine();
System.out.println("请输入联系人固定电话:");
String homePhone = scanner.nextLine();
System.out.println("请输入联系人办公电话:");
String workPhone = scanner.nextLine();
System.out.println("请输入联系人分组:");
String group = scanner.nextLine();
Contact contact = new Contact(name, company, mobilePhone, homePhone, workPhone, group);
contactManager.addContact(contact);
System.out.println("联系人添加成功!");
}
// 删除联系人
private void deleteContact() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入联系人姓名:");
String name = scanner.nextLine();
contactManager.deleteContact(name);
System.out.println("联系人删除成功!");
}
// 修改联系人
private void modifyContact() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入联系人姓名:");
String name = scanner.nextLine();
System.out.println("请输入联系人单位名称:");
String company = scanner.nextLine();
System.out.println("请输入联系人移动电话:");
String mobilePhone = scanner.nextLine();
System.out.println("请输入联系人固定电话:");
String homePhone = scanner.nextLine();
System.out.println("请输入联系人办公电话:");
String workPhone = scanner.nextLine();
System.out.println("请输入联系人分组:");
String group = scanner.nextLine();
Contact newContact = new Contact(name, company, mobilePhone, homePhone, workPhone, group);
contactManager.modifyContact(name, newContact);
System.out.println("联系人修改成功!");
}
// 查询联系人
private void searchContact() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入查询关键字:");
String keyword = scanner.nextLine();
List<Contact> result = contactManager.searchContact(keyword);
if (result.size() == 0) {
System.out.println("没有找到符合条件的联系人!");
} else {
System.out.println("找到以下联系人:");
for (Contact contact : result) {
System.out.println(contact.getName() + "\t" + contact.getCompany() + "\t" + contact.getMobilePhone() + "\t" + contact.getHomePhone() + "\t" + contact.getWorkPhone() + "\t" + contact.getGroup());
}
}
}
// 保存联系人列表到文件
private void saveToFile() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入文件名:");
String filename = scanner.nextLine();
contactManager.saveToFile(filename);
System.out.println("联系人列表保存成功!");
}
// 从文件加载联系人列表
private void loadFromFile() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入文件名:");
String filename = scanner.nextLine();
contactManager.loadFromFile(filename);
System.out.println("联系人列表加载成功!");
}
}
```
现在,我们可以在主函数中创建一个 ContactUI 对象并调用它的 run() 方法来运行程序,如下所示:
```java
public class Main {
public static void main(String[] args) {
ContactUI contactUI = new ContactUI();
contactUI.run();
}
}
```
这样,我们就完成了一个管理电话簿的管理系统的设计和实现。
阅读全文