c语言简易通讯录报告.docx
- 文档编号:3226714
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:13
- 大小:50.64KB
c语言简易通讯录报告.docx
《c语言简易通讯录报告.docx》由会员分享,可在线阅读,更多相关《c语言简易通讯录报告.docx(13页珍藏版)》请在冰豆网上搜索。
c语言简易通讯录报告
实习报告
①需求分析
建立一个通讯系统,系统中保存着人员的姓名,电话,住址,邮编等信息,通过该系统的界面可以浏览这些信息,也可以插入,添加及删除某个人的信息1)录入人员信息,创建通讯录文件2)进行相应的插入,添加,删除操作,并输出相应的结果
(1)确定设计程序接收的输入数据和输出数据的形式、取值范围;
每条通讯录包含姓名,街道,城市,邮编,电话号码。
都以字符型数组存储,分别定义为15、30、20、20、20字节长。
输入同输出。
(2)初步列出测试数据以及测试目的;
②程序设计
说明程序中用到的所有数据类型的定义。
绘制主程序的流程图,以及各子程序模块间的调用关系
流程图:
③调式分析
(1)列出调式过程中遇到的主要问题,并说明解决方法;
链表和结构体在实习刚开始时理解不透彻,只知道大概需要用到程序中,翻阅了一些资料后基本学会使用了。
开始用if,else语句轮寻菜单中用户输入的数字对应功能,后来发现用swith,case更方便灵活。
(2)分析算法的时间和空间复杂度,如果有给出算法改进思想;
作为一个完整可用的通讯录还缺少保存信息到硬盘功能。
但本人基础较薄,有限的实习时间内无法完成。
希望今后有机会继续完善。
④使用说明
说明编写程序的使用方法,详细列出每一操作步骤;
⑤测试结果
列出若干输入的测试数据、测试目的、产生的结果;
简易通讯录系统:
DesignedbyIrene
=================================
输入纪录-----------------0
显示所有纪录-------------1
查询纪录-----------------2
删除纪录-----------------3
退出---------------------4
=================================
请输入数字(0~4)选择,enter确定并输入:
0
姓名街道城市邮编
-------------------------------------
Irene
df
bj
100034
110
-------------------------------------
继续输入吗?
(Y/N)
y
姓名街道城市邮编
-------------------------------------
eric
fd
bj
100076
119
-------------------------------------
继续输入吗?
(Y/N)
y
姓名街道城市邮编
-------------------------------------
rare
ij
bj
100056
120
-------------------------------------
继续输入吗?
(Y/N)
n
简易通讯录系统:
DesignedbyIrene
=================================
输入纪录-----------------0
显示所有纪录-------------1
查询纪录-----------------2
删除纪录-----------------3
退出---------------------4
=================================
请输入数字(0~4)选择,enter确定并输入:
1
显示所有记录如下:
-------------------------------------
姓名街道城市邮编
-------------------------------------
Irenedfbj100034
-------------------------------------
ericfdbj100076
-------------------------------------
rareijbj100056
-------------------------------------
简易通讯录系统:
DesignedbyIrene
=================================
输入纪录-----------------0
显示所有纪录-------------1
查询纪录-----------------2
删除纪录-----------------3
退出---------------------4
=================================
请输入数字(0~4)选择,enter确定并输入:
2
请输入姓名进行查询:
Irene
-------------------------------------
姓名街道城市邮编
-------------------------------------
Irenedfbj100034
-------------------------------------
查询成功!
继续查询?
(Y/N)
n
简易通讯录系统:
DesignedbyIrene
=================================
输入纪录-----------------0
显示所有纪录-------------1
查询纪录-----------------2
删除纪录-----------------3
退出---------------------4
=================================
请输入数字(0~4)选择,enter确定并输入:
3
请输入姓名删除纪录:
eric
确定要删除吗?
(Y/N)
y
Successtodelete!
简易通讯录系统:
DesignedbyIrene
=================================
输入纪录-----------------0
显示所有纪录-------------1
查询纪录-----------------2
删除纪录-----------------3
退出---------------------4
=================================
请输入数字(0~4)选择,enter确定并输入:
⑥其他
(1)注释源程序代码;
#include
#include
#include
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;
head->prior=head;/*建立双链表空头节点;*/
while(flag=='Y'||flag=='y')
{
p=(dnode*)malloc(sizeof(dnode));
printf("姓名街道城市邮编电话\n");
printf("-----------------------------------------------\n");
scanf("%s%s%s%s%s",&p->data.name,&p->data.street,&p->data.city,&p->data.eip,&p->data.phone);
rear->next=p;
p->prior=rear;
rear=p;
p->next=head;/*向双链表中动态增加节点数据;*/
printf("-----------------------------------------------\n");
printf("继续输入吗?
(Y/N)\n");
scanf("%s",&flag);
}
printf("\n");
}
//显示子程序
voiddisplay(dnode*head)
{
dnode*p;
p=head->next;
printf("显示所有记录如下:
\n");
printf("-----------------------------------------------\n");
printf("姓名街道城市邮编电话\n");
printf("-----------------------------------------------\n");
while(p!
=head)
{
printf("%s%8s%8s%8s%8s",p->data.name,p->data.street,p->data.city,p->data.eip,p->data.phone);
printf("\n");
printf("-----------------------------------------------\n\n");
p=p->next;
}
}
dnode*search(dnode*head)
{
dnode*p;
charname[9];
p=head->next;
scanf("%s",name);
while(p!
=head&&p&&strcmp(p->data.name,name)!
=0)
{p=p->next;}
returnp;
}
//删除子程序
voiddelete(dnode*head)
{
charf;
dnode*p;
p=search(head);
if(p==head)
{
printf("没有找到要删除的数据!
!
!
\n\n");
return;
}
else
{
printf("确定要删除吗?
(Y/N)\n");
scanf("%s",&f);
if(f=='Y'||f=='y')
{
p->prior->next=p->next;
p->next->prior=p->prior;
free(p);
printf("Successtodelete!
\n");
}
}
}
//退出子程序
voidquit(void)
{
exit(0);
}
//主程序
voidmain()
{charflag='Y';
for(;;)
{
dnode*q;
intch;
printf("简易通讯录系统:
\n");
printf("Desig
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 简易 通讯录 报告