利用结构体实现手机里的“联系人”的功能,要求能存储并能通过姓名或电话查找某个人的详细信息。
时间: 2023-09-24 20:05:36 浏览: 115
### 回答1:
可以通过定义一个结构体来实现手机联系人的功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100
typedef struct {
char name[50];
char phone[20];
char email[50];
} Contact;
Contact contacts[MAX_CONTACTS];
int numContacts = 0;
void addContact() {
if (numContacts == MAX_CONTACTS) {
printf("Contact list is full.\n");
return;
}
Contact newContact;
printf("Enter name: ");
scanf("%s", newContact.name);
printf("Enter phone number: ");
scanf("%s", newContact.phone);
printf("Enter email: ");
scanf("%s", newContact.email);
contacts[numContacts++] = newContact;
printf("Contact added successfully.\n");
}
void searchByName() {
char name[50];
printf("Enter name to search: ");
scanf("%s", name);
int found = 0;
for (int i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("Name: %s\nPhone: %s\nEmail: %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
found = 1;
break;
}
}
if (!found) {
printf("No contact found with that name.\n");
}
}
void searchByPhone() {
char phone[20];
printf("Enter phone number to search: ");
scanf("%s", phone);
int found = 0;
for (int i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].phone, phone) == 0) {
printf("Name: %s\nPhone: %s\nEmail: %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
found = 1;
break;
}
}
if (!found) {
printf("No contact found with that phone number.\n");
}
}
int main() {
while (1) {
printf("1. Add contact\n");
printf("2. Search by name\n");
printf("3. Search by phone number\n");
printf("4. Exit\n");
printf("Enter your choice: ");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
addContact();
break;
case 2:
searchByName();
break;
case 3:
searchByPhone();
break;
case 4:
return 0;
default:
printf("Invalid choice.\n");
}
}
}
```
在这个代码中,我们定义了一个`Contact`结构体,它包含一个姓名、一个电话号码和一个电子邮件地址。我们定义了一个数组`contacts`来存储所有联系人,并且使用一个整数`numContacts`来追踪当前联系人数量。
我们实现了三个函数:`addContact`用于添加新联系人,`searchByName`用于通过姓名查找联系人,`searchByPhone`用于通过电话号码查找联系人。在`addContact`函数中,我们首先检查数组是否已满,然后提示用户输入新联系人的姓名、电话号码和电子邮件地址。在`searchByName`和`searchByPhone`函数中,我们提示用户输入要搜索的姓名或电话号码,并在数组中查找匹配项。如果找到了匹配项,我们将联系人详细信息打印到屏幕上。
在`main`函数中,我们使用一个无限循环来不断提示用户选择要执行的操作。我们使用一个`switch`语句来调用相应的函数。如果用户输入了无效的选项,我们会打印一条错误消息。
### 回答2:
利用结构体可以实现手机中的“联系人”功能。首先可以定义一个结构体Contact,包含姓名name、电话号码phone和其他详细信息info等成员变量。然后可以利用数组或链表等数据结构来存储多个Contact结构体,即联系人列表。
当要存储新的联系人信息时,可以通过用户输入获取姓名、电话和其他详细信息,并将这些信息存储在一个新的Contact结构体中。然后将该结构体加入到联系人列表中。
当需要通过姓名或电话查找某个人的详细信息时,可以遍历联系人列表,逐个比对每个Contact结构体的姓名或电话成员变量,找到匹配的联系人后,可以输出其详细信息。
例如,要通过姓名查找某人的详细信息,可以输入目标姓名,然后遍历联系人列表,逐个比对姓名成员变量,找到匹配后输出该联系人的电话和其他详细信息。
同样地,要通过电话查找某人的详细信息,可以输入目标电话,然后遍历联系人列表,逐个比对电话成员变量,找到匹配后输出该联系人的姓名和其他详细信息。
通过以上方法,利用结构体可以实现手机中“联系人”的功能,能够存储并能通过姓名或电话查找某个人的详细信息。
### 回答3:
利用结构体可以很方便地实现手机里的“联系人”的功能。我们可以创建一个名为“联系人”的结构体,其中包含姓名、电话和详细信息等字段。通过使用该结构体的数组来存储多个联系人的信息。
首先,我们定义一个常量来表示数组的最大长度,以限制联系人的数量。然后,声明一个结构体数组,每个数组元素都是一个联系人结构体对象,即每个数组元素都可以存储一个联系人的信息。
当用户添加一个新联系人时,我们首先判断当前联系人数量是否已经达到最大限制。如果尚未达到最大限制,我们询问用户的姓名和电话,并将这些信息存储到一个新的联系人结构体对象中。然后,将该对象添加到结构体数组中,将当前联系人数量加1。
用户可以通过姓名或电话查找某个人的详细信息。为了实现这个功能,我们需要遍历结构体数组,并通过比较输入的姓名或电话与联系人结构体对象中对应字段的值来查找匹配的联系人。如果找到匹配的联系人,我们将其详细信息显示给用户。
在存储和查找联系人的过程中,我们可以使用循环结构和条件语句来实现遍历和匹配操作。利用结构体的特性,我们可以把联系人的相关信息封装到一个结构体对象中,方便地进行存储和管理。
总之,通过利用结构体实现手机里的“联系人”的功能,我们可以很方便地存储联系人的信息,并通过姓名或电话查找某个人的详细信息。这样可以提高手机的使用便捷性和用户体验。
阅读全文