
请注意,此代码需要在支持C语言的编译器上运行。例如,你可以使用GCC编译器在Linux或Windows上运行此代码。

#include <stdio.h>
#include <string.h>
#define MAX_RECORDS 100 // 最大记录数
#define MAX_NAME_LENGTH 50 // 名称的最大长度
#define MAX_PHONE_NUMBER_LENGTH 20 // 电话号码的最大长度
typedef struct {
char name[MAX_NAME_LENGTH];
char phoneNumber[MAX_PHONE_NUMBER_LENGTH];
} Record;
Record records[MAX_RECORDS]; // 存储电话号码和对应名称的数组
int numRecords = 0; // 当前记录数
void addRecord() {
if (numRecords >= MAX_RECORDS) {
printf("已达到最大记录数,n");
return;
}
printf("请输入姓名:");
scanf("%s", records[numRecords].name);
printf("请输入电话号码:");
scanf("%s", records[numRecords].phoneNumber);
numRecords++;
printf("记录添加成功,n");
}
void searchRecord() {
char name[MAX_NAME_LENGTH];
printf("请输入要查询的姓名:");
scanf("%s", name);
for (int i = 0; i < numRecords; i++) {
if (strcmp(records[i].name, name) == 0) { // 如果找到匹配的记录
printf("找到匹配的记录:姓名:%s,电话号码:%sn", records[i].name, records[i].phoneNumber);
return; // 返回,不再继续搜索其他记录
}
}
printf("未找到匹配的记录,n"); // 如果未找到匹配的记录,输出提示信息
}
int main() {
int choice; // 用户的选择(菜单选项)
while (1) { // 主循环,直到用户选择退出程序为止
printf("n电话查询系统:n");
printf("1. 添加记录n"); // 添加电话号码和对应名称的记录到数组中
printf("2. 查询记录n"); // 根据姓名查询电话号码记录
printf("3. 退出程序n"); // 退出程序
printf("请选择操作:"); // 提示用户选择操作选项并获取用户输入的操作选项值赋给choice变量,此处假设用户输入的是合法的菜单选项值,如果输入的不是合法的菜单选项值,程序可能会产生不可预测的行为,在实际应用中需要添加错误处理代码以确保程序的健壮性,可以使用循环让用户重新输入直到输入正确的菜单选项值为止,此处为了简化代码未添加错误处理代码。"); scanf("%d", &choice);
switch (choice) { // 根据用户的选择执行相应的操作函数或退出程序,此处假设用户输入的是合法的菜单选项值,如果输入的不是合法的菜单选项值,程序可能会执行错误的操作函数或陷入死循环状态,在实际应用中需要添加错误处理代码以确保程序的健壮性,可以在switch语句中添加判断语句检查用户输入的值是否合法,如果不合法则提示用户重新输入或退出程序等处理方式,此处为了简化代码未添加错误处理代码。"; case 1: addRecord(); break; case 2: searchRecord(); break; case 3: printf("程序已退出,"); return 0; default: printf("无效的选项!请选择正确的菜单选项,"); } } return 0; }```



