通讯录管理系统C语言设计详情
时间: 2023-09-27 10:06:48 浏览: 47
通讯录管理系统是一个简单的信息管理软件,可以记录联系人的姓名、电话、地址等信息,并且可以进行添加、删除、修改、查询等操作。以下是通讯录管理系统的C语言设计详情:
1. 定义联系人结构体
```
typedef struct Person {
char name[20]; // 姓名
char phone[20]; // 电话
char address[50]; // 地址
} Person;
```
2. 定义通讯录结构体
```
#define MAX_PERSONS 100 // 最多记录100个联系人
typedef struct AddressBook {
Person persons[MAX_PERSONS]; // 联系人数组
int count; // 当前联系人数
} AddressBook;
```
3. 实现添加联系人功能
```
void addPerson(AddressBook *addressBook) {
if (addressBook->count >= MAX_PERSONS) {
printf("通讯录已满,无法添加!\n");
return;
}
Person person;
printf("请输入联系人姓名:");
scanf("%s", person.name);
printf("请输入联系人电话:");
scanf("%s", person.phone);
printf("请输入联系人地址:");
scanf("%s", person.address);
addressBook->persons[addressBook->count++] = person;
printf("添加成功!\n");
}
```
4. 实现删除联系人功能
```
void deletePerson(AddressBook *addressBook) {
char name[20];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int index = -1;
for (int i = 0; i < addressBook->count; i++) {
if (strcmp(addressBook->persons[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到要删除的联系人!\n");
return;
}
for (int i = index; i < addressBook->count - 1; i++) {
addressBook->persons[i] = addressBook->persons[i + 1];
}
addressBook->count--;
printf("删除成功!\n");
}
```
5. 实现修改联系人功能
```
void modifyPerson(AddressBook *addressBook) {
char name[20];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
int index = -1;
for (int i = 0; i < addressBook->count; i++) {
if (strcmp(addressBook->persons[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到要修改的联系人!\n");
return;
}
printf("请输入新的联系人姓名:");
scanf("%s", addressBook->persons[index].name);
printf("请输入新的联系人电话:");
scanf("%s", addressBook->persons[index].phone);
printf("请输入新的联系人地址:");
scanf("%s", addressBook->persons[index].address);
printf("修改成功!\n");
}
```
6. 实现查找联系人功能
```
void searchPerson(AddressBook *addressBook) {
char name[20];
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
int index = -1;
for (int i = 0; i < addressBook->count; i++) {
if (strcmp(addressBook->persons[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到要查找的联系人!\n");
return;
}
printf("姓名:%s\n", addressBook->persons[index].name);
printf("电话:%s\n", addressBook->persons[index].phone);
printf("地址:%s\n", addressBook->persons[index].address);
}
```
7. 实现显示所有联系人功能
```
void displayAll(AddressBook *addressBook) {
if (addressBook->count == 0) {
printf("通讯录为空!\n");
return;
}
printf("姓名\t电话\t地址\n");
for (int i = 0; i < addressBook->count; i++) {
printf("%s\t%s\t%s\n", addressBook->persons[i].name, addressBook->persons[i].phone, addressBook->persons[i].address);
}
}
```
8. 主函数
```
int main() {
AddressBook addressBook = {0};
while (1) {
printf("请选择要进行的操作:\n");
printf("1、添加联系人\n");
printf("2、删除联系人\n");
printf("3、修改联系人\n");
printf("4、查找联系人\n");
printf("5、显示所有联系人\n");
printf("6、退出通讯录\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
addPerson(&addressBook);
break;
case 2:
deletePerson(&addressBook);
break;
case 3:
modifyPerson(&addressBook);
break;
case 4:
searchPerson(&addressBook);
break;
case 5:
displayAll(&addressBook);
break;
case 6:
printf("谢谢使用!\n");
return 0;
default:
printf("输入有误,请重新选择!\n");
break;
}
}
}
```
以上就是通讯录管理系统的C语言设计详情。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)