南航c语言课程设计报告电话簿管理系统.docx

上传人:b****3 文档编号:3552118 上传时间:2022-11-23 格式:DOCX 页数:11 大小:15.97KB
下载 相关 举报
南航c语言课程设计报告电话簿管理系统.docx_第1页
第1页 / 共11页
南航c语言课程设计报告电话簿管理系统.docx_第2页
第2页 / 共11页
南航c语言课程设计报告电话簿管理系统.docx_第3页
第3页 / 共11页
南航c语言课程设计报告电话簿管理系统.docx_第4页
第4页 / 共11页
南航c语言课程设计报告电话簿管理系统.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

南航c语言课程设计报告电话簿管理系统.docx

《南航c语言课程设计报告电话簿管理系统.docx》由会员分享,可在线阅读,更多相关《南航c语言课程设计报告电话簿管理系统.docx(11页珍藏版)》请在冰豆网上搜索。

南航c语言课程设计报告电话簿管理系统.docx

南航c语言课程设计报告电话簿管理系统

电话簿管理系统

一.程序功能:

电话簿管理系统要求实现一个电话薄系统的基本管理功能,包括录入、删除、查找、和导入/导出功能等。

1.创建电话簿;

2.

 

#include

#include

#include

#include

structtelebook

{charnum[4];

charname[10];

charphonenum[15];

charemail[20];

structtelebook*next;

};

typedefstructtelebookTeleBook;

intmenu_select();

TeleBook*s;

TeleBook*Create();

voidDisplay(TeleBook*head);

TeleBook*Insert(TeleBook*head,TeleBook*s);

TeleBook*Insert_a_record(TeleBook*head);

TeleBook*Delete(TeleBook*head,char*num);

TeleBook*Delete_a_record(TeleBook*head);

TeleBook*Query(TeleBook*head,char*num);

voidQuery_a_record(TeleBook*head);

TeleBook*AddfromText(TeleBook*head,char*filename);

voidWritertoText(TeleBook*head,char*filename);

voidQuit(TeleBook*head);

TeleBook*DeleteSame(TeleBook*head);

intmenu_select()

{charc;

do{

system("cls");

printf("1.CreateList\n");

printf("2.DisplayAllRecord\n");

printf("3.InsertaReacord\n");

printf("4.DeleteaReacord\n");

printf("5.Query\n");

printf("6.AddRecordsfromaTextFile\n");

printf("7.WritetoaTextFile\n");

printf("8.DeletetheSameRecord\n");

printf("0.Quit\n");

printf("Giveyourchoice(0-8):

\n");

c=getchar();

}

while(c<'0'||c>'8');

return(c-'0');

}

 

TeleBook*Create()

{TeleBook*s,*head=NULL;

charc='Y';

printf("createanincreasinglist...\n");

printf("pleaseinputnum,name,phonenum,email\n");

while(c=='Y'||c=='y')

{s=(TeleBook*)malloc(sizeof(TeleBook));

system("pause");

gets(s->num);

gets(s->name);

gets(s->phonenum);

gets(s->email);

head=Insert(head,s);

printf("Doyouwanttocontinuetoinput:

(Y/N)?

\n");

c=getchar();

}

return(head);

}

voidDisplay(TeleBook*head)

{TeleBook*p;

inti=0;

p=head;

printf("outputlist:

\n");

printf("num\tname\tphonenum\temail\n");

while(p!

=NULL)

{printf("%s\t%s\t%s\t%s\n",p->num,p->name,p->phonenum,p->email);

p=p->next;

if(++i%10==0)

{printf("\n");

system("pause");

system("cls");

}

}

}

TeleBook*Insert(TeleBook*head,TeleBook*s)

{TeleBook*p1,*p2;

if(head==NULL)

{head=s;

s->next=NULL;

return(head);

}

p2=p1=head;

while(strcmp(s->num,p1->num)>0&&p1->next!

=NULL)

{p2=p1;p1=p1->next;}

if(strcmp(s->num,p1->num)<=0)

{s->next=p1;

if(head==p1)head=s;

elsep2->next=s;

}

else{p1->next=s;s->next=NULL;}

return(head);

}

TeleBook*Insert_a_record(TeleBook*head)

{TeleBook*p;

p=(TeleBook*)malloc(sizeof(TeleBook));

printf("PleaseinputthenewNum,Name,Phonenum,Email\n");

getchar();

gets(p->num);

gets(p->name);

gets(p->phonenum);

gets(p->email);

head=Insert(head,p);

printf("Insertsuccess!

!

\n");

printf("%s\n%s\n%s\n%s\n",p->num,p->name,p->phonenum,p->email);

return(head);

}

 

TeleBook*Delete(TeleBook*head,char*num)

{TeleBook*p1,*p2;

if(head==NULL)

{printf("Listisnull\n");

return(NULL);

}

p1=head;

while(strcmp(p1->num,num)!

=0&&p1->next!

=NULL)

{p2=p1;

p1=p1->next;

}

if(strcmp(p1->num,num)==0)

{if(p1==head)head=p1->next;

elsep2->next=p1->next;

printf("Thenum%sisdeleted.\n",p1->num);

free(p1);

}

else

printf("Thenum%sisnotfound.\n",num);

return(head);

}

TeleBook*Delete_a_record(TeleBook*head)

{charc;charnum[20];

printf("Doyouwanttodelete?

(y/n)\n");

getchar();

c=getchar();

if(c=='y'||c=='Y')

printf("pleaseinputnum=\n");

getchar();

gets(num);

head=Delete(head,num);

printf("deletesuccess!

\n");

return(head);

}

TeleBook*Query(TeleBook*head,char*num)

{TeleBook*p;

p=(TeleBook*)malloc(sizeof(TeleBook));

p=head;

while(p!

=NULL)

{if(strcmp(p->num,num)==0)return(p);

p=p->next;

}

return(NULL);

}

voidQuery_a_record(TeleBook*head)

{charnum[10];

TeleBook*p;

p=(TeleBook*)malloc(sizeof(TeleBook));

printf("Pleaseinputthenumyouwanttosearch\n");

getchar();

gets(num);

p=Query(head,num);

if(p==NULL)printf("Fail!

\n");

else

{printf("SearchSuccess!

\n");

printf("Num:

%s\nName:

%s\nPhonenum:

%s\nEmail:

%s\n",p->num,p->name,p->phonenum,p->email);

}

}

 

TeleBook*AddfromText(TeleBook*head,char*filename)

{FILE*fp;

printf("Pleaseinputthefilenameyouwant.....\n");

getchar();

gets(filename);

fp=fopen(filename,"r");

if(fp==NULL)

{printf("Can'topenthefile!

\n");

getchar();

exit

(1);

}

while(feof(fp)==0)

{TeleBook*s;

s=(TeleBook*)malloc(sizeof(TeleBook));

fscanf(fp,"%s%s%s%s",s->num,s->name,s->phonenum,s->email);

head=Insert(head,s);

}

fclose(fp);

printf("Addsuccess\n");

return(head);

}

 

voidWritertoText(TeleBook*head,char*filename)

{TeleBook*p;

FILE*fp;

printf("Pleaseinputthefilenameyouwanttooutput.....\n");

getchar();

gets(filename);

if((fp=fopen(filename,"w"))==NULL)

{printf("Can'topen");

exit(0);

}

p=head;

printf("Outputlist:

\n");

while(p!

=NULL)

{fprintf(fp,"%s\t%s\t%s\t%s\n",p->num,p->name,p->phonenum,p->email);

p=p->next;

}

fclose(fp);

printf("WriteSuccessful!

\n");

}

voidQuit(TeleBook*head)

{TeleBook*p;

charc;

printf("Doyouwanttoexit?

(YorN)\n");

getchar();

c=getchar();

if(c=='Y'||c=='y')

{while(head!

=NULL)

{p=head;

head=head->next;

free(p);

}

}

}

TeleBook*DeleteSame(TeleBook*head)

{TeleBook*p;

TeleBook*p1,*p2;

if(head==NULL)

{printf("Listisnull\n");

return(NULL);

}

for(p=head;p!

=NULL;p=p->next)

for(p2=p,p1=p->next;p1!

=NULL;p2=p1,p1=p1->next)

{if(strcmp(p->name,p1->name)==0&&strcmp(p->phonenum,p1->phonenum)==0&&strcmp(p->email,p1->email)==0)

{p2->next=p1->next;

free(p1);

printf("DeleteSuccess\n");

}

}

return(head);

}

voidmain()

{TeleBook*head=NULL;

printf("\t******TeleBook*******\n");

for(;;)

{switch(menu_select())

{case1:

printf("\tCreateList\n");

head=Create();

system("pause");

break;

case2:

printf("\tDisplayAllRecord\n");

Display(head);

system("pause");

break;

case3:

printf("\tInsertaReacord\n");

head=Insert_a_record(head);

system("pause");

break;

case4:

printf("\tDeleteaReacord\n");

head=Delete_a_record(head);

system("pause");

break;

case5:

printf("\tQuery\n");

Query_a_record(head);

system("pause");

break;

case6:

printf("\tAddRecordsfromaTextFile\n");

head=AddfromText(head,"filename");

system("pause");

break;

case7:

printf("\tWritetoaTextFile\n");

WritertoText(head,"filename");

system("pause");

break;

case8:

printf("\tDeletetheSameRecord\n");

head=DeleteSame(head);

system("pause");

break;

case0:

printf("Goodbye!

\n");

Quit(head);

system("pause");

exit(0);

}

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1