用c语言写一个通讯录管理系统,要求:添加,删除,修改,查找,备份
时间: 2023-10-11 13:08:15 浏览: 110
以下是用C语言实现的通讯录管理系统的示例代码,包括添加、删除、修改、查找和备份功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100 // 最大联系人数量
#define MAX_NAME_LEN 20 // 最大姓名长度
#define MAX_PHONE_LEN 15 // 最大手机号码长度
// 定义联系人结构体
typedef struct {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
} Contact;
// 定义通讯录结构体
typedef struct {
Contact contacts[MAX_CONTACTS];
int count; // 当前联系人数量
} AddressBook;
// 初始化通讯录
void init(AddressBook *book) {
book->count = 0;
}
// 添加联系人
void addContact(AddressBook *book) {
if (book->count >= MAX_CONTACTS) {
printf("通讯录已满,无法添加新的联系人!\n");
return;
}
Contact *contact = &book->contacts[book->count];
printf("请输入联系人姓名:");
scanf("%s", contact->name);
printf("请输入联系人手机号码:");
scanf("%s", contact->phone);
printf("联系人添加成功!\n");
book->count++;
}
// 删除联系人
void deleteContact(AddressBook *book) {
char name[MAX_NAME_LEN];
int i, j;
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
for (i = 0; i < book->count; i++) {
Contact *contact = &book->contacts[i];
if (strcmp(contact->name, name) == 0) {
for (j = i; j < book->count - 1; j++) {
book->contacts[j] = book->contacts[j + 1];
}
book->count--;
printf("联系人删除成功!\n");
return;
}
}
printf("未找到指定联系人!\n");
}
// 修改联系人
void modifyContact(AddressBook *book) {
char name[MAX_NAME_LEN];
int i;
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
for (i = 0; i < book->count; i++) {
Contact *contact = &book->contacts[i];
if (strcmp(contact->name, name) == 0) {
printf("请输入新的手机号码:");
scanf("%s", contact->phone);
printf("联系人修改成功!\n");
return;
}
}
printf("未找到指定联系人!\n");
}
// 查找联系人
void searchContact(AddressBook *book) {
char name[MAX_NAME_LEN];
int i;
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
for (i = 0; i < book->count; i++) {
Contact *contact = &book->contacts[i];
if (strcmp(contact->name, name) == 0) {
printf("联系人信息如下:\n");
printf("姓名:%s\n", contact->name);
printf("手机号码:%s\n", contact->phone);
return;
}
}
printf("未找到指定联系人!\n");
}
// 备份通讯录
void backup(AddressBook *book) {
FILE *file = fopen("address_book.txt", "w");
if (file == NULL) {
printf("无法创建备份文件!\n");
return;
}
int i;
for (i = 0; i < book->count; i++) {
Contact *contact = &book->contacts[i];
fprintf(file, "%s %s\n", contact->name, contact->phone);
}
fclose(file);
printf("通讯录备份成功!\n");
}
int main() {
AddressBook book;
init(&book);
int choice;
while (1) {
printf("通讯录管理系统\n");
printf("1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 修改联系人\n");
printf("4. 查找联系人\n");
printf("5. 备份通讯录\n");
printf("6. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact(&book);
break;
case 2:
deleteContact(&book);
break;
case 3:
modifyContact(&book);
break;
case 4:
searchContact(&book);
break;
case 5:
backup(&book);
break;
case 6:
printf("感谢使用通讯录管理系统!\n");
exit(0);
default:
printf("无效的操作,请重新选择!\n");
break;
}
}
return 0;
}
```
该程序使用一个结构体来存储联系人信息,另一个结构体来存储整个通讯录。添加、删除、修改和查找联系人都是通过遍历通讯录中的联系人来实现的。备份功能将通讯录的内容写入一个文本文件中。
阅读全文