C语言实现简易通讯录完整流程
1. 需求分析
在编写“C语言实现简易通讯录”的过程中,我们需要实现以下功能:
1. 添加联系人
2. 删除联系人
3. 修改联系人
4. 查找联系人
5. 显示联系人
2. 思路设计
2.1 数据结构设计
为了实现通讯录功能,我们可以定义如下结构体存储联系人信息:
#define NAME_MAX_LENGTH 20
#define PHONE_MAX_LENGTH 20
struct contact{
char name[NAME_MAX_LENGTH];
char phone[PHONE_MAX_LENGTH];
};
2.2 功能实现设计
- 添加联系人:输入联系人姓名和电话,将联系人信息添加到通讯录;
- 删除联系人:输入联系人姓名,查找并删除该联系人信息;
- 修改联系人:输入联系人姓名,查找并修改该联系人电话;
- 查找联系人:输入联系人姓名,查找并显示该联系人信息;
- 显示联系人:显示所有联系人信息。
3. 代码实现
3.1 添加联系人
我们可以通过定义结构体数组来存储多个联系人信息,示例代码如下:
#define MAX_CONTACTS 100
struct contact contacts[MAX_CONTACTS];
int contacts_count = 0;
void add_contact(){
if(contacts_count == MAX_CONTACTS){
printf("通讯录已满,无法添加更多联系人。\n");
return;
}
printf("请输入联系人姓名:");
scanf("%s", contacts[contacts_count].name);
printf("请输入联系人电话:");
scanf("%s", contacts[contacts_count].phone);
printf("联系人 %s 已成功添加到通讯录中。\n", contacts[contacts_count].name);
contacts_count++;
}
3.2 删除联系人
我们可以通过遍历结构体数组查找并删除联系人信息,示例代码如下:
void delete_contact(){
char name[NAME_MAX_LENGTH];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int index = -1;
for(int i = 0; i < contacts_count; i++){
if(strcmp(contacts[i].name, name) == 0){
index = i;
break;
}
}
if(index == -1){
printf("通讯录中无此联系人。\n");
return;
}
for(int i = index; i < contacts_count-1; i++){
contacts[i] = contacts[i+1];
}
printf("联系人 %s 已成功从通讯录中删除。\n", name);
contacts_count--;
}
3.3 修改联系人
我们可以通过遍历结构体数组查找并修改联系人信息,示例代码如下:
void modify_contact(){
char name[NAME_MAX_LENGTH];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
int index = -1;
for(int i = 0; i < contacts_count; i++){
if(strcmp(contacts[i].name, name) == 0){
index = i;
break;
}
}
if(index == -1){
printf("通讯录中无此联系人。\n");
return;
}
printf("请输入新的联系人电话:");
scanf("%s", contacts[index].phone);
printf("联系人 %s 的电话已成功修改为 %s。\n", name, contacts[index].phone);
}
3.4 查找联系人
我们可以通过遍历结构体数组查找联系人信息并显示,示例代码如下:
void search_contact(){
char name[NAME_MAX_LENGTH];
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
int index = -1;
for(int i = 0; i < contacts_count; i++){
if(strcmp(contacts[i].name, name) == 0){
index = i;
break;
}
}
if(index == -1){
printf("通讯录中无此联系人。\n");
return;
}
printf("联系人姓名:%s\n联系人电话:%s\n", contacts[index].name, contacts[index].phone);
}
3.5 显示联系人
我们可以通过遍历结构体数组显示所有联系人信息,示例代码如下:
void show_contacts(){
printf("当前通讯录中共有 %d 个联系人。\n", contacts_count);
for(int i = 0; i < contacts_count; i++){
printf("联系人%d姓名:%s\n联系人%d电话:%s\n", i+1, contacts[i].name, i+1, contacts[i].phone);
}
}
4. 示例说明
下面给出两条示例来说明如何使用实现的通讯录功能。
示例1:基本操作
先添加一个联系人,名为“张三”,电话为“12345678901”:
请输入操作编号:1
请输入联系人姓名:张三
请输入联系人电话:12345678901
联系人 张三 已成功添加到通讯录中。
查看添加的联系人:
请输入操作编号:5
当前通讯录中共有 1 个联系人。
联系人1姓名:张三
联系人1电话:12345678901
修改联系人的电话号码为“11111111111”:
请输入操作编号:3
请输入要修改的联系人姓名:张三
请输入新的联系人电话:11111111111
联系人 张三 的电话已成功修改为 11111111111。
将张三的联系人信息从通讯录中删除:
请输入操作编号:2
请输入要删除的联系人姓名:张三
联系人 张三 已成功从通讯录中删除。
再次查看通讯录中的联系人:
请输入操作编号:5
当前通讯录中共有 0 个联系人。
示例2:满员操作
添加满MAX_CONTACTS(100)个联系人:
请输入操作编号:1
请输入联系人姓名:联系人1
请输入联系人电话:123
联系人 联系人1 已成功添加到通讯录中。
请输入操作编号:1
请输入联系人姓名:联系人2
请输入联系人电话:123
联系人 联系人2 已成功添加到通讯录中。
...
请输入操作编号:1
请输入联系人姓名:联系人100
请输入联系人电话:123
联系人 联系人100 已成功添加到通讯录中。
尝试添加第101个联系人:
请输入操作编号:1
请输入联系人姓名:联系人101
请输入联系人电话:123
通讯录已满,无法添加更多联系人。
尝试查看通讯录中的联系人:
请输入操作编号:5
当前通讯录中共有 100 个联系人。
联系人1姓名:联系人1
联系人1电话:123
联系人2姓名:联系人2
联系人2电话:123
...
联系人100姓名:联系人100
联系人100电话:123
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现简易通讯录完整流程 - Python技术站