云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构课程设计之通讯录管理系统

数据结构课程设计之通讯录管理系统

  • 62 次阅读
  • 3 次下载
  • 2025/6/16 13:36:14

/*********在通讯录链表head中插入结点************/ void InsertNode(LinkList head,ListNode *p) {

ListNode *p1,*p2; p1=head;

p2=p1->next;

while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0) {

p1=p2; /*p1指向刚访问过的结点*/

p2=p2->next; /*p2指向表的下一个结点*/ }

p1->next=p; /*插入p所指向的结点*/ p->next=p2; /*连接表中剩余的结点*/ }

/**********有序通讯录链表的查找 ****************/ ListNode *ListFind(LinkList head) {

ListNode *p; char num[5]; char name[9]; char pp;

printf(\ printf(\按编号查询 \\n\ printf(\按姓名查询 \\n\ printf(\ printf(\请 选 择: \ p=head->next; scanf(\

if (pp=='a'||pp=='A') {

printf(\请输入要查找者的编号:\ scanf(\

while (p&&strcmp(p->data.num,num)!=0) p=p->next;

if ((p==NULL)) p=NULL; /*没有查到要查找的通讯信息*/ } else

if (pp=='b'||pp=='B') {

printf(\请输入要查找者的姓名:\ scanf(\

12

while(p&&strcmp(p->data.name,name)!=0) p=p->next; }

return p; }

/********通讯录链表上的结点删除*****************/ void DelNode(LinkList head) {

char cho;

ListNode *p,*q; p=ListFind(head); /*调用查找函数*/ if (p==NULL) {

printf(\没有查到要删除的通讯者!\\n\ return; }

else if(p!=NULL) {

printf(\真的要删除该结点吗?(y/n)\ scanf(\

if (cho=='y'||cho=='Y') {

q=head;

while ((q!=NULL)&&(q->next!=p)) q=q->next; q->next=p->next; /*删除结点*/

free(p); /*释放被删结点空间*/ printf(\删除成功!\\n\ } } }

/********通讯录链表的输出函数 **********/ void PrintList(LinkList head) {

ListNode *p; p=head->next;

printf(\编号 姓 名 性别 联系电话 地址 \\n\

printf(\ while (p!=NULL) {

13

printf(\>data.phone,p->data.addr);

printf(\ p=p->next; /*后移一个结点*/ } }

void main() {

int choice,j=1; while(j) {

printf(\

printf(\通 信 录 链 表 \\n\

printf(\ printf(\.通讯录链表的建立 *\ printf(\.通讯者结点的插入 *\ printf(\.通讯者结点的查询 *\ printf(\.通讯者结点的删除 *\ printf(\.通讯录链表的输出 *\ printf(\.退出通讯录管理系统 *\ printf(\ printf(\请选择菜单号(0--5):\ scanf(\ getchar(); switch(choice) {

case 1: {

printf(\ printf(\通 讯 录 链 表 的 建 立 *\\n\ printf(\ head=CreateList( ); flag1=1;

system(\ break; }

case 2: {

if(flag1!=1)

{printf(\请先建立表!\ getchar();

14

system(\ else {

printf(\ printf(\通 讯 者 信 息 的 添 加 *\\n\ printf(\ printf(\编号 姓名 性别 电话 地址 \\n\

printf(\ p=(ListNode *)malloc(sizeof(ListNode)); /*申请新结点*/

printf(\添加的编号:\\n\ scanf(\ printf(\添加的姓名:\\n\ scanf(\ printf(\性别:\\n\ scanf(\ printf(\电话:\\n\

scanf(\ printf(\地址:\\n\

scanf(\ InsertNode(head,p); system(\ break; }

case 3: {

if(flag1!=1) {

printf(\请先建立表!\ getchar(); system(\ } else {

printf(\ printf(\通 讯 录 信 息 的 查 询 *\\n\ printf(\ p=ListFind(head); if (p!=NULL) {

printf(\编号 姓 名 性别 联系电话 地址 \\n\

printf(\

15

搜索更多关于: 数据结构课程设计之通讯录管理系统 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

/*********在通讯录链表head中插入结点************/ void InsertNode(LinkList head,ListNode *p) { ListNode *p1,*p2; p1=head; p2=p1->next; while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0) { p1=p2; /*p1指向刚访问过的结点*/ p2=p2->next; /*p2指向表的下一个结点*/ } p1->next=p; /*插入p所指向的结点*/ p->next=p2; /*连接

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com