c语言实现通讯录管理系统(c课程设计)
时间: 2023-06-05 18:47:19 浏览: 254
通讯录管理系统是一种常见的应用程序,可以用来管理联系人的信息,包括姓名、电话号码、地址等。在C语言中,可以使用结构体来表示联系人的信息,使用文件来保存和读取联系人的信息。下面是一个简单的通讯录管理系统的实现:
1. 定义联系人结构体
```c
typedef struct {
char name[20];
char phone[20];
char address[50];
} Contact;
```
2. 定义函数来添加、删除、修改和查询联系人信息
```c
void add_contact(Contact* contacts, int* count) {
printf("请输入联系人姓名:");
scanf("%s", contacts[*count].name);
printf("请输入联系人电话:");
scanf("%s", contacts[*count].phone);
printf("请输入联系人地址:");
scanf("%s", contacts[*count].address);
(*count)++;
}
void delete_contact(Contact* contacts, int* count) {
char name[20];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
for (int i = 0; i < *count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
for (int j = i; j < *count - 1; j++) {
contacts[j] = contacts[j + 1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("未找到该联系人!\n");
}
void modify_contact(Contact* contacts, int count) {
char name[20];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("请输入新的联系人电话:");
scanf("%s", contacts[i].phone);
printf("请输入新的联系人地址:");
scanf("%s", contacts[i].address);
printf("修改成功!\n");
return;
}
}
printf("未找到该联系人!\n");
}
void search_contact(Contact* contacts, int count) {
char name[20];
printf("请输入要查询的联系人姓名:");
scanf("%s", name);
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("姓名:%s\n", contacts[i].name);
printf("电话:%s\n", contacts[i].phone);
printf("地址:%s\n", contacts[i].address);
return;
}
}
printf("未找到该联系人!\n");
}
```
3. 定义函数来保存和读取联系人信息
```c
void save_contacts(Contact* contacts, int count) {
FILE* fp = fopen("contacts.dat", "wb");
if (fp == NULL) {
printf("保存失败!\n");
return;
}
fwrite(contacts, sizeof(Contact), count, fp);
fclose(fp);
printf("保存成功!\n");
}
void load_contacts(Contact* contacts, int* count) {
FILE* fp = fopen("contacts.dat", "rb");
if (fp == NULL) {
printf("读取失败!\n");
return;
}
*count = 0;
while (fread(&contacts[*count], sizeof(Contact), 1, fp) == 1) {
(*count)++;
}
fclose(fp);
printf("读取成功!\n");
}
```
4. 定义主函数来实现菜单和用户交互
```c
int main() {
Contact contacts[100];
int count = 0;
load_contacts(contacts, &count);
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:
add_contact(contacts, &count);
break;
case 2:
delete_contact(contacts, &count);
break;
case 3:
modify_contact(contacts, count);
break;
case 4:
search_contact(contacts, count);
break;
case 5:
save_contacts(contacts, count);
return 0;
default:
printf("无效的选择!\n");
break;
}
}
}
```
这个程序可以实现基本的通讯录管理功能,可以根据需要进行扩展和改进。
阅读全文