C语言实现通讯录系统程序攻略
通讯录系统是一个经典的应用程序,其实现也是编程入门的一大重点。本文将分享使用C语言实现通讯录系统程序的完整攻略,帮助你从零开始完成一个完整的通讯录系统。
步骤1:需求分析
在编写任何程序之前,需要进行需求分析,从而明确程序需要实现的具体功能。在此我们定义所需的功能如下:
-
添加联系人:用户可以添加一个新的联系人,并记录该联系人的姓名、性别、年龄、手机号、家庭住址等信息。
-
显示联系人:用户可以查看所有已经添加的联系人信息,包括每个联系人的姓名、性别、年龄、手机号、家庭住址等信息。
-
删除联系人:用户可以选择一个要删除的联系人,并将其从通讯录中删除。
-
查找联系人:根据联系人的姓名进行查找,并在查询结果中显示该联系人的所有信息。
-
修改联系人:用户可以选择一个要修改的联系人,并修改该联系人的信息,如手机号、家庭住址等。
步骤2:设计程序数据结构
根据上述需求,我们可以设计出通讯录系统的数据结构,如下所示:
#define NAME_MAX_LEN 20
#define SEX_MAX_LEN 5
#define PHONE_MAX_LEN 12
#define ADDR_MAX_LEN 30
/* 联系人结构体 */
struct Contact {
char name[NAME_MAX_LEN];
char sex[SEX_MAX_LEN];
int age;
char phone[PHONE_MAX_LEN];
char addr[ADDR_MAX_LEN];
};
上述代码中,我们定义了一个联系人结构体,其中包含了姓名、性别、年龄、手机号、家庭住址等信息。在程序中,我们将会增删改查联系人信息,因此这个结构体是非常重要的。
步骤3:实现程序功能
接下来,我们就可以根据需求,开始实现程序的功能,具体操作如下:
1. 添加联系人
在程序中,我们需要向用户询问联系人信息,然后将该联系人信息保存到通讯录列表中,代码如下所示:
/* 将新增联系人信息添加到通讯录列表 */
void add_contact(struct Contact* contacts, int* cnt) {
printf("请输入联系人姓名:");
scanf("%s", contacts[*cnt].name);
printf("请输入联系人性别:");
scanf("%s", contacts[*cnt].sex);
printf("请输入联系人年龄:");
scanf("%d", &contacts[*cnt].age);
printf("请输入联系人手机号:");
scanf("%s", contacts[*cnt].phone);
printf("请输入联系人家庭住址:");
scanf("%s", contacts[*cnt].addr);
(*cnt)++;
printf("联系人添加成功!\n");
}
在上述代码中,我们使用scanf函数获取用户输入的联系人信息,然后将其保存到通讯录列表中。同时,通过更新通讯录列表中联系人数量的方式,可以达到添加联系人的效果。
2. 显示联系人
在程序中,我们需要遍历通讯录列表,并输出每一个联系人的信息,代码如下:
/* 显示所有联系人信息 */
void show_contacts(struct Contact* contacts, int cnt) {
printf("所有联系人信息如下:\n");
for (int i = 0; i < cnt; i++) {
printf("姓名:%s\t性别:%s\t年龄:%d\t手机号:%s\t家庭住址:%s\n",
contacts[i].name, contacts[i].sex, contacts[i].age,
contacts[i].phone, contacts[i].addr);
}
}
在上述代码中,我们使用for循环遍历通讯录列表,然后输出每一个联系人的信息。通过使用printf函数,我们可以将每一个联系人的信息按照一定的格式进行显示。
3. 删除联系人
在程序中,我们需要让用户选择一个要删除的联系人,然后将其从通讯录列表中删除,代码如下:
/* 从通讯录列表中删除指定联系人 */
void delete_contact(struct Contact* contacts, int* cnt) {
char name[NAME_MAX_LEN];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int index = -1;
for (int i = 0; i < *cnt; i++) {
if (strcmp(name, contacts[i].name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("通讯录中不存在该联系人!\n");
} else {
for (int i = index; i < (*cnt) - 1; i++) {
contacts[i] = contacts[i + 1];
}
(*cnt)--;
printf("联系人删除成功!\n");
}
}
在上述代码中,我们使用scanf函数获取用户输入的联系人姓名,然后遍历通讯录列表,查找该联系人的位置。如果找到该联系人,我们将通讯录列表中此位置以后所有的联系人向前移动一个位置,并更新联系人数量。否则,我们提示用户通讯录中不存在该联系人。
4. 查找联系人
在程序中,我们需要让用户输入要查找的姓名,并将所有符合条件的联系人信息输出,代码如下:
/* 根据姓名查找联系人 */
void find_contact(struct Contact* contacts, int cnt) {
char name[NAME_MAX_LEN];
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < cnt; i++) {
if (strcmp(name, contacts[i].name) == 0) {
printf("姓名:%s\t性别:%s\t年龄:%d\t手机号:%s\t家庭住址:%s\n",
contacts[i].name, contacts[i].sex, contacts[i].age,
contacts[i].phone, contacts[i].addr);
found = 1;
}
}
if (!found) {
printf("通讯录中不存在该联系人!\n");
}
}
在上述代码中,我们使用scanf函数获取用户输入的联系人姓名,然后遍历通讯录列表,查找所有符合条件的联系人,并将其信息进行输出。如果找不到任何联系人,我们提示用户通讯录中不存在该联系人。
5. 修改联系人
在程序中,我们需要让用户选择一个要修改的联系人,然后修改该联系人的信息,代码如下:
/* 修改通讯录列表中指定联系人的信息 */
void modify_contact(struct Contact* contacts, int cnt) {
char name[NAME_MAX_LEN];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
int index = -1;
for (int i = 0; i < cnt; i++) {
if (strcmp(name, contacts[i].name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("通讯录中不存在该联系人!\n");
return;
}
printf("请输入新的联系人信息:\n");
printf("请输入联系人性别:");
scanf("%s", contacts[index].sex);
printf("请输入联系人年龄:");
scanf("%d", &contacts[index].age);
printf("请输入联系人手机号:");
scanf("%s", contacts[index].phone);
printf("请输入联系人家庭住址:");
scanf("%s", contacts[index].addr);
printf("联系人信息修改成功!\n");
}
在上述代码中,我们使用scanf函数获取用户输入的联系人姓名,然后遍历通讯录列表,查找要修改的联系人,并更新该联系人的信息。如果找不到该联系人,我们提示用户通讯录中不存在该联系人。
步骤4:测试程序
根据上述代码,我们已经完成了通讯录系统的编写,现在可以编译并运行程序,查看是否符合需要。
为了方便测试,下面提供两个示例:
示例一:添加联系人
- 打开程序,选择“1. 添加联系人”。
- 输入联系人信息:“张三”、“男”、“18”、“13800138000”、“北京市昌平区”。
- 程序提示“联系人添加成功!”。
示例二:显示联系人
- 打开程序,选择“2. 显示联系人”。
- 程序依次输出所有已经添加的联系人的信息。
总结
以上就是使用C语言实现通讯录系统程序的完整攻略,通过以上代码,你可以了解到如何定义数据结构、实现程序功能、以及测试程序的方法。希望本文对于你学习C语言编程有所帮助,如果你有任何疑问或建议,欢迎在评论区留言。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现通讯录系统程序 - Python技术站