用c语言编写实现电话簿功能的程序
时间: 2023-03-31 20:03:43 浏览: 115
您好,我可以回答您的问题。用 C 语言编写实现电话簿功能的程序,可以使用结构体来存储联系人的信息,包括姓名、电话号码等。然后可以使用链表或数组来存储多个联系人的信息,并提供添加、删除、查找、修改等功能。具体实现可以参考相关的 C 语言教程或书籍。
相关问题
c语言中,用节线性表算法编写代码:使用单链表实现一个电话簿管理程序,电话簿中的每条记录包括姓名和电话两项。 程序实现菜单、初始化、添加、删除和显示等功能。
好的,这是一个很好的问题。以下是用C语言实现一个电话簿管理程序的示例代码,使用单链表来存储数据:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义一个结构体来存储电话簿记录
struct phonebook {
char name[50];
char phone[15];
struct phonebook *next;
};
//函数声明
void display_menu();
void initialize(struct phonebook **head);
void add_record(struct phonebook **head);
void delete_record(struct phonebook **head);
void display_record(struct phonebook *head);
//主函数
int main() {
struct phonebook *head;
int choice;
//初始化电话簿
initialize(&head);
do {
display_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
add_record(&head);
break;
case 2:
delete_record(&head);
break;
case 3:
display_record(head);
break;
case 4:
printf("退出程序\n");
break;
default:
printf("无效的选择,请重新输入\n");
break;
}
} while (choice != 4);
return 0;
}
//显示菜单
void display_menu() {
printf("电话簿管理程序\n");
printf("==================\n");
printf("1. 添加记录\n");
printf("2. 删除记录\n");
printf("3. 显示记录\n");
printf("4. 退出程序\n");
printf("==================\n");
printf("请选择:\n");
}
//初始化电话簿
void initialize(struct phonebook **head) {
*head = NULL;
}
//添加记录
void add_record(struct phonebook **head) {
struct phonebook *temp, *current;
//分配内存
temp = (struct phonebook *) malloc(sizeof(struct phonebook));
if (temp == NULL) {
printf("内存分配失败\n");
return;
}
//获取姓名和电话
printf("请输入姓名:");
scanf("%s", temp->name);
printf("请输入电话:");
scanf("%s", temp->phone);
//添加到链表中
if (*head == NULL) {
*head = temp;
temp->next = NULL;
} else {
current = *head;
while (current->next != NULL)
current = current->next;
current->next = temp;
temp->next = NULL;
}
printf("添加成功\n");
}
//删除记录
void delete_record(struct phonebook **head) {
struct phonebook *current, *previous;
char name[50];
int found = 0;
//获取要删除的姓名
printf("请输入要删除的姓名:");
scanf("%s", name);
//遍历链表找到该记录
current = *head;
previous = NULL;
while (current != NULL) {
if (strcmp(current->name, name) == 0) {
found = 1;
break;
}
previous = current;
current = current->next;
}
//删除记录
if (found) {
if (previous == NULL)
*head = current->next;
else
previous->next = current->next;
free(current);
printf("删除成功\n");
} else {
printf("未找到该记录\n");
}
}
//显示记录
void display_record(struct phonebook *head) {
struct phonebook *current;
printf("==================\n");
printf("姓名\t电话\n");
printf("==================\n");
//遍历链表输出记录
current = head;
while (current != NULL) {
printf("%s\t%s\n", current->name, current->phone);
current = current->next;
}
printf("==================\n");
}
//讲一个笑话
void tell_joke() {
printf("为什么程序员总是喜欢用黑色背景?因为黑色背景可以让他们的眼睛休息一下。\n");
}
```
希望这个示例代码可以帮助你实现一个电话簿管理程序。
阅读全文