快捷搜索:  汽车  科技

c语言通讯录的管理系统设计(CC项目开发)

c语言通讯录的管理系统设计(CC项目开发)4. 将通讯录保存在文件中3. 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询完成一个通讯录管理系统,具体要求如下:1. 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等2. 能够提供添加、删除和修改通讯录信息的功能

hello,各位小伙伴们大家好!你们今天有敲代码嘛?

如果有熟悉的小伙伴看到我,就知道又可以来学习源码项目了!没错,咱们今天要分享的同样也是经典管理系统项目之一:通讯录管理系统!我们一起来看看吧!

知识点:C语言,链表

开发工具:VS2022/2019(没有VS的话也可以来文末领取哦)

c语言通讯录的管理系统设计(CC项目开发)(1)

完成一个通讯录管理系统,具体要求如下:

1. 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等

2. 能够提供添加、删除和修改通讯录信息的功能

3. 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询

4. 将通讯录保存在文件中

5. 能够按表格方式输出通讯录信息

6. 退出程序


也不说太多多余的话了,先看一下效果图:

c语言通讯录的管理系统设计(CC项目开发)(2)

为了照顾那些想要快速完成项目设计的同学,咱们就不进行源码的解析了,直接上全部源码吧!

源码分享:

#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->next=NULL; r=L; //尾节点 for(i=0;i<m;i ) { s=(LinkList)malloc(sizeof(ListNode)); //新建的节点 printf("输入第%d位编号:" i 1); 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->next=NULL; r->next=s; //插入尾节点之后 r=s; } } int ListLength(LinkList L) //求通讯录链表的长度 { LinkList p; int length=0; p=L->next; while(p) { length ; p=p->next; } return length; } int ListInsert(LinkList &L int i DataType d) //通讯录链表的插入 { LinkList p s; int length; length=ListLength(L); p=L->next; int j=1; if(!p||i>length 1) //如果是空表或者查询位置不符合要求 return 0; while(p&&j<i-1) //使p指向要添加位置的前一个元素 { p=p->next; j ; } s=(LinkList)malloc(sizeof(LinkList)); s->data=d; s->next=p->next; p->next=s; return 1; } int ListDelete(LinkList &L int i) { LinkList p q;//p为要删除的前一个节点,q为要删除的节点 p=L; int j=0; int length; length=ListLength(L); if(!p||i>length) //如果是空表或者查询位置不符合要求 return 0; while(p&&j<i-1) //使p指向要删除位置的前一个元素 { p=p->next; j ; } q=p->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->next=q->next; return 1; } int GetElem(LinkList L int i DataType &d) //查询第i个成员信息 { LinkList p; p=L->next; int j=1; int length; length=ListLength(L); if(!p||i>length) //如果是空表或者查询位置不符合要求 return 0; while(j<i) {p=p->next; j ; } d=p->data; return 1; } void print(LinkList L) //打印通讯录人员信息 { LinkList p; p=L->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); p=p->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; }

对于C/C 感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C 的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

通讯录管理系统就到此结束啦,大家赶紧试试吧!

粉丝群&(同时也是更多源码素材获取通道):

猜您喜欢: