创建一个个人电话号码查询系统是一个涉及数据存储和检索的任务。在C语言中,我们可以使用结构体(struct)来存储电话号码信息,并使用数组或链表来存储多个电话号码。以下是一个简单的示例,说明如何使用C语言创建一个基本的电话号码查询系统。请注意,此示例仅用于教学目的,实际应用中可能需要更复杂和安全的实现。

#include <stdio.h>
#include <string.h>
#define MAX_NAME_LENGTH 50
#define MAX_PHONE_NUMBER_LENGTH 20
typedef struct {
char name[MAX_NAME_LENGTH];
char phoneNumber[MAX_PHONE_NUMBER_LENGTH];
} Contact;创建一个简单的电话本,使用数组来存储联系人信息:
Contact phoneBook[100]; // 假设电话本最多可以存储100个联系人 int phoneBookSize = 0; // 当前电话本中的联系人数量
我们可以编写一些基本的函数来添加、查找和显示联系人信息:
void addContact(Contact *phoneBook, int *phoneBookSize) {
printf("Enter name: ");
scanf("%s", phoneBook[*phoneBookSize].name);
printf("Enter phone number: ");
scanf("%s", phoneBook[*phoneBookSize].phoneNumber);
(*phoneBookSize)++; // 增加联系人数量
}
void findContact(Contact *phoneBook, int phoneBookSize) {
char searchName[MAX_NAME_LENGTH];
printf("Enter name to search: ");
scanf("%s", searchName);
int i;
for (i = 0; i < phoneBookSize; i++) {
if (strcmp(phoneBook[i].name, searchName) == 0) { // 使用strcmp来比较字符串
printf("Found contact: %s, %sn", phoneBook[i].name, phoneBook[i].phoneNumber);
return; // 找到后直接返回,不需要继续搜索
}
}
printf("Contact not found.n"); // 如果循环结束还没有找到联系人,则输出未找到信息。
}我们可以编写一个主函数来测试这些功能:
int main() {
int choice;
while (1) { // 无限循环,直到用户选择退出程序,实际应用中可能需要更复杂的逻辑来控制循环。
printf("nPhone Book Systemn");
printf("1. Add contactn"); // 添加联系人选项,实际应用中可能需要更多的选项和功能。
printf("2. Find contactn"); // 查找联系人选项,实际应用中可能需要更多的选项和功能,例如显示所有联系人等。
printf("3. Exitn"); // 退出程序选项,实际应用中可能需要更多的错误处理和输入验证等,例如检查输入是否合法等,请根据实际情况进行修改和扩展,输入数字进行选择操作,n"); scanf("%d", &choice); switch (choice) { case 1: addContact(phoneBook, &phoneBookSize); break; case 2: findContact(phoneBook, phoneBookSize); break; case 3: return 0; // 用户选择退出程序 default: printf("Invalid choice. Please enter a valid option.n"); break; } } }`这段代码提供了一个简单的电话查询系统,允许用户添加联系人和查找联系人信息,在实际应用中,你可能需要添加更多的功能,如删除联系人、修改联系人信息、显示所有联系人等,还需要考虑错误处理和输入验证等问题,在实际应用中,还需要考虑数据的安全性和隐私保护问题,可以考虑使用数据库来存储联系人信息,而不是直接在内存中存储数据,还需要确保程序的健壮性和安全性,以防止恶意攻击和数据泄露等问题。




