java6. 完成一个通讯录,要求实现如下功能: (1)添加联系人(联系人:编号,姓名,手机号,QQ,邮箱地址)添加时需要检查手机号和邮箱地址格式是否正确,若不正确,不允许添加 (2)联系人查询(输入姓名或电话查询) (3)显示联系人列表 (4)根据编号删除指定编号的联系人
时间: 2024-04-16 21:25:39 浏览: 19
你可以按照以下的步骤来完成通讯录的功能:
1. 创建一个Contact类,用于存储联系人的信息,包括编号、姓名、手机号、QQ和邮箱地址。确保提供相应的构造方法和获取信息的方法。
2. 创建一个AddressBook类,用于管理联系人信息。该类应包含以下方法:
- 添加联系人:实现一个addContact方法,接受联系人的信息作为参数。在添加联系人之前,需要检查手机号和邮箱地址的格式是否正确,可以使用正则表达式进行验证。如果格式不正确,不允许添加联系人。
- 联系人查询:实现一个searchContact方法,接受一个字符串参数(姓名或电话),并返回匹配到的联系人列表。
- 显示联系人列表:实现一个displayContacts方法,用于打印所有联系人的信息。
- 删除联系人:实现一个deleteContact方法,接受联系人的编号作为参数,并删除对应编号的联系人。
3. 在主函数中,创建一个AddressBook对象,并利用菜单选项与用户进行交互。可以使用Scanner类来获取用户输入的选项和相关信息,然后调用AddressBook对象的相应方法来执行对应功能。
这样,你就可以实现一个简单的通讯录程序,具备添加联系人、查询联系人、显示联系人列表和删除联系人的功能了。记得在输入手机号和邮箱地址时进行格式验证,确保符合要求。
相关问题
用c++实现下面问题:本项目主要结合教材所学知识开发一个个人版通讯录,要求通讯录可以实现以下功能:1添加联系人2删除联系人3查找联系人4联系人列表5通讯录存盘6读出通讯录退出
好的,下面是一个简单的 C++ 实现:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
struct Contact {
string name;
string phone;
};
// 添加联系人
void add_contact(vector<Contact>& contacts) {
Contact c;
cout << "姓名:";
cin >> c.name;
cout << "电话:";
cin >> c.phone;
contacts.push_back(c);
cout << "联系人已添加!" << endl;
}
// 删除联系人
void delete_contact(vector<Contact>& contacts) {
string name;
cout << "请输入要删除的联系人姓名:";
cin >> name;
for (auto it = contacts.begin(); it != contacts.end(); ++it) {
if (it->name == name) {
contacts.erase(it);
cout << "联系人已删除!" << endl;
return;
}
}
cout << "联系人不存在!" << endl;
}
// 查找联系人
void find_contact(const vector<Contact>& contacts) {
string name;
cout << "请输入要查找的联系人姓名:";
cin >> name;
for (const auto& c : contacts) {
if (c.name == name) {
cout << "姓名:" << c.name << " 电话:" << c.phone << endl;
return;
}
}
cout << "联系人不存在!" << endl;
}
// 显示联系人列表
void show_contact_list(const vector<Contact>& contacts) {
if (contacts.empty()) {
cout << "通讯录为空!" << endl;
return;
}
cout << "姓名\t电话" << endl;
for (const auto& c : contacts) {
cout << c.name << "\t" << c.phone << endl;
}
}
// 存储通讯录到文件
void save_contacts(const vector<Contact>& contacts) {
ofstream out("contacts.txt");
for (const auto& c : contacts) {
out << c.name << " " << c.phone << endl;
}
cout << "通讯录已保存到文件!" << endl;
}
// 从文件读取通讯录
void load_contacts(vector<Contact>& contacts) {
contacts.clear();
ifstream in("contacts.txt");
string name, phone;
while (in >> name >> phone) {
contacts.push_back({name, phone});
}
cout << "通讯录已从文件中读取!" << endl;
}
int main() {
vector<Contact> contacts;
while (true) {
cout << "请选择操作:\n1 添加联系人\n2 删除联系人\n3 查找联系人\n4 联系人列表\n5 通讯录存盘\n6 读出通讯录\n0 退出\n";
int choice;
cin >> choice;
switch (choice) {
case 0:
return 0;
case 1:
add_contact(contacts);
break;
case 2:
delete_contact(contacts);
break;
case 3:
find_contact(contacts);
break;
case 4:
show_contact_list(contacts);
break;
case 5:
save_contacts(contacts);
break;
case 6:
load_contacts(contacts);
break;
default:
cout << "无效的操作!" << endl;
}
cout << endl;
}
}
```
注意:这只是一个简单的实现,可能还需要进行优化和完善。在实际开发中,还需要考虑更多的细节问题,比如输入的合法性、文件打开失败等等。
本项目主要结合教材所学知识开发一个个人版通讯录,要求通讯录可以实现以下功能: 添加联系人 删除联系人 查找联系人 联系人列表 通讯录存盘 读出通讯录 退出
好的,这是一个很好的练手项目,可以加深对于Python基础知识的理解和运用。你可以按照以下步骤来完成这个通讯录的开发:
1. 定义 Contact 类,该类包含联系人的姓名、电话号码和邮箱等信息。
2. 定义 AddressBook 类,该类包含添加联系人、删除联系人、查找联系人、联系人列表、通讯录存盘、读出通讯录等方法。
3. 通过文件 I/O 实现通讯录的存储和读取。
4. 使用命令行界面实现交互式操作,即用户输入命令后,程序根据用户输入的命令来执行相应的功能。
以下是示例代码,供你参考:
```python
import pickle
class Contact:
def __init__(self, name, phone_number, email):
self.name = name
self.phone_number = phone_number
self.email = email
class AddressBook:
def __init__(self):
self.contacts = []
def add_contact(self, contact):
self.contacts.append(contact)
def remove_contact(self, name):
for contact in self.contacts:
if contact.name == name:
self.contacts.remove(contact)
return True
return False
def find_contact(self, name):
for contact in self.contacts:
if contact.name == name:
return contact
return None
def get_contacts(self):
return self.contacts
def save_to_file(self, filename):
with open(filename, 'wb') as f:
pickle.dump(self.contacts, f)
def load_from_file(self, filename):
with open(filename, 'rb') as f:
self.contacts = pickle.load(f)
def main():
address_book = AddressBook()
while True:
print('请输入命令:')
print('add: 添加联系人')
print('remove: 删除联系人')
print('find: 查找联系人')
print('list: 联系人列表')
print('save: 通讯录存盘')
print('load: 读出通讯录')
print('quit: 退出')
command = input()
if command == 'add':
name = input('请输入联系人姓名: ')
phone_number = input('请输入联系人电话号码: ')
email = input('请输入联系人邮箱: ')
contact = Contact(name, phone_number, email)
address_book.add_contact(contact)
print('联系人添加成功!')
elif command == 'remove':
name = input('请输入联系人姓名: ')
if address_book.remove_contact(name):
print('联系人删除成功!')
else:
print('联系人不存在!')
elif command == 'find':
name = input('请输入联系人姓名: ')
contact = address_book.find_contact(name)
if contact:
print('联系人信息:')
print('姓名:', contact.name)
print('电话号码:', contact.phone_number)
print('邮箱:', contact.email)
else:
print('联系人不存在!')
elif command == 'list':
contacts = address_book.get_contacts()
print('联系人列表:')
for contact in contacts:
print(contact.name)
elif command == 'save':
filename = input('请输入文件名: ')
address_book.save_to_file(filename)
print('通讯录存盘成功!')
elif command == 'load':
filename = input('请输入文件名: ')
address_book.load_from_file(filename)
print('通讯录读取成功!')
elif command == 'quit':
break
if __name__ == '__main__':
main()
```
注意:在运行程序之前,需要先创建一个空文件作为通讯录存储文件,程序中默认文件名为 'address_book.dat'。