c语言简易通讯录报告.docx

上传人:b****5 文档编号:3226714 上传时间:2022-11-20 格式:DOCX 页数:13 大小:50.64KB
下载 相关 举报
c语言简易通讯录报告.docx_第1页
第1页 / 共13页
c语言简易通讯录报告.docx_第2页
第2页 / 共13页
c语言简易通讯录报告.docx_第3页
第3页 / 共13页
c语言简易通讯录报告.docx_第4页
第4页 / 共13页
c语言简易通讯录报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

c语言简易通讯录报告.docx

《c语言简易通讯录报告.docx》由会员分享,可在线阅读,更多相关《c语言简易通讯录报告.docx(13页珍藏版)》请在冰豆网上搜索。

c语言简易通讯录报告.docx

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

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

当前位置:首页 > 小学教育 > 英语

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

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