首页 > 其他分享 >通讯录

通讯录

时间:2023-05-05 21:33:47浏览次数:32  
标签:head scanf 联系人 link 通讯录 printf NULL

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<Windows.h>
void ShowMenu()
{
puts("****************************");
puts("***欢迎使用通讯录管理系统***");
puts("******-----------------*****");
puts("* 1.添加新建联系人 *");
puts("* 2.显示已有联系人 *");
puts("* 3.删除已有联系人 *");
puts("* 4.查找已有联系人 *");
puts("* 5.修改已有联系人 *");
puts("* 6.清空已有联系人 *");
puts("* 0.退出联系人系统 *");
puts("****************************");

}
typedef struct link
{
char name[10];
char sex[3];
char phone[15];
char house[30];
struct link *next;

}link;
link *Deletenew(link *head)
{
char a[10];
printf("请输入您要删除的联系人的名字:\n");
scanf("%s", a);
fflush(stdin);
link *p = head, *pr = NULL;
if (head == NULL)
{
printf("没有联系人哦~\n");
exit(0);
}
while (strcmp(p->name, a)&&p!=NULL)
{
pr = p;
p = p->next;
}
if (p != NULL)
{
pr->next = p->next;
free(p);
}
else
{
printf("没有找到该联系人!\n");
}

}
void givenew(link *p)
{
printf("请输入姓名:\n");//给新建的联系人赋值
scanf("%s", p->name);
fflush(stdin);
puts("请输入性别");
puts("1--男 0--女");
int sex1;
do
{
scanf("%d", &sex1);
fflush(stdin);
if (sex1 == 1)
{
strcpy(p->sex, "男");
}
else if (sex1 == 0)
{
strcpy(p->sex, "女");
}
else
{
printf("请重新输入!\n");
}
} while (sex1 != 1 && sex1 != 0);
printf("请输入其联系电话:\n");
scanf("%s", p->phone);
fflush(stdin);
printf("请输入其家庭住址:\n");
scanf("%s", p->house);
}

link *addnew(link *head)
{
link *p, *pr=head;
p = (link *)malloc(sizeof(link));
if (p == NULL)
{
printf("没有足够的储存空间!");
exit(0);
}
if (head == NULL)
{
head = p;
}
else
{
while (pr->next != NULL) pr = pr->next;
pr->next = p;
}
givenew(p);
p->next = NULL;
return head;
}
void show(link *head)
{
link *p = head; int i = 0;
while (p != NULL)
{
i++;
printf("%d.%s\t%s\t%s\t%s\t\n", i, p->name, p->sex, p->phone, p->house);
p = p->next;
}

}
void DeleteM(link *head)
{
link *p = NULL, *pr = head;
while (pr!=NULL)
{
p = pr;
pr = pr->next;
free(p);
}

}
link *find(link *head)
{
link *p = head;
char a[10];
printf("请输入您要查找的联系人:\n");
scanf("%s", a);
if (head == NULL)
{
printf("没有联系人哦~\n");
exit(0);
}
while (strcmp(p->name, a) && p != NULL)
{
p = p->next;
}
if (p == NULL)
{
printf("没有找到该联系人!\n");
exit(0);
}
else
{
return p;
}
}
void fix(link *head)
{
link *p = head;
char a[10];
printf("请输入您要修改的联系人:\n");
scanf("%s", a);
if (head == NULL)
{
printf("没有联系人哦~\n");
exit(0);
}
while (strcmp(p->name, a) && p != NULL)
{
p = p->next;
}
if (p == NULL)
{
printf("没有找到该联系人!\n");
exit(0);
}
else
{
printf("请输入您要修改的内容:1.名字 2.性别 3.电话 4.住址:\n");
int b; scanf("%d", &b);
switch (b)
{
case 1:printf("请输入修改后的名字:\n");
scanf("%s", p->name);
break;
case 2:printf("请输入修改后的性别:1.男 0.女");
int c;
do
{
scanf("%d", &c);
if (c == 1) strcpy(p->sex, "男");
else if (c == 0) strcpy(p->sex, "女");
else printf("请重新输入!");
} while (c != 1 && c != 0);
break;
case 3:printf("请输入修改后的电话:\n");
scanf("%s", p->phone);
break;
case 4:printf("请输入修改后的住址:\n");
scanf("%s", p->house);
break;

}
}

}

int main()
{
link *head = NULL;
while (1)
{
system("cls");
//head=addnew(head);
//show(head);
ShowMenu();
int choose;
scanf("%d", &choose);
switch (choose)
{
case 0:
printf("欢迎下次使用!\n");
DeleteM(head);
return 0;
case 1:
head = addnew(head);
printf("已完成当前操作,即将返回主页面!\n");
system("pause");
break;
case 2:
show(head);
printf("已完成当前操作,即将返回主页面!\n");
system("pause");
break;
case 3:
Deletenew(head);
show(head);
printf("已完成当前操作,即将返回主页面!\n");
system("pause");
break;
case 4:
{
link *pn = NULL;
pn = find(head);
printf("%s\t%s\t%s\t%s\t\n", pn->name, pn->sex, pn->phone, pn->house);
printf("已完成当前操作,即将返回主页面!\n");
system("pause");
break;
}
case 5:
fix(head);
show(head);
printf("已完成当前操作,即将返回主页面!\n");
system("pause");
break;
case 6:
printf("这样做会造成无法找回的联系人,您确定这么做吗?(Y/N)\n");
char c; scanf(" %c", &c);
if (c == 'y' || c == 'Y')
{
DeleteM(head);
head = NULL;
}
else
{
continue;
}
printf("已完成当前操作,即将返回主页面!\n");
system("pause");
}

}
DeleteM(head);
}

标签:head,scanf,联系人,link,通讯录,printf,NULL
From: https://www.cnblogs.com/luoqingci/p/17375423.html

相关文章

  • 通过跳转至系统通讯录方式,添加新的联系人,或编辑已有联系人
    ·需求:将联系人信息通过跳转至系统通讯录联系人编辑界面的方式,添加新的联系人,或是更新到已有联系人。联系人信息主要是姓名和电话号码,其中电话号码是list列表,可能为多个号码。·重点:如何将信息更新至已有联系人中·参考文章:https://juejin.cn/post/6953963082339057672·实......
  • C++实现通讯录管理系统
    C++实现简单的通讯录管理系统1.功能设计通讯录是一个可以记录亲人、好友信息的工具。本代码主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下:●添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人●显示联系人:显......
  • 通讯录管理系统
    这段代码是对c语言的复习,也是复习之前学过的链表#include<stdio.h>#include<stdlib.h>#include<string.h>#include<Windows.h>voidShowMenu(){ puts("****************************"); puts("***欢迎使用通讯录管理系统***"); puts("******---------------......
  • 通讯录的思路与实现(C语言)
     目录前言程序的分装程序的结构函数实现通讯录的初始化通讯录的扩容将数据保存到本地增加联系人显示通讯录所有联系人目标联系人的检索(根据名称)目标联系人的检索(根据号码)检索发展来的函数删除联系人查询目标联系人联系人信息的更改按名称对通讯录进行排序找到属于目标类别的联......
  • C++通讯录管理系统
    编辑器vs2019代码如下:#include<iostream>usingnamespacestd;#defineMAX1000//最大人数//联系人信息结构体structPerson{ stringm_name; //性别1男2女 intm_sex; intm_age; stringm_phone; stringm_addr;};//通讯录结构体structAddressbo......
  • 苹果手机通讯录备份用什么工具 苹果手机通讯录备份到本地方法
    随着科技的发展,视频通话成为主流的交流方式。但手机通讯仍然是使用最多的功能,因此手机的通讯录是非常重要的。通讯录中保存着非常多重要的联系方式。很多用户担心手机丢失,因......
  • [ c ] 文件操作详解———通讯录
    本文主要介绍了C语言中有关文件的基础知识与基本操作,对涉及到的操作函数进行了详细解释,同时以笔者自己的理解,对函数的命名进行了一些探究,并以通讯录为例,做了打开存储等演示......
  • 动态增长的通讯录用C语言实现代码
    test.c#define_CRT_SECURE_NO_WARNINGS1#include"contact.h"voidmenu(){printf("*******************************************************\n");printf("*******......
  • 动态内存管理——通讯录
    本文主要介绍通讯录的动态实现,静态版可见此文——>静态通讯录,文章主要介绍了两次实现的不同,以及涉及到的基本知识。希望可以帮助到大家。一、动态内存函数1、申请函数a......
  • 【C版本】静态通讯录与动态通讯录的实现,以及各自所存在的缺陷对比。(含所有原码)
    @​​TOC​静态版本通讯录前期思路与之前的扫雷以及三子棋的实现方式是一样的,创建两个源文件,一个用来测试,一个用来存放函数定义,再创建一个头文件,用来存放函数声明。接下来是......