凡客诚品的网站特色,wordpress 字段引入,优设网站官网,网站图片优化的概念点击蓝字关注我们因公众号更改推送规则#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络#xff0c;侵删hello#xff0c;各位小伙伴们大家好#xff01;你们今天有敲代码嘛#xff1f;如果有熟悉的小伙伴看到我#xff0c;就知道又可以来学习源码…点击蓝字关注我们因公众号更改推送规则请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络侵删hello各位小伙伴们大家好你们今天有敲代码嘛如果有熟悉的小伙伴看到我就知道又可以来学习源码项目了没错咱们今天要分享的同样也是经典管理系统项目之一通讯录管理系统我们一起来看看吧知识点C语言链表开发工具VS2022/2019没有VS的话也可以来文末领取哦完成一个通讯录管理系统具体要求如下1. 建立通讯录信息信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等2. 能够提供添加、删除和修改通讯录信息的功能3. 能够提供安不同方式查询的功能如按姓名或年龄、电话等查询4. 将通讯录保存在文件中5. 能够按表格方式输出通讯录信息6. 退出程序也不说太多多余的话了先看一下效果图为了照顾那些想要快速完成项目设计的同学咱们就不进行源码的解析了直接上全部源码吧源码分享#include stdlib.h
typedef struct //定义每个人员信息结构体
{
char num[5]; //编号
char name[9];//姓名
char sex[3]; //性别
char phone[13]; //电话
char addr[31]; //地址 }DataType;
typedef struct node //定义链表类型 {DataType data; //数据域
struct node *next; //指针域 }ListNode;
typedef ListNode *LinkList;
void CreateList(LinkList L,int m)//通讯录链表的建立
{ int i;LinkList s,r;L(LinkList)malloc(sizeof(ListNode));L-nextNULL;rL; //尾节点 for(i0;im;i){ s(LinkList)malloc(sizeof(ListNode)); //新建的节点
printf(输入第%d位编号:,i1);
scanf(%s,s-data.num);
printf(\n输入姓名:);
scanf(%s,s-data.name);
printf(\n输入性别:);
scanf(%s,s-data.sex);
printf(\n输入电话:);
scanf(%s,s-data.phone);
printf(\n输入地址:);
scanf(%s,s-data.addr);s-nextNULL; r-nexts; //插入尾节点之后 rs;} }
int ListLength(LinkList L) //求通讯录链表的长度
{ LinkList p;
int length0;pL-next;
while(p){ length;pp-next;}
return length; }
int ListInsert(LinkList L,int i,DataType d) //通讯录链表的插入
{ LinkList p,s;
int length;lengthListLength(L); pL-next;
int j1;
if(!p||ilength1) //如果是空表或者查询位置不符合要求
return 0;
while(pji-1) //使p指向要添加位置的前一个元素 {pp-next;j;}s(LinkList)malloc(sizeof(LinkList));s-datad;s-nextp-next;p-nexts;
return 1;
}
int ListDelete(LinkList L,int i)
{ LinkList p,q;//p为要删除的前一个节点q为要删除的节点 pL;
int j0;
int length;lengthListLength(L);
if(!p||ilength) //如果是空表或者查询位置不符合要求
return 0;
while(pji-1) //使p指向要删除位置的前一个元素 { pp-next;j;}qp-next; //q指向后一个元素
printf(\n被删除的人员信息为\n);
printf(\n编号:%s 姓名:%s 性别:%s 电话:%s 地址:%s,q-data.num,q-data.name,q-data.sex,q-data.phone,q-data.addr);p-nextq-next;
return 1; }
int GetElem(LinkList L,int i,DataType d) //查询第i个成员信息
{ LinkList p;pL-next;
int j1;
int length;lengthListLength(L);
if(!p||ilength) //如果是空表或者查询位置不符合要求
return 0;
while(ji){pp-next;j;}dp-data;
return 1;}void print(LinkList L) //打印通讯录人员信息
{ LinkList p;pL-next;
while(p){
printf(\n编号:%s 姓名:%s 性别:%s 电话:%s 地址:%s,p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);pp-next;}}
void menu()
{ printf(--------------------------------------------1.通讯录链表的建立----------------------------------------------------------);
printf(\n--------------------------------------------2.通讯者节点的插入----------------------------------------------------------);
printf(\n--------------------------------------------3.通讯者节点的查询----------------------------------------------------------);
printf(\n--------------------------------------------4.通讯者节点的删除----------------------------------------------------------);
printf(\n--------------------------------------------5.通讯录链表的输出----------------------------------------------------------);
printf(\n--------------------------------------------0.退出管理系统--------------------------------------------------------------);}
int main()
{LinkList L;DataType d,d1;
int m,location,length,choose;menu();p:
printf(\n请输入你的选项);
scanf(%d,choose);
switch(choose){ case 1:printf(请输入通讯录人数:);scanf(%d,m);CreateList(L,m);goto p;
case 2:printf(\n输入要插入的位置);scanf(%d,location);printf(输入插入人员的编号); scanf(%s,d.num);printf(\n输入姓名:); scanf(%s,d.name); printf(\n输入性别:);scanf(%s,d.sex);printf(\n输入电话:);scanf(%s,d.phone);printf(\n输入地址:);scanf(%s,d.addr);ListInsert(L,location,d);goto p;
case 3:printf(\n请输入查询位置);scanf(%d,location);GetElem(L,location,d); printf(查询到的人员信息为\n);printf(\n编号:%s 姓名:%s 性别:%s 电话:%s 地址:%s,d.num,d.name,d.sex,d.phone,d.addr);goto p;
case 4:printf(\n输入要删除的位置);scanf(%d,location);ListDelete(L,location);goto p;
case 5:print(L);goto p;
case 0:printf(系统已退出。);exit(0);
default:printf(输入错误,请重新输入);goto p;}
return 0;}如果你年满18周岁以上又觉得学【C语言】太难想尝试其他编程语言那么我推荐你学Python现有价值499元Python零基础课程限时免费领取限10个名额▲扫描二维码-免费领取戳“阅读原文”我们一起进步