c语言个人通信录管理系统课程设计报告(3)

2025-10-20

}

/*建立通信录函数*/

struct per *jianli() /*创建链表,并返回表头指针*/ {

struct per *head; /*表头*/ struct per *p1; /*新建节点*/ struct per *p2; /*表尾节点*/ long int num1; char name1[20]; char tel1[12]; char mail1[30]; char add1[50]; long int mnum1; char id1[18];

head=NULL; /*无任何节点,表头指向空*/

printf(\请输入联系人编号、姓名、电话、身份证号、邮箱、地址及邮编(用空格分隔,

用0结束)\\n\

scanf(\

while(num1!=0) /*假设num=0表示输入结束*/ {

scanf(\读入

第一个联系人的信息*/

p1=(struct per *)malloc(sizeof(struct per)); /*新建一个节点*/ p1->num=num1; /*存入联系人的信息*/ strcpy(p1->name,name1); strcpy(p1->tel,tel1); strcpy(p1->id,id1); strcpy(p1->mail,mail1); strcpy(p1->add,add1); p1->mnum=mnum1;

p1->next=NULL; /*将next域置为空,表示尾节点*/

- 8 -

}

}

if(head==NULL)

head=p1; /*第一个新建节点是表头*/

else

p2->next=p1; /*原表尾的下一个节点是新节点*/

p2=p1; /*新建节点成为表尾*/ scanf(\

return head; /*返回表头指针*/

/*输出通信录函数*/

void shuchu(struct per *head) {

struct per *p;

int n=0; /*统计节点数,即联系人数*/

printf(\通*******信*******录*******************\\n\printf(\编号\姓名\电话号码\身份

证号\邮箱\地址\邮编\ */

printf(\

{

if(head!=NULL) {

for(p=head;p!=NULL;p=p->next) /*如果到达尾节点退出循环,否则继续

ail,p->add,p->mnum);

} else

- 9 -

}

n++;

printf(\联系人总数:%d\\n\\n\

}

printf(\对不起,该通信录中没有任何联系人!\\n\\n\

/*添加联系人函数*/

struct per*tianjia(struct per*head) {

struct per*p; struct per*p1; struct per*p2; p2=head;

p=(struct per*)malloc(sizeof(struct per)); /*新建节点p*/ printf(\请输入要添加的联系人的编号、姓名、电话、身份证号、邮箱、地址、邮编:\\n\scanf(\

>mnum);

printf(\成功添加联系人%s !\\n\if(head==NULL) { } else {

while((p->num>p2->num)&&(p2->next!=NULL)) /*查找添加位置*/ { }

if(p->num<=p2->num) /*从小到大排列,添加至表内*/ {

if(p2==head) {

- 10 -

head=p; p->next=NULL;

p1=p2; p2=p2->next;

}

}

}

}

head=p; p->next=p2;

else { }

p1->next=p; p->next=p2;

else /*添加至表尾*/ { }

p2->next=p; p->next=NULL;

return(head);

/*删除联系人函数*/

struct per * shanchu(struct person*head) {

struct per *p2; struct per *p1; int num1,n;

printf(\请输入要删除的联系人编号:\根据输入信息查找联系人*/ scanf(\if(head==NULL) { }

- 11 -

printf(\通讯录为空\\n\\n\return(head);

p2=head;

while(num1 != p2-> num && p2->next !=NULL) { }

if(num1==p2->num) {

printf(\成功查询到该联系人!\\n\

printf(\编号\姓名\电话号码\p1=p2; p2=p2->next;

身份证号\邮箱\地址\邮编\

printf(\

->mail,p2->add,p2->mnum); }

- 12 -

}

printf(\确定删除? 1确定 0取消 \scanf(\switch(n) { case 1: {if(p2==head)

head=p2->next;

else

p1->next=p2->next;

free(p2);

printf(\成功删除编号为%ld的联系人!\\n\\n\case 0: }

printf(\您取消了删除任务,联系人未被删除!\\n\break;

else

printf(\对不起,该通信录中没有任何联系人!\\n\\n\

return(head);


c语言个人通信录管理系统课程设计报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:九年级数学专题复习 专题一 实数

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219