一个简单的通讯录管理系统的C语言实现如下:
```c
#include
#include
#define MAX_NAME_LENGTH 20
#define MAX_NUM_OF_PERSONS 100
typedef struct {
char name[MAX_NAME_LENGTH];
int number;
} Person;
void addPerson(Person *persons, int index);
void displayPersons(Person *persons, int index);
void deletePerson(Person *persons, int index);
void updatePerson(Person *persons, int index);
int main() {
Person persons[MAX_NUM_OF_PERSONS];
int index = 0;
while (1) {
printf("请选择操作:n");
printf("1. 添加人员n");
printf("2. 显示所有人员n");
printf("3. 删除人员n");
printf("4. 更新人员信息n");
printf("5. 退出系统n");
printf("请输入操作序号:");
scanf("%d", &index);
switch (index) {
case 1:
addPerson(persons, index);
break;
case 2:
displayPersons(persons, index);
break;
case 3:
deletePerson(persons, index);
break;
case 4:
updatePerson(persons, index);
break;
case 5:
return 0;
default:
printf("无效的操作序号!n");
}
}
return 0;
}
void addPerson(Person *persons, int index) {
printf("请输入要添加的人员姓名:");
scanf("%s", persons[index].name);
printf("请输入要添加的人员电话号码:");
scanf("%d", &persons[index].number);
}
void displayPersons(Person *persons, int index) {
for (int i = 0; i < index + 1; i++) {
printf("姓名:%s,电话:%dn", persons[i].name, persons[i].number);
}
}
void deletePerson(Person *persons, int index) {
printf("请输入要删除的人员序号:");
scanf("%d", &index);
if (index >= 0 && index < index + 1) {
for (int i = index; i < index + 1; i++) {
persons[i] = persons[i + 1];
}
index--;
} else {
printf("无效的序号!n");
}
}
void updatePerson(Person *persons, int index) {
printf("请输入要更新的人员序号:");
scanf("%d", &index);
if (index >= 0 && index < index + 1) {
printf("请重新输入要更新的人员姓名:");
scanf("%s", persons[index].name);
printf("请重新输入要更新的人员电话号码:");
scanf("%d", &persons[index].number);
} else {
printf("无效的序号!n");
}
}
```
这个简单的通讯录管理系统实现了添加、显示、删除和更新人员信息的功能。用户可以通过菜单选择相应的操作,然后根据提示输入相应的信息。程序会将新添加或更新的信息存储在`Person`结构体数组中,并按照序号排序。