您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
通讯录是一种常见的应用程序,用于存储和管理联系人信息。使用C语言实现一个简单的通讯录功能,可以帮助我们理解数据结构、文件操作和基本的内存管理。本文将介绍如何使用C语言实现一个简单的通讯录功能。
在开始编写代码之前,我们需要明确通讯录的基本功能需求:
为了实现上述功能,我们需要设计一个合适的数据结构来存储联系人信息。一个简单的结构体可以满足我们的需求:
#define MAX_NAME_LENGTH 50
#define MAX_PHONE_LENGTH 15
typedef struct {
char name[MAX_NAME_LENGTH];
char phone[MAX_PHONE_LENGTH];
} Contact;
每个联系人包含两个字段:name
和 phone
,分别用于存储联系人的姓名和电话号码。
void addContact(Contact contacts[], int *count) {
if (*count >= MAX_CONTACTS) {
printf("通讯录已满,无法添加更多联系人。\n");
return;
}
Contact newContact;
printf("请输入联系人姓名: ");
scanf("%s", newContact.name);
printf("请输入联系人电话: ");
scanf("%s", newContact.phone);
contacts[*count] = newContact;
(*count)++;
printf("联系人添加成功!\n");
}
void deleteContact(Contact contacts[], int *count, const char *name) {
int found = 0;
for (int i = 0; i < *count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
for (int j = i; j < *count - 1; j++) {
contacts[j] = contacts[j + 1];
}
(*count)--;
found = 1;
printf("联系人删除成功!\n");
break;
}
}
if (!found) {
printf("未找到该联系人。\n");
}
}
void findContact(const Contact contacts[], int count, const char *name) {
int found = 0;
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("联系人姓名: %s, 电话: %s\n", contacts[i].name, contacts[i].phone);
found = 1;
break;
}
}
if (!found) {
printf("未找到该联系人。\n");
}
}
void displayContacts(const Contact contacts[], int count) {
if (count == 0) {
printf("通讯录为空。\n");
return;
}
for (int i = 0; i < count; i++) {
printf("联系人 %d: 姓名: %s, 电话: %s\n", i + 1, contacts[i].name, contacts[i].phone);
}
}
void saveContacts(const Contact contacts[], int count, const char *filename) {
FILE *file = fopen(filename, "w");
if (file == NULL) {
printf("无法打开文件进行保存。\n");
return;
}
for (int i = 0; i < count; i++) {
fprintf(file, "%s %s\n", contacts[i].name, contacts[i].phone);
}
fclose(file);
printf("通讯录已保存。\n");
}
void loadContacts(Contact contacts[], int *count, const char *filename) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
printf("无法打开文件进行加载。\n");
return;
}
*count = 0;
while (fscanf(file, "%s %s", contacts[*count].name, contacts[*count].phone) != EOF) {
(*count)++;
}
fclose(file);
printf("通讯录已加载。\n");
}
最后,我们需要编写一个主程序来调用上述功能,并提供一个简单的用户界面:
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100
int main() {
Contact contacts[MAX_CONTACTS];
int count = 0;
char filename[] = "contacts.txt";
int choice;
char name[MAX_NAME_LENGTH];
while (1) {
printf("\n通讯录管理系统\n");
printf("1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 查找联系人\n");
printf("4. 显示所有联系人\n");
printf("5. 保存通讯录\n");
printf("6. 加载通讯录\n");
printf("7. 退出\n");
printf("请选择操作: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact(contacts, &count);
break;
case 2:
printf("请输入要删除的联系人姓名: ");
scanf("%s", name);
deleteContact(contacts, &count, name);
break;
case 3:
printf("请输入要查找的联系人姓名: ");
scanf("%s", name);
findContact(contacts, count, name);
break;
case 4:
displayContacts(contacts, count);
break;
case 5:
saveContacts(contacts, count, filename);
break;
case 6:
loadContacts(contacts, &count, filename);
break;
case 7:
return 0;
default:
printf("无效的选择,请重新输入。\n");
}
}
return 0;
}
通过以上步骤,我们实现了一个简单的通讯录管理系统。这个系统可以添加、删除、查找和显示联系人信息,并且可以将通讯录保存到文件中,以便下次启动程序时可以加载。这个示例展示了如何使用C语言进行基本的数据管理和文件操作,为进一步开发更复杂的应用程序奠定了基础。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。