学生通讯录管理系统
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100
typedef struct {
char name[50];
char phone[20];
char email[50];
} Contact;
int numContacts = 0;
Contact contacts[MAX_CONTACTS];
void addContact() {
if (numContacts == MAX_CONTACTS) {
printf("通讯录已满,无法添加新的联系人。\n");
return;
}
Contact newContact;
printf("请输入联系人姓名:");
scanf("%s", newContact.name);
printf("请输入联系人电话:");
scanf("%s", newContact.phone);
printf("请输入联系人邮箱:");
scanf("%s", newContact.email);
contacts[numContacts++] = newContact;
printf("联系人添加成功。\n");
}
void searchContact() {
char keyword[50];
printf("请输入要查询的关键字:");
scanf("%s", keyword);
printf("查询结果:\n");
for (int i = 0; i < numContacts; i++) {
if (strstr(contacts[i].name, keyword) || strstr(contacts[i].phone, keyword) || strstr(contacts[i].email, keyword)) {
printf("姓名:%s\n", contacts[i].name);
printf("电话:%s\n", contacts[i].phone);
printf("邮箱:%s\n", contacts[i].email);
printf("\n");
}
}
}
void deleteContact() {
char name[50];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int index = -1;
for (int i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该联系人。\n");
}
else {
for (int i = index; i < numContacts - 1; i++)
contacts[i] = contacts[i + 1];
numContacts--;
printf("联系人删除成功。\n");
}
}
void listContacts() {
printf("所有联系人:\n");
for (int i = 0; i < numContacts; i++) {
printf("姓名:%s\n", contacts[i].name);
printf("电话:%s\n", contacts[i].phone);
printf("邮箱:%s\n", contacts[i].email);
printf("\n");
}
}
int main() {
int choice;
do {
printf("学生通讯录管理系统\n");
printf("1. 添加联系人\n");
printf("2. 查询联系人\n");
printf("3. 删除联系人\n");
printf("4. 显示所有联系人\n");
printf("5. 退出系统\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact();
break;
case 2:
searchContact();
break;
case 3:
deleteContact();
break;
case 4:
listContacts();
break;
case 5:
printf("退出系统。\n");
break;
default:
printf("无效的选择。\n");
break;
}
printf("\n");
} while (choice != 5);
return 0;
}