基于C语言实现个人通讯录管理系统攻略
1. 开发环境和工具
- 操作系统:Windows或Linux
- IDE:Visual Studio Code、Code::Blocks、Dev-C++等
- 编程语言:C语言
2. 需求分析
通讯录管理系统用于存储个人通讯信息,包括姓名、电话、地址等。通讯录管理系统可以实现添加、删除、修改、查找、显示等功能。
3. 设计思路
- 定义一个结构体,实现姓名、电话、地址等信息的存储。
- 定义函数实现通讯录的添加、删除、修改、查找和显示功能。
- 使用文件实现通讯录信息的存储和读取。
- 使用菜单实现用户交互。
4. 实现步骤
4.1 定义结构体
typedef struct Contact {
char name[20];
char phone[12];
char address[30];
} Contact;
4.2 实现添加功能
void Add(Contact *contacts, int *count) {
printf("请输入姓名:");
scanf(" %s", contacts[count->name]);
printf("请输入电话:");
scanf(" %s", contacts[count->phone]);
printf("请输入地址:");
scanf(" %s", contacts[count->address]);
(*count)++;
}
4.3 实现删除功能
void Delete(Contact *contacts, int *count) {
char name[20];
printf("请输入删除联系人的姓名:");
scanf(" %s", name);
for (int i = 0; i < *count; i++) {
if (strcmp(name, contacts[i].name) == 0) {
for (int j = i; j < *count - 1; j++) {
strcpy(contacts[j].name, contacts[j + 1].name);
strcpy(contacts[j].phone, contacts[j + 1].phone);
strcpy(contacts[j].address, contacts[j + 1].address);
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("没有找到该联系人!\n");
}
4.4 实现修改功能
void Modify(Contact *contacts, int *count) {
char name[20];
printf("请输入要修改联系人的姓名:");
scanf(" %s", name);
for (int i = 0; i < *count; i++) {
if (strcmp(name, contacts[i].name) == 0) {
printf("请输入姓名:");
scanf(" %s", contacts[i].name);
printf("请输入电话:");
scanf(" %s", contacts[i].phone);
printf("请输入地址:");
scanf(" %s", contacts[i].address);
printf("修改成功!\n");
return;
}
}
printf("没有找到该联系人!\n");
}
4.5 实现查找功能
void Find(const Contact *contacts, int count) {
char name[20];
printf("请输入要查找联系人的姓名:");
scanf(" %s", name);
for (int i = 0; i < count; i++) {
if (strcmp(name, contacts[i].name) == 0) {
printf("姓名:%s,电话:%s,地址:%s\n", contacts[i].name, contacts[i].phone, contacts[i].address);
return;
}
}
printf("没有找到该联系人!\n");
}
4.6 实现显示功能
void Show(const Contact *contacts, int count) {
for (int i = 0; i < count; i++) {
printf("姓名:%s,电话:%s,地址:%s\n", contacts[i].name, contacts[i].phone, contacts[i].address);
}
}
4.7 实现文件读写功能
void Save(const Contact *contacts, int count) {
FILE *fp = fopen("contacts.txt", "w");
for (int i = 0; i < count; i++) {
fprintf(fp, "%s %s %s\n", contacts[i].name, contacts[i].phone, contacts[i].address);
}
fclose(fp);
}
void Load(Contact *contacts, int *count) {
FILE *fp = fopen("contacts.txt", "r");
if (fp == NULL) {
printf("没有文件!\n");
return;
}
while (fscanf(fp, "%s %s %s", contacts[*count].name, contacts[*count].phone, contacts[*count].address) != EOF) {
(*count)++;
}
fclose(fp);
}
4.8 实现菜单
int Menu() {
int choice;
printf("\n1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 修改联系人\n");
printf("4. 查找联系人\n");
printf("5. 显示联系人\n");
printf("6. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
return choice;
}
5. 示例说明
5.1 添加联系人
请输入姓名:Tom
请输入电话:12345678901
请输入地址:Beijing
5.2 删除联系人
请输入删除联系人的姓名:Tom
删除成功!
5.3 修改联系人
请输入要修改联系人的姓名:Tom
请输入姓名:Jerry
请输入电话:13579246801
请输入地址:Shanghai
修改成功!
5.4 查找联系人
请输入要查找联系人的姓名:Jerry
姓名:Jerry,电话:13579246801,地址:Shanghai
5.5 显示联系人
姓名:Jerry,电话:13579246801,地址:Shanghai
6. 总结
通过上述步骤的操作,我们就可以基于C语言实现个人通讯录管理系统。在整个过程中最核心的就是文件读写操作、结构体的定义以及菜单交互的设计。除此之外,针对需求的不同,我们可以在基础版本的基础上继续添加新功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于C语言实现个人通讯录管理系统 - Python技术站