用c语言写一个通讯录管理系统,要求使用二维数组
时间: 2024-04-30 20:20:47 浏览: 107
mars_rover_arrays.tar.gz_Windows编程_C++_源码,c语言课程设计通讯录源码,c语言项目
好的,下面是一个简单的通讯录管理系统的代码示例,使用二维数组保存通讯录信息:
```c
#include <stdio.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;
// 通讯录数组
Contact contacts[MAX_CONTACTS];
// 当前通讯录条目数
int num_contacts = 0;
// 添加通讯录条目
void add_contact() {
if (num_contacts >= MAX_CONTACTS) {
printf("通讯录已满,无法添加新条目\n");
return;
}
printf("请输入姓名:");
scanf("%s", contacts[num_contacts].name);
printf("请输入电话号码:");
scanf("%s", contacts[num_contacts].phone);
printf("添加成功!\n");
num_contacts++;
}
// 查找通讯录条目
void find_contact() {
char name[MAX_NAME_LEN];
printf("请输入要查找的姓名:");
scanf("%s", name);
int i;
for (i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("姓名:%s,电话号码:%s\n", contacts[i].name, contacts[i].phone);
return;
}
}
printf("未找到该联系人\n");
}
// 显示所有通讯录条目
void list_contacts() {
if (num_contacts == 0) {
printf("通讯录为空\n");
return;
}
int i;
for (i = 0; i < num_contacts; i++) {
printf("姓名:%s,电话号码:%s\n", contacts[i].name, contacts[i].phone);
}
}
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 添加通讯录条目\n");
printf("2. 查找通讯录条目\n");
printf("3. 显示所有通讯录条目\n");
printf("4. 退出程序\n");
printf("请输入选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact();
break;
case 2:
find_contact();
break;
case 3:
list_contacts();
break;
case 4:
printf("程序已退出\n");
return 0;
default:
printf("无效选择,请重新输入\n");
}
}
}
```
该程序定义了一个 `Contact` 结构体表示通讯录中的一条条目,使用一个二维数组 `contacts` 存储所有通讯录条目。程序主要包含三个操作:添加通讯录条目、查找通讯录条目和显示所有通讯录条目。用户可以通过输入菜单选项来选择相应的操作。
阅读全文