第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/8/3 22:33:55 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

/*********在通讯录链表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

搜索更多关于: 数据结构课程设计之通讯录管理系统 的文档
数据结构课程设计之通讯录管理系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c65qdl45dln47hq710ej5_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top