void Alter(LinkList head)
{
int loop = 0;
int n;
char name[10];
printf("请输入要查询联系人的姓名 [ ]\b\b\b\b\b\b");
scanf("%s", name);
printf("\n");
LinkList rear = head->next;
while (rear)
{
if (strcmp(rear->data.name, name) == 0)
{
printf("请输入要修改的内容:(1)编号 (2)姓名 (3)性别 (4)电话号码 (5)全部信息 [ ]\b\b");//printf("%s\t%s\t%s\t%s\n",rear->data.num,rear->data.name,rear->data.sex,rear->data.phone);
scanf("%d", &n);
printf("\n");
switch (n)
{
case 1: printf("请输入修改后的编号:"); scanf("%s", rear->data.num); break;
case 2: printf("请输入修改后的姓名:"); scanf("%s", rear->data.name); break;
case 3: printf("请输入修改后的性别:"); scanf("%s", rear->data.sex); break;
case 4: printf("请输入修改后的电话号码"); scanf("%s", rear->data.phone); break;
case 5: printf("请输入要修改联系人的信息: \n\n编号 姓名 性别 电话号码:\n");
scanf("%s", rear->data.num);
scanf("%s", rear->data.name);
scanf("%s", rear->data.sex);
scanf("%s", rear->data.phone); break;
}
system("cls");
loop = 1;
}
rear = rear->next;
}
if (loop == 0)
{
printf("无此联系人!!!\n\n返回菜单(1) or 重新输入(2)[ ]\b\b\b");
scanf("%d", &n);
printf("\n");
switch (n)
{
case 1:system("cls"); Menu(head); break;
case 2:system("cls"); Alter(head); break;
}
}
save(head);
printf("\n修改成功!返回菜单\n");
system("pause");
Menu(head);
}
void Delete(LinkList head)
{
LinkList rear = head;//用来找要删除节点的前一节点
LinkList p = rear->next;//用来找要删除节点
char name[10];
int Loop = 0, n;
printf("请输入要删除联系人的姓名:[ ]\b\b\b\b\b");
scanf("%s", name);
printf("\n");
while (p)
{
if (strcmp(p->data.name, name) == 0)
{
rear->next = p->next;
free(p);
save(head);
Loop = 1;
}
rear = p;
p = p->next;
}
if (Loop == 1)
{
printf("\n删除联系人成功!返回菜单\n");
system("pause");
Menu(head);
}
else
{
printf("无此联系人!!!\n\n返回菜单(1) or 重新输入(2)[ ]\b\b\b");
scanf("%d", &n);
printf("\n");
switch (n)
{
case 1:system("cls"); Menu(head); break;
case 2:system("cls"); Delete(head); break;
}
}
}
void Statis_sex(LinkList head)
{
int i = 0;//记录男性数目
int j = GetLength(head);//获取总记录数
LinkList rear = head->next;
char sex[10] = "man";
while (rear)
{
if (strcmp(rear->data.sex, sex) == 0)
i++;
rear = rear->next;
}
printf("\n通信录中男性有 %d 人,有女性 %d 人。\n", i, j - i);
}
void Quit()
{
printf("\n\t ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★\n\n");
puts("\n");
puts("\t ┃ ┃");
puts("\t ┃ ┃");
puts("\t ┃ 感谢访问通信录管理系统!欢迎下次再来! ┃");
puts("\t ┃ ┃");
puts("\t ┃ ┃");
puts("\t ┃ 制作人:追足梦幻 ┃");
puts("\t ┃ 2020.7.3 ┃ ");
puts("\n ");
}
void Menu(LinkList head)
{
int n;
int choice = 0;
do
{
system("cls");
printf("\n");
printf(" ---通讯录管理系统---\n");
puts("\n");
printf(" 1/按姓名查询联系人信息\n");
puts("\n");
printf(" 2/ 新建联系人\n");
puts("\n");
printf(" 3/修改联系人信息\n");
puts("\n");
printf(" 4/ 删除联系人信息\n");
puts("\n");
printf(" 5/显示所有联系人信息\n");
puts("\n");
printf(" 6/ 退出\n");
puts("\n");
printf(" 请选择服务种类(1-6) : [ ]\b\b");
scanf("%d", &n);
if (n < 1 || n>6)
{
system("cls");
printf("选择错误! 请重新选择!\n");
system("pause");
choice = 1;
}
else
{
break;
}
} while (choice == 1);
switch (n)
{
case 1:system("cls"); Find(head); break;//Find函数查询
case 2:system("cls"); Add(head); break;//Add函数新建联系人
case 3:system("cls"); Alter(head); break;//Alter修改联系人信息
case 4:system("cls"); Delete(head); break;//Delete删除联系人信息
case 5:system("cls"); List(head); break;//List显示所有信息
case 6:system("cls"); Quit(); break;//退出
}
}
int main()
{
LinkList head = InitList();
head = Create(head);
printf("\n信息录入成功!");
system("pause");
Menu(head);
}
通讯录管理第三部分
最新推荐文章于 2023-10-11 17:33:39 发布