用C语言编写一个通信录管理程序,要求通信录中包括姓名,通信地址,邮政编码和联系电话。功能: (1)显示通信录的所有信息。 (2)程序中可以对通信录进行添加 (3)可以删除已有的信息 (4)根据姓名或者联系电话(2个都能实现),可以查找该条记录。
时间: 2023-12-19 17:07:48 浏览: 82
好的,以下是使用C语言编写的通信录管理程序,实现了添加、删除、查找和显示通信录信息等功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 50 // 定义字符串最大长度
// 定义通信录结构体
struct AddressBook {
char name[MAX_LENGTH];
char address[MAX_LENGTH];
char zipcode[MAX_LENGTH];
char phone[MAX_LENGTH];
};
// 定义全局变量,保存通信录信息
struct AddressBook address_book[100];
int count = 0; // 记录通信录中的记录数
// 显示通信录中所有信息
void display_address_book() {
if (count == 0) {
printf("通信录为空!\n");
} else {
printf("姓名\t通信地址\t邮政编码\t联系电话\n");
for (int i = 0; i < count; i++) {
printf("%s\t%s\t%s\t%s\n", address_book[i].name, address_book[i].address, address_book[i].zipcode, address_book[i].phone);
}
}
}
// 添加记录到通信录
void add_record() {
// 提示用户输入信息
printf("请输入姓名:");
scanf("%s", address_book[count].name);
printf("请输入通信地址:");
scanf("%s", address_book[count].address);
printf("请输入邮政编码:");
scanf("%s", address_book[count].zipcode);
printf("请输入联系电话:");
scanf("%s", address_book[count].phone);
printf("添加成功!\n");
count++; // 记录数加1
}
// 删除通信录中的记录
void delete_record() {
char name[MAX_LENGTH];
char phone[MAX_LENGTH];
int flag = 0; // 标记是否找到记录
// 提示用户输入要删除的记录信息
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
printf("请输入要删除的联系人电话:");
scanf("%s", phone);
// 遍历通信录查找记录
for (int i = 0; i < count; i++) {
if (strcmp(address_book[i].name, name) == 0 && strcmp(address_book[i].phone, phone) == 0) {
// 找到记录,将后面的记录向前移动一位
for (int j = i + 1; j < count; j++) {
address_book[j - 1] = address_book[j];
}
count--; // 记录数减1
printf("删除成功!\n");
flag = 1; // 找到记录
break;
}
}
if (flag == 0) {
printf("未找到该联系人!\n");
}
}
// 查找通信录中的记录
void search_record() {
char keyword[MAX_LENGTH];
int flag = 0; // 标记是否找到记录
// 提示用户输入要查找的关键词
printf("请输入要查找的关键词:");
scanf("%s", keyword);
// 遍历通信录查找记录
printf("姓名\t通信地址\t邮政编码\t联系电话\n");
for (int i = 0; i < count; i++) {
if (strstr(address_book[i].name, keyword) != NULL || strstr(address_book[i].phone, keyword) != NULL) {
printf("%s\t%s\t%s\t%s\n", address_book[i].name, address_book[i].address, address_book[i].zipcode, address_book[i].phone);
flag = 1; // 找到记录
}
}
if (flag == 0) {
printf("未找到相关记录!\n");
}
}
int main() {
int choice;
while (1) {
// 提示用户选择要进行的操作
printf("请选择要进行的操作:\n");
printf("1. 显示通信录中所有信息\n");
printf("2. 添加一条新记录\n");
printf("3. 删除一条记录\n");
printf("4. 根据姓名或联系电话查找记录\n");
printf("5. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
display_address_book();
break;
case 2:
add_record();
break;
case 3:
delete_record();
break;
case 4:
search_record();
break;
case 5:
printf("程序已退出。\n");
return 0;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
```
以上就是使用C语言编写的通信录管理程序,您可以将代码保存为一个.c文件并编译运行。