在数字化时代,通讯录的管理变得尤为重要。而使用C语言编写一个可视化通讯录,不仅能提升管理效率,还能锻炼编程技能。本文将详细介绍如何使用C语言打造一个功能齐全、界面友好的可视化通讯录。
1. 项目需求分析
在开始编程之前,我们需要明确通讯录的功能需求:
基本功能:
- 添加联系人
- 删除联系人
- 修改联系人信息
- 查询联系人信息
- 显示所有联系人
- 退出系统
高级功能:
- 联系人信息加密存储
- 联系人按姓名、电话、邮箱排序
- 支持文件导入导出
2. 数据结构设计
为了存储联系人信息,我们需要定义一个结构体:
typedef struct {
char name[50];
char phone[20];
char email[50];
} Contact;
然后,我们使用一个指针数组来管理所有联系人:
#define MAX_CONTACTS 100
Contact contacts[MAX_CONTACTS];
int contact_count = 0;
3. 功能模块实现
3.1 添加联系人
void addContact() {
if (contact_count >= MAX_CONTACTS) {
printf("通讯录已满,无法添加新联系人!\n");
return;
}
Contact new_contact;
printf("请输入姓名:");
scanf("%s", new_contact.name);
printf("请输入电话:");
scanf("%s", new_contact.phone);
printf("请输入邮箱:");
scanf("%s", new_contact.email);
contacts[contact_count++] = new_contact;
printf("联系人添加成功!\n");
}
3.2 删除联系人
void deleteContact() {
char name[50];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
for (int i = 0; i < contact_count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
for (int j = i; j < contact_count - 1; j++) {
contacts[j] = contacts[j + 1];
}
contact_count--;
printf("联系人删除成功!\n");
return;
}
}
printf("未找到该联系人!\n");
}
3.3 修改联系人信息
void modifyContact() {
char name[50];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
for (int i = 0; i < contact_count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("请输入新的电话:");
scanf("%s", contacts[i].phone);
printf("请输入新的邮箱:");
scanf("%s", contacts[i].email);
printf("联系人信息修改成功!\n");
return;
}
}
printf("未找到该联系人!\n");
}
3.4 查询联系人信息
void searchContact() {
char name[50];
printf("请输入要查询的联系人姓名:");
scanf("%s", name);
for (int i = 0; i < contact_count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("姓名:%s\n电话:%s\n邮箱:%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
return;
}
}
printf("未找到该联系人!\n");
}
3.5 显示所有联系人
void showAllContacts() {
if (contact_count == 0) {
printf("通讯录为空!\n");
return;
}
for (int i = 0; i < contact_count; i++) {
printf("姓名:%s,电话:%s,邮箱:%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
}
}
3.6 退出系统
void exitSystem() {
printf("感谢使用通讯录系统!\n");
exit(0);
}
4. 用户界面设计
为了提高用户体验,我们可以使用简单的文本菜单来展示功能:
void showMenu() {
printf("1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 修改联系人信息\n");
printf("4. 查询联系人信息\n");
printf("5. 显示所有联系人\n");
printf("6. 退出系统\n");
printf("请输入操作选项:");
}
5. 程序主函数
最后,我们需要编写程序主函数来驱动整个系统:
int main() {
int choice;
while (1) {
showMenu();
scanf("%d", &choice);
switch (choice) {
case 1:
addContact();
break;
case 2:
deleteContact();
break;
case 3:
modifyContact();
break;
case 4:
searchContact();
break;
case 5:
showAllContacts();
break;
case 6:
exitSystem();
break;
default:
printf("无效的选项,请重新输入!\n");
}
}
return 0;
}
通过以上步骤,我们可以使用C语言轻松打造一个可视化通讯录。这个系统不仅具备基本功能,还能通过不断优化和扩展,满足更多用户需求。