C语言实现简易通讯录实例
简介
本项目将使用C语言实现一个简易通讯录,可以添加联系人、删除联系人、修改联系人以及查看通讯录中所有联系人的信息。
环境
开发平台:Windows / Linux / MacOS
编译器:gcc
功能列表
- 添加联系人
- 删除联系人
- 修改联系人
- 查看通讯录中所有联系人的信息
数据结构
为了实现通讯录的功能,我们需要用到两种数据结构:联系人和通讯录。
联系人
联系人是通讯录中的基本单元,包含以下信息:
- 姓名(字符串类型,最长不超过 20 个字符)
- 性别(字符类型,'M' 表示男性,'F' 表示女性)
- 年龄(整型,取值范围为 1 到 150)
- 电话号码(字符串类型,最长不超过 15 个字符)
- 住址(字符串类型,最长不超过 50 个字符)
我们可以定义一个结构体来表示一个联系人:
struct person {
char name[20];
char gender;
int age;
char phone[15];
char address[50];
};
通讯录
通讯录是联系人的集合,可以对其中的联系人进行添加、删除、修改和查询操作。通讯录的存储可以使用数组或链表。在这里,我们使用数组来存储所有的联系人。
通讯录包含以下信息:
- 联系人数组(最多可以存储 1000 个联系人)
- 联系人数量
我们可以定义一个结构体来表示通讯录:
#define MAX_PERSONS 1000
struct address_book {
struct person persons[MAX_PERSONS];
int count;
};
添加联系人
添加联系人操作可以分为以下几个步骤:
- 从用户输入中获取新联系人的信息
- 在通讯录中添加新联系人
- 更新通讯录中联系人数量的计数器
下面是实现添加联系人函数的示例代码:
void add_person(struct address_book *book) {
if (book->count == MAX_PERSONS) {
printf("通讯录已满,无法添加新联系人。\n");
return;
}
struct person new_person;
printf("请输入新联系人的信息:\n");
printf("姓名:");
scanf("%s", new_person.name);
printf("性别(M/F):");
scanf(" %c", &new_person.gender);
printf("年龄:");
scanf("%d", &new_person.age);
printf("电话号码:");
scanf("%s", new_person.phone);
printf("住址:");
scanf("%s", new_person.address);
book->persons[book->count] = new_person;
book->count++;
printf("新联系人已成功添加到通讯录中。\n");
}
删除联系人
删除联系人操作可以分为以下几个步骤:
- 从用户输入中获取待删除联系人的姓名
- 在通讯录中查找该姓名对应的联系人
- 如果找到了该联系人,则删除它
- 更新通讯录中联系人数量的计数器
下面是实现删除联系人函数的示例代码:
void delete_person(struct address_book *book) {
char name[20];
printf("请输入待删除联系人的姓名:");
scanf("%s", name);
int i;
for (i = 0; i < book->count; i++) {
if (strcmp(book->persons[i].name, name) == 0) {
int j;
for (j = i; j < book->count - 1; j++) {
book->persons[j] = book->persons[j + 1];
}
book->count--;
printf("联系人 %s 已从通讯录中删除。\n", name);
return;
}
}
printf("没有找到名为 %s 的联系人。\n", name);
}
示例说明
示例 1:添加联系人
struct address_book book;
book.count = 0;
add_person(&book);
/*
输出:
请输入新联系人的信息:
姓名:Peter
性别(M/F):M
年龄:30
电话号码:13912345678
住址:Shanghai
新联系人已成功添加到通讯录中。
*/
示例 2:删除联系人
struct address_book book;
book.persons[0] = (struct person){"Peter", 'M', 30, "13912345678", "Shanghai"};
book.count = 1;
delete_person(&book);
/*
输出:
请输入待删除联系人的姓名:Peter
联系人 Peter 已从通讯录中删除。
*/
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现简易通讯录实例 - Python技术站