用c语言实现通讯录功能 要求:存储若干人的信息,每个人的信息包括:姓名,性别,年龄,电话号码,住址。此通讯录系统的功能包括:(1)增加联系人(2)删除对应的联系人(3)查找联系人4.修改联系人的信息5.排序此通讯录6.打印出通讯录每个人的信息。
时间: 2024-03-03 08:47:07 浏览: 33
好的,这是一个典型的C语言实现通讯录功能的问题。以下是一个简单的实现示例,其中包含了上述所提到的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100
typedef struct {
char name[30];
char gender[10];
int age;
char phone[20];
char address[100];
} Contact;
Contact contacts[MAX_CONTACTS];
int num_contacts = 0;
void add_contact() {
if (num_contacts >= MAX_CONTACTS) {
printf("通讯录已满,无法添加新联系人!\n");
return;
}
Contact new_contact;
printf("请输入联系人的姓名:");
scanf("%s", new_contact.name);
printf("请输入联系人的性别:");
scanf("%s", new_contact.gender);
printf("请输入联系人的年龄:");
scanf("%d", &new_contact.age);
printf("请输入联系人的电话号码:");
scanf("%s", new_contact.phone);
printf("请输入联系人的地址:");
scanf("%s", new_contact.address);
contacts[num_contacts++] = new_contact;
printf("联系人添加成功!\n");
}
void delete_contact() {
char name[30];
printf("请输入要删除的联系人的姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
found = 1;
for (int j = i; j < num_contacts - 1; j++) {
contacts[j] = contacts[j + 1];
}
num_contacts--;
printf("联系人删除成功!\n");
break;
}
}
if (!found) {
printf("未找到要删除的联系人!\n");
}
}
void search_contact() {
char name[30];
printf("请输入要查找的联系人的姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
found = 1;
printf("联系人的信息如下:\n");
printf("姓名:%s\n", contacts[i].name);
printf("性别:%s\n", contacts[i].gender);
printf("年龄:%d\n", contacts[i].age);
printf("电话号码:%s\n", contacts[i].phone);
printf("地址:%s\n", contacts[i].address);
break;
}
}
if (!found) {
printf("未找到要查找的联系人!\n");
}
}
void modify_contact() {
char name[30];
printf("请输入要修改的联系人的姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
found = 1;
printf("请输入联系人的新信息:\n");
printf("请输入联系人的姓名:");
scanf("%s", contacts[i].name);
printf("请输入联系人的性别:");
scanf("%s", contacts[i].gender);
printf("请输入联系人的年龄:");
scanf("%d", &contacts[i].age);
printf("请输入联系人的电话号码:");
scanf("%s", contacts[i].phone);
printf("请输入联系人的地址:");
scanf("%s", contacts[i].address);
printf("联系人信息修改成功!\n");
break;
}
}
if (!found) {
printf("未找到要修改的联系人!\n");
}
}
void sort_contacts() {
for (int i = 0; i < num_contacts - 1; i++) {
for (int j = 0; j < num_contacts - 1 - i; j++) {
if (strcmp(contacts[j].name, contacts[j + 1].name) > 0) {
Contact temp = contacts[j];
contacts[j] = contacts[j + 1];
contacts[j + 1] = temp;
}
}
}
printf("通讯录已排序!\n");
}
void print_contacts() {
printf("通讯录中的联系人如下:\n");
for (int i = 0; i < num_contacts; i++) {
printf("姓名:%s\n", contacts[i].name);
printf("性别:%s\n", contacts[i].gender);
printf("年龄:%d\n", contacts[i].age);
printf("电话号码:%s\n", contacts[i].phone);
printf("地址:%s\n", contacts[i].address);
printf("\n");
}
}
int main() {
int choice;
while (1) {
printf("请选择要进行的操作:\n");
printf("1.增加联系人\n");
printf("2.删除联系人\n");
printf("3.查找联系人\n");
printf("4.修改联系人的信息\n");
printf("5.排序通讯录\n");
printf("6.打印通讯录\n");
printf("7.退出程序\n");
printf("请输入数字选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact();
break;
case 2:
delete_contact();
break;
case 3:
search_contact();
break;
case 4:
modify_contact();
break;
case 5:
sort_contacts();
break;
case 6:
print_contacts();
break;
case 7:
printf("程序已退出!\n");
exit(0);
default:
printf("无效的选择,请重新输入!\n");
}
}
return 0;
}
```
这段代码使用了结构体来存储联系人的信息,并使用了数组来存储多个联系人。通过一个无限循环和 switch 语句来实现用户选择不同的操作。每一个操作都是一个函数,实现了相应的功能。在实现时,还需要注意一些边界条件和错误处理,以确保程序的稳定性和可靠性。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)