这个程序使用了结构体来存储联系人的信息,包括名字和电话号码。然后,使用数组来存储所有的联系人信息。查找功能通过名字进行,显示功能则显示所有联系人的信息。

这是一个基本的电话簿程序,你可以在此基础上进行扩展和改进。

#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100 // 最大联系人数量
#define NAME_LENGTH 50 // 名字的最大长度
#define PHONE_NUMBER_LENGTH 20 // 电话号码的最大长度
// 定义联系人结构体
struct Contact {
char name[NAME_LENGTH];
char phoneNumber[PHONE_NUMBER_LENGTH];
};
// 添加联系人
void addContact(struct Contact contacts[], int *numContacts, char name[], char phone[]) {
strcpy(contacts[*numContacts].name, name);
strcpy(contacts[*numContacts].phoneNumber, phone);
(*numContacts)++;
}
// 查找联系人
int findContact(struct Contact contacts[], int numContacts, char name[]) {
for (int i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) { // 如果找到匹配的名字,返回索引
return i;
}
}
return -1; // 如果没找到,返回-1
}
// 显示所有联系人信息
void displayContacts(struct Contact contacts[], int numContacts) {
printf("Name Phone Number
"); // 表头
for (int i = 0; i < numContacts; i++) { // 显示每个联系人的信息
printf("%s %s
", contacts[i].name, contacts[i].phoneNumber);
}
}
int main() {
struct Contact contacts[MAX_CONTACTS]; // 创建联系人数组
int numContacts = 0; // 当前的联系人数量
char choice; // 用户的选择(用于菜单)
char name[NAME_LENGTH]; // 存储输入的名字
char phone[PHONE_NUMBER_LENGTH]; // 存储输入的电话号码
int contactIndex = -1; // 存储查找联系人的索引(-1表示未找到)
while (1) { // 主循环,持续运行直到用户选择退出程序
printf("
Phone Book
"); // 打印标题栏
printf("1. Add Contact
"); // 打印菜单选项
printf("2. Find Contact
"); // 打印菜单选项(查找联系人)并获取用户输入的操作选择,如果输入的不是数字,则重新提示用户输入,直到用户输入正确的数字为止,然后执行相应的操作,如果用户选择退出程序,则跳出循环并结束程序,在添加联系人时,要求用户输入名字和电话号码,并将其添加到联系人数组中,在查找联系人时,要求用户输入名字,并在联系人数组中查找该名字对应的联系人信息,如果找到了联系人信息,则打印出该联系人的名字和电话号码;否则打印出未找到联系人的消息,最后在主菜单中循环运行程序直到用户选择退出程序为止,在这个过程中,用户可以添加新的联系人信息、查找已有的联系人信息等操作,程序会根据用户的操作进行相应的处理并显示相应的结果,在这个过程中,程序会保证联系人数组的大小不超过最大限制(MAX_CONTACTS),并且会检查输入的名字和电话号码是否符合格式要求(名字的长度不超过NAME_LENGTH,电话号码的长度不超过PHONE_NUMBER_LENGTH),如果不符合格式要求,程序会提示用户重新输入正确的信息,这是一个简单的电话簿程序,实现了添加、查找和显示联系人信息的基本功能,你可以在此基础上进行扩展和改进,以满足更多的需求,你可以添加删除联系人、更新联系人信息等功能,你还可以使用更高级的数据结构(如链表或哈希表)来存储联系人信息以提高程序的效率和性能。
TIME
