c语言简易通讯录报告Word文件下载.docx
《c语言简易通讯录报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言简易通讯录报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
(2)分析算法的时间和空间复杂度,如果有给出算法改进思想;
作为一个完整可用的通讯录还缺少保存信息到硬盘功能。
但本人基础较薄,有限的实习时间内无法完成。
希望今后有机会继续完善。
④使用说明
说明编写程序的使用方法,详细列出每一操作步骤;
⑤测试结果
列出若干输入的测试数据、测试目的、产生的结果;
简易通讯录系统:
DesignedbyIrene
=================================
输入纪录-----------------0
显示所有纪录-------------1
查询纪录-----------------2
删除纪录-----------------3
退出---------------------4
请输入数字(0~4)选择,enter确定并输入:
姓名街道城市邮编
-------------------------------------
Irene
df
bj
100034
110
继续输入吗?
(Y/N)
y
eric
fd
100076
119
rare
ij
100056
120
n
1
显示所有记录如下:
Irenedfbj100034
ericfdbj100076
rareijbj100056
2
请输入姓名进行查询:
查询成功!
继续查询?
3
请输入姓名删除纪录:
确定要删除吗?
Successtodelete!
⑥其他
(1)注释源程序代码;
#include<
stdio.h>
string.h>
malloc.h>
typedefstructtxl
{
charname[15];
charstreet[30];
charcity[20];
chareip[20];
charphone[20];
}dtxl;
/*建立通讯录信息结构体;
*/
typedefstructdlnode
{
dtxldata;
structdlnode*prior;
structdlnode*next;
}dnode;
/*建立双向链表结构体;
dnode*head;
voidenter(void)
dnode*p,*rear;
charflag='
Y'
;
head=(dnode*)malloc(sizeof(dnode));
rear=head;
head->
next=head;
prior=head;
/*建立双链表空头节点;
while(flag=='
||flag=='
y'
)
{
p=(dnode*)malloc(sizeof(dnode));
printf("
姓名街道城市邮编电话\n"
);
-----------------------------------------------\n"
scanf("
%s%s%s%s%s"
&
p->
data.name,&
data.street,&
data.city,&
data.eip,&
data.phone);
rear->
next=p;
p->
prior=rear;
rear=p;
/*向双链表中动态增加节点数据;
(Y/N)\n"
%s"
flag);
}
printf("
\n"
}
//显示子程序
voiddisplay(dnode*head)
dnode*p;
p=head->
next;
while(p!
=head)
%s%8s%8s%8s%8s"
p->
data.name,p->
data.street,p->
data.city,p->
data.eip,p->
-----------------------------------------------\n\n"
p=p->
dnode*search(dnode*head)
charname[9];
scanf("
name);
=head&
&
p&
strcmp(p->
data.name,name)!
=0)
{p=p->
returnp;
//删除子程序
voiddelete(dnode*head)
charf;
p=search(head);
if(p==head)
没有找到要删除的数据!
!
\n\n"
return;
else
f);
if(f=='
||f=='
{
p->
prior->
next=p->
next->
prior=p->
prior;
free(p);
printf("
}
//退出子程序
voidquit(void)
exit(0);
//主程序
voidmain()
{charflag='
for(;
dnode*q;
intch;
Desig