请用c语言编写出上述完整的代码
时间: 2023-12-24 16:02:17 浏览: 35
好的,下面是完整的C语言代码,包括通讯录管理程序的设计和实现。
```c
#include <stdio.h>
#include <string.h>
struct Contact {
char name[20]; // 姓名
char address[50]; // 通讯地址
char postal_code[10]; // 邮政编码
char phone_number[20]; // 联系电话
};
struct Contact contacts[100]; // 最多存储100条记录
int total_contacts = 0; // 当前通讯录中的总人数
void display_contacts() {
printf("姓名\t\t通讯地址\t\t邮政编码\t\t联系电话\n");
for (int i = 0; i < total_contacts; i++) {
printf("%s\t\t%s\t\t%s\t\t%s\n", contacts[i].name, contacts[i].address, contacts[i].postal_code, contacts[i].phone_number);
}
}
void add_contact() {
struct Contact new_contact;
printf("请输入姓名:");
scanf("%s", new_contact.name);
printf("请输入通讯地址:");
scanf("%s", new_contact.address);
printf("请输入邮政编码:");
scanf("%s", new_contact.postal_code);
printf("请输入联系电话:");
scanf("%s", new_contact.phone_number);
contacts[total_contacts] = new_contact;
total_contacts++;
printf("成功添加一条记录!\n");
}
void delete_contact() {
char name[20];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int i;
for (i = 0; i < total_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
for (int j = i; j < total_contacts - 1; j++) {
contacts[j] = contacts[j + 1];
}
total_contacts--;
printf("成功删除一条记录!\n");
return;
}
}
printf("未找到该联系人!\n");
}
void find_contact() {
char keyword[20];
printf("请输入要查找的关键字(姓名或联系电话):");
scanf("%s", keyword);
for (int i = 0; i < total_contacts; i++) {
if (strcmp(contacts[i].name, keyword) == 0 || strcmp(contacts[i].phone_number, keyword) == 0) {
printf("姓名:%s\n通讯地址:%s\n邮政编码:%s\n联系电话:%s\n", contacts[i].name, contacts[i].address, contacts[i].postal_code, contacts[i].phone_number);
return;
}
}
printf("未找到该联系人!\n");
}
int main() {
while (1) {
printf("请选择要执行的操作:\n");
printf("1. 显示通讯录的所有信息\n");
printf("2. 对通讯录进行添加\n");
printf("3. 删除已有的信息\n");
printf("4. 根据姓名或者联系电话查找记录\n");
printf("5. 退出程序\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
display_contacts();
break;
case 2:
add_contact();
break;
case 3:
delete_contact();
break;
case 4:
find_contact();
break;
case 5:
return 0;
default:
printf("无效的选择!\n");
}
}
return 0;
}
```
请注意,这段代码仅供参考,您可以根据自己的需要进行修改和优化。