C语言编写程序设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能: (1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能
时间: 2024-03-06 19:48:54 浏览: 245
好的,以下是一个简单的C语言通讯录程序,具有添加,查询和删除功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100 // 最大联系人数
#define MAX_NAME_LEN 50 // 姓名最大长度
#define MAX_PHONE_LEN 20 // 电话号码最大长度
#define MAX_EMAIL_LEN 100 // 电子邮箱最大长度
typedef struct {
char name[MAX_NAME_LEN];
char hometown[MAX_NAME_LEN];
char phone1[MAX_PHONE_LEN];
char phone2[MAX_PHONE_LEN];
char email[MAX_EMAIL_LEN];
} Contact;
Contact contacts[MAX_CONTACTS]; // 联系人数组
int numContacts = 0; // 当前联系人数
void printMenu() {
printf("\n\n");
printf("*************************\n");
printf("* 通讯录管理系统 *\n");
printf("* 1. 添加联系人 *\n");
printf("* 2. 浏览联系人 *\n");
printf("* 3. 查询联系人 *\n");
printf("* 4. 修改联系人 *\n");
printf("* 5. 删除联系人 *\n");
printf("* 6. 退出系统 *\n");
printf("*************************\n");
printf("\n");
}
void addContact() {
if (numContacts >= MAX_CONTACTS) {
printf("通讯录已满,无法添加新联系人!\n");
return;
}
Contact newContact;
printf("请输入联系人姓名:");
scanf("%s", newContact.name);
printf("请输入联系人籍贯:");
scanf("%s", newContact.hometown);
printf("请输入联系人电话1:");
scanf("%s", newContact.phone1);
printf("请输入联系人电话2:");
scanf("%s", newContact.phone2);
printf("请输入联系人电子邮箱:");
scanf("%s", newContact.email);
contacts[numContacts++] = newContact;
printf("联系人已添加!\n");
}
void printContact(Contact contact) {
printf("%s\t%s\t%s\t%s\t%s\n",
contact.name,
contact.hometown,
contact.phone1,
contact.phone2,
contact.email);
}
void browseContacts() {
if (numContacts == 0) {
printf("通讯录为空,没有联系人!\n");
return;
}
printf("姓名\t籍贯\t电话1\t电话2\t电子邮箱\n");
for (int i = 0; i < numContacts; i++) {
printContact(contacts[i]);
}
}
int findContact(char *name) {
for (int i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
return i;
}
}
return -1;
}
void searchContact() {
char name[MAX_NAME_LEN];
printf("请输入要查询的联系人姓名:");
scanf("%s", name);
int index = findContact(name);
if (index == -1) {
printf("没有找到联系人 %s!\n", name);
} else {
printf("姓名\t籍贯\t电话1\t电话2\t电子邮箱\n");
printContact(contacts[index]);
}
}
void modifyContact() {
char name[MAX_NAME_LEN];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
int index = findContact(name);
if (index == -1) {
printf("没有找到联系人 %s!\n", name);
} else {
printf("请输入联系人籍贯:");
scanf("%s", contacts[index].hometown);
printf("请输入联系人电话1:");
scanf("%s", contacts[index].phone1);
printf("请输入联系人电话2:");
scanf("%s", contacts[index].phone2);
printf("请输入联系人电子邮箱:");
scanf("%s", contacts[index].email);
printf("联系人 %s 已修改!\n", name);
}
}
void deleteContact() {
char name[MAX_NAME_LEN];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int index = findContact(name);
if (index == -1) {
printf("没有找到联系人 %s!\n", name);
} else {
for (int i = index; i < numContacts - 1; i++) {
contacts[i] = contacts[i + 1];
}
numContacts--;
printf("联系人 %s 已删除!\n", name);
}
}
int main() {
int choice;
while (1) {
printMenu();
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact();
break;
case 2:
browseContacts();
break;
case 3:
searchContact();
break;
case 4:
modifyContact();
break;
case 5:
deleteContact();
break;
case 6:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效选项,请重新输入!\n");
}
}
return 0;
}
```
该程序使用结构体数组来存储联系人信息,通过菜单方式实现各种操作。当联系人数达到最大值时,添加操作将不再添加新联系人。在查询、修改和删除操作中,程序将要求用户输入联系人姓名,通过姓名在联系人数组中查找对应联系人。如果找不到该联系人,程序将给出相应提示。
阅读全文