要求可以添加联系人,删除联系人,查找联系人,还有姓名,电话号码,类别,电子邮件
时间: 2023-03-26 12:00:34 浏览: 101
好的,我可以回答这个问题。对于添加联系人、删除联系人和查找联系人,您可以使用一个通讯录程序来实现。在通讯录中,每个联系人都应该有姓名、电话号码、类别和电子邮件等信息。您可以使用 C 语言来编写这个程序,使用结构体来表示每个联系人的信息,并使用文件来保存通讯录数据。在程序中,您可以使用各种函数来实现添加、删除和查找联系人的功能,例如 fopen、fclose、fread、fwrite、fgets、fputs、strcmp 等等。
相关问题
添加联系人信息 删除联系人信息 修改联系人信息 查找联系人信息 显示所有联系人信息
好的,针对你提到的功能,我可以给你提供一些思路和代码示例:
1. 添加联系人信息
可以定义一个结构体来存储联系人信息,结构体中包含姓名、电话、邮箱等信息。然后使用链表来存储多个联系人的信息,每次添加联系人时,创建一个新的节点,将联系人信息存储在节点中,然后将该节点插入到链表中即可。
这里是添加联系人信息的示例代码:
```c
typedef struct Contact {
char name[20];
char phone[20];
char email[30];
struct Contact *next;
} Contact;
Contact *head = NULL; // 链表头节点
void addContact() {
Contact *newContact = (Contact *)malloc(sizeof(Contact));
printf("请输入姓名:");
scanf("%s", newContact->name);
printf("请输入电话:");
scanf("%s", newContact->phone);
printf("请输入邮箱:");
scanf("%s", newContact->email);
newContact->next = NULL;
if (head == NULL) {
head = newContact;
} else {
Contact *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newContact;
}
printf("添加联系人成功!\n");
}
```
2. 删除联系人信息
删除联系人时,需要先查询该联系人是否存在,如果存在则删除该联系人节点,否则提示该联系人不存在。
这里是删除联系人信息的示例代码:
```c
void deleteContact() {
char name[20];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
if (head == NULL) {
printf("通讯录为空,无法删除联系人!\n");
return;
}
if (strcmp(head->name, name) == 0) {
Contact *temp = head;
head = head->next;
free(temp);
printf("删除联系人成功!\n");
return;
}
Contact *p = head;
while (p->next != NULL) {
if (strcmp(p->next->name, name) == 0) {
Contact *temp = p->next;
p->next = temp->next;
free(temp);
printf("删除联系人成功!\n");
return;
}
p = p->next;
}
printf("该联系人不存在,无法删除!\n");
}
```
3. 修改联系人信息
修改联系人信息时,需要先查询该联系人是否存在,如果存在则修改联系人信息,否则提示该联系人不存在。
这里是修改联系人信息的示例代码:
```c
void editContact() {
char name[20];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
Contact *p = head;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
printf("请输入新的电话:");
scanf("%s", p->phone);
printf("请输入新的邮箱:");
scanf("%s", p->email);
printf("修改联系人信息成功!\n");
return;
}
p = p->next;
}
printf("该联系人不存在,无法修改!\n");
}
```
4. 查找联系人信息
查找联系人信息时,可以根据姓名、电话、邮箱等信息进行查找。如果找到符合条件的联系人,则输出该联系人的详细信息,否则提示查无此人。
这里是查找联系人信息的示例代码:
```c
void searchContact() {
char keyword[20];
printf("请输入要查找的关键词:");
scanf("%s", keyword);
Contact *p = head;
int count = 0;
while (p != NULL) {
if (strstr(p->name, keyword) != NULL || strstr(p->phone, keyword) != NULL || strstr(p->email, keyword) != NULL) {
printf("姓名:%s\t电话:%s\t邮箱:%s\n", p->name, p->phone, p->email);
count++;
}
p = p->next;
}
if (count == 0) {
printf("查无此人!\n");
}
}
```
5. 显示所有联系人信息
显示所有联系人信息时,只需遍历整个链表,输出每个联系人的详细信息即可。
这里是显示所有联系人信息的示例代码:
```c
void displayAllContacts() {
Contact *p = head;
while (p != NULL) {
printf("姓名:%s\t电话:%s\t邮箱:%s\n", p->name, p->phone, p->email);
p = p->next;
}
}
```
以上是C语言通讯录管理系统的一些实现思路和代码示例,希望能对你有所帮助。
python 定义一个电话本,根据人名查找联系人
好的,以下是一个简单的 Python 代码示例,可以实现根据人名查找联系人的功能:
```python
# 定义电话本
phone_book = {
"张三": "123456789",
"李四": "987654321",
"王五": "111222333",
"赵六": "444555666"
}
# 根据人名查找联系人
def find_contact(name):
if name in phone_book:
return phone_book[name]
else:
return "未找到该联系人"
# 测试
print(find_contact("张三")) # 输出:123456789
print(find_contact("小明")) # 输出:未找到该联系人
```
在这个示例中,我们首先定义了一个字典类型的电话本,其中键为人名,值为电话号码。然后定义了一个函数 `find_contact`,接受一个参数 `name`,返回该联系人的电话号码(如果找到)或者提示未找到该联系人。最后进行了简单的测试。