通讯录管理系统.docx

上传人:b****5 文档编号:7246610 上传时间:2023-01-22 格式:DOCX 页数:12 大小:63.85KB
下载 相关 举报
通讯录管理系统.docx_第1页
第1页 / 共12页
通讯录管理系统.docx_第2页
第2页 / 共12页
通讯录管理系统.docx_第3页
第3页 / 共12页
通讯录管理系统.docx_第4页
第4页 / 共12页
通讯录管理系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

通讯录管理系统.docx

《通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统.docx(12页珍藏版)》请在冰豆网上搜索。

通讯录管理系统.docx

通讯录管理系统

 

C语言集中上机报告

通讯录管理系统

 

院系:

通信与信息工程学院

班级:

0101112班

姓名:

桑操

指导教师:

段小林

 

2011年12月21日

目录

一.概述6

二.总体方案设计7

三.详细设计8

四.程序的调试与运行结果说明9

五.课程设计总结10

六.后记11

七.附录12

参考文献13

 

一概述

1.课程设计的目的

巩固C语言中的循环、数组、函数和链表等基本知识点,培养综合程序的设计能力。

熟悉软件开发过程中问题的分析、解决方案的设计、编码实现等各个环节,提高解决实际问题的能力,掌握软件开发的基本技能。

2.课程设计的要求

(1)设一个通信录由以下几项数据信息构成:

数据项类型

姓名字符串

地址字符串

邮政编码字符串

电话号码字符串

试为通信录数据定义类型和定义通信录变量,实现功能:

存取、显示、删除记录、查询记录等功能。

(2)要求:

界面友好,易于操作

3.课程设计的主要设计思想

(1)能够完成基本的数据输入增加、删除、修改。

(2)能够对通讯录中的数据进行查询。

(3)通过函数实现其各部分的功能。

二总体方案设计

为了存储和表示通讯录中的数据,可以定义一个结构体数据类型,包含姓名、地址、邮编、电话号码。

整个数据可以用链表存储。

定义如下:

typedefstruct

{

charname[20];/*姓名*/

charnum[15];/*电话*/

charadds[20];/*住址*/

charpost[10];/*邮编*/

}Person;/*重命名*/

想好要有什么功能,根据需要的功能来编写各个函数。

如需要输入联系人:

intInput(Personp[],intn)/*输入联系人函数*/

{

inti=0;

charm;

while(m!

='n'&&m!

='N')

{

printf("\t姓名:

");

scanf("\t%s",p[n+i].name);

printf("\t电话号码:

");

scanf("\t%s",p[n+i].num);

printf("\t地址:

");

scanf("\t%s",p[n+i].adds);

printf("\t邮编:

");

scanf("\t%s",p[n+i].post);

printf("\n\t是否继续添加?

\n输入N结束,其他键继续:

");

scanf("\t%c",&m);

i++;

}

return(n+i);

}

等等…

三详细设计

所完成的具体功能及用到的算法:

为实现程序的功能,按照模块的划分,利用各个函数来实现其功能。

本程序中涉及到了如下函数:

intInput(Personp[],intn);//输入联系人

voidOutput(Personp[],intn);//输出联系人

intDel_a_record(Personp[],intn);//删除记录

intchange_a_record(Personp[],intn);//改变联系人

voidsearch_a_record(Personp[],intn);//查找联系人

四程序的调试与运行结果说明

1.运行程序,进入主菜单。

2.选择需要进行的操作,如1.输入联系人。

界面会提示用户依次输入姓名、电话、地址、和邮编。

3.在提示下继续进行操作,可根据提示,分别实现显示、删除、查询和改变联系人信息的功能。

4.最后0退出该程序。

五课程设计总结

在这次课程设计中,我自己把完整的程序代码写完了,并且能够实现题目所要求的功能,细细想来,编写这个程序并不像原来想像的那么难,关键是自己多去掌握函数的调用关系,和函数参数的问题。

写得出功能函数,还得会用,

自己慢慢写,得到的知识要比,老师上课讲的有收获的多。

写程序不要怕,要在许多次的失败之后在成功才显得有趣、、

六后记

(1)在开始编写程序前,要在心里先构思一遍,画出一张图。

想想需要什么,怎么用。

(2)在写每个函数时,也是先写流程图,然后再在纸上写下程序。

我发现这样可以令我在编程时保持清醒的头脑,在遇到错误时对照流程图也可以很快改正。

(3)写完了要自己先走一次流程,看看有没有不对的地方。

(4)经过这次综合程序设计,我体会到了调试程序的辛苦及乐趣,一个小小的逻辑错误,可能花一个晚上才能调试出来。

但当发现错误并改正后,得到的成就感是无法言语的。

七附录

程序代码如下:

#include

#include

#include

typedefstruct

{

charname[20];/*姓名*/

charnum[15];/*电话*/

charadds[20];/*住址*/

charpost[10];/*邮编*/

}Person;

intInput(Personp[],intn);

voidOutput(Personp[],intn);

intDel_a_record(Personp[],intn);

intchange_a_record(Personp[],intn);

voidsearch_a_record(Personp[],intn);

intInput(Personp[],intn)/*输入联系人函数*/

{

inti=0;

charm;

while(m!

='n'&&m!

='N')

{

printf("\t姓名:

");

scanf("\t%s",p[n+i].name);

printf("\t电话号码:

");

scanf("\t%s",p[n+i].num);

printf("\t地址:

");

scanf("\t%s",p[n+i].adds);

printf("\t邮编:

");

scanf("\t%s",p[n+i].post);

printf("\n\t是否继续添加?

\n输入N结束,其他键继续:

");

scanf("\t%c",&m);

i++;

}

return(n+i);

}

voidOutput(Personp[],intn)/*输出联系人函数*/

{

inti;

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

printf("\t姓名\t\t电话号码\t\t地址\t\t邮编\n");

for(i=1;i

{

printf("\t%s\t\t%s\t\t%s\t\t%s\n",p[i-1].name,p[i-1].num,p[i-1].adds,p[i-1].post);

}

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

}

intDel_a_record(Personp[],intn)/*删除联系人函数*/

{

chars[20];

inti=0,j;

printf("\t请输入想删除联系人的名字:

");

scanf("%s",s);

while(strcmp(p[i].name,s)!

=0&&i

if(i==n)

{

printf("\t通讯录中没有此人!

\n");

return(n);

}

for(j=i;j

{

strcpy(p[j].num,p[j+1].num);

strcpy(p[j].name,p[j+1].name);

strcpy(p[j].adds,p[j+1].adds);

strcpy(p[j].post,p[j+1].post);

}

printf("\t\t\t删除成功!

\n");

return(n-1);

}

intchange_a_record(Personp[],intn)/*更换联系人函数*/

{

chars[20];

inti=0;

printf("请输入你想改变的联系人姓名:

");

scanf("%s",s);

while(strcmp(p[i].name,s)!

=0&&i

if(i==n)

{

printf("\t通讯录中没有此人!

\n");

return(n);

}

else

{

printf("\t姓名:

");

scanf("\t%s",s);

strcpy(p[i].name,s);

printf("\t电话号码:

");

scanf("\t%s",s);

strcpy(p[i].num,s);

printf("\t地址:

");

scanf("\t%s",s);

strcpy(p[i].adds,s);

printf("\t邮编:

");

scanf("\t%s",s);

strcpy(p[i].post,s);

return(n);

}

}

voidsearch_a_record(Personp[],intn)/*查找函数*/

{

chars[20];

inti=0;

printf("\t请输入你想查询的联系人姓名:

");

scanf("\t%s",s);

while(strcmp(p[i].name,s)!

=0&&i

if(i==n)

{

printf("\t通讯录中没有此人!

\n");

return;

}

else

printf("\t姓名\t\t电话号码\t\t地址\t\t邮编\n");

printf("\t%s\t\t%s\t\t%s\t\t%s\n",p[i].name,p[i].num,p[i].adds,p[i].post);

}

voidmain()/*主函数*/

{

intn=0;

Personp[100];

intc;

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

printf("通讯录管理系统\n");

printf("1新增联系人\n"

"2查看通讯录\n"

"3删除联系人\n"

"4查找联系人\n"

"5更改联系人\n"

"0退出\n");

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

printf("\t\t请选择(0-5):

");

scanf("%d",&c);

while

(1)

{

switch(c)

{

case1:

n=Input(p,n);

break;

case2:

Output(p,n);

break;

case3:

n=Del_a_record(p,n);

break;

case4:

search_a_record(p,n);

break;

case5:

change_a_record(p,n);

break;

case0:

exit(0);

}

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

printf("通讯录管理系统\n");

printf("1新增联系人\n"

"2查看通讯录\n"

"3删除联系人\n"

"4查找联系人\n"

"5更改联系人\n"

"0退出\n");

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

printf("\t\t请选择(0-4):

");

scanf("%d",&c);

}

}

运行出来如下:

等等…..

参考文献

[1]谭浩强,C程序设计题解与上机指导(第二版),北京,清华大学出版社,2000年9月。

[2]纪凉浩李琳皓段小林兰文富,C语言程序设计与进阶实验指导,北京,中国水利水电出版社,2010年10月。

 

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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