C语言实现一个通讯录的项目,包括添加 查找 修改 删除 显示 排序等等最基本的功能, 请你帮我写一下具体代码
时间: 2024-02-13 22:06:51 浏览: 69
好的,下面是一个简单的通讯录项目的 C 语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义最大联系人数
#define MAX_CONTACTS 100
// 定义联系人结构体
typedef struct {
char name[50]; // 姓名
char phone[20]; // 电话号码
} Contact;
// 定义全局变量存储联系人信息
Contact contacts[MAX_CONTACTS];
int num_contacts = 0; // 当前联系人数
// 声明函数
void add_contact();
void find_contact();
void edit_contact();
void delete_contact();
void display_contacts();
void sort_contacts();
int main()
{
int choice;
while (1) {
printf("\n1. 添加联系人\n");
printf("2. 查找联系人\n");
printf("3. 修改联系人\n");
printf("4. 删除联系人\n");
printf("5. 显示所有联系人\n");
printf("6. 按姓名排序联系人\n");
printf("0. 退出程序\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 0:
printf("\n感谢使用通讯录程序,再见!\n\n");
return 0;
case 1:
add_contact();
break;
case 2:
find_contact();
break;
case 3:
edit_contact();
break;
case 4:
delete_contact();
break;
case 5:
display_contacts();
break;
case 6:
sort_contacts();
break;
default:
printf("\n非法操作,请重新选择!\n");
}
}
return 0;
}
// 添加联系人
void add_contact()
{
if (num_contacts >= MAX_CONTACTS) {
printf("\n通讯录已满,无法添加联系人!\n");
return;
}
printf("\n请输入联系人姓名:");
scanf("%s", contacts[num_contacts].name);
printf("请输入联系人电话号码:");
scanf("%s", contacts[num_contacts].phone);
num_contacts++;
printf("\n联系人添加成功!\n");
}
// 查找联系人
void find_contact()
{
char name[50];
int i, found = 0;
printf("\n请输入要查找的联系人姓名:");
scanf("%s", name);
for (i = 0; i < num_contacts; i++) {
if (strcmp(name, contacts[i].name) == 0) {
found = 1;
printf("\n联系人信息如下:\n");
printf("姓名:%s\n", contacts[i].name);
printf("电话:%s\n", contacts[i].phone);
break;
}
}
if (!found) {
printf("\n未找到该联系人!\n");
}
}
// 修改联系人
void edit_contact()
{
char name[50];
int i, found = 0;
printf("\n请输入要修改的联系人姓名:");
scanf("%s", name);
for (i = 0; i < num_contacts; i++) {
if (strcmp(name, contacts[i].name) == 0) {
found = 1;
printf("\n请输入新的电话号码:");
scanf("%s", contacts[i].phone);
break;
}
}
if (!found) {
printf("\n未找到该联系人!\n");
} else {
printf("\n联系人修改成功!\n");
}
}
// 删除联系人
void delete_contact()
{
char name[50];
int i, found = 0;
printf("\n请输入要删除的联系人姓名:");
scanf("%s", name);
for (i = 0; i < num_contacts; i++) {
if (strcmp(name, contacts[i].name) == 0) {
found = 1;
num_contacts--;
for (; i < num_contacts; i++) {
strcpy(contacts[i].name, contacts[i+1].name);
strcpy(contacts[i].phone, contacts[i+1].phone);
}
break;
}
}
if (!found) {
printf("\n未找到该联系人!\n");
} else {
printf("\n联系人删除成功!\n");
}
}
// 显示所有联系人
void display_contacts()
{
int i;
if (num_contacts == 0) {
printf("\n通讯录为空!\n");
} else {
printf("\n所有联系人如下:\n");
for (i = 0; i < num_contacts; i++) {
printf("%d. 姓名:%s,电话:%s\n", i+1, contacts[i].name, contacts[i].phone);
}
}
}
// 按姓名排序联系人
void sort_contacts()
{
int i, j;
Contact temp;
if (num_contacts == 0) {
printf("\n通讯录为空,无法排序!\n");
return;
}
for (i = 0; i < num_contacts-1; i++) {
for (j = i+1; j < num_contacts; j++) {
if (strcmp(contacts[i].name, contacts[j].name) > 0) {
temp = contacts[i];
contacts[i] = contacts[j];
contacts[j] = temp;
}
}
}
printf("\n联系人排序成功!\n");
}
```
这是一个比较简单的通讯录项目,实现了添加、查找、修改、删除、显示所有联系人和按姓名排序联系人等基本功能。当然,你可以根据自己的需求对代码进行修改和扩展。
阅读全文