c语言程序设计-通讯录.doc

上传人:b****1 文档编号:165121 上传时间:2022-10-04 格式:DOC 页数:24 大小:535.76KB
下载 相关 举报
c语言程序设计-通讯录.doc_第1页
第1页 / 共24页
c语言程序设计-通讯录.doc_第2页
第2页 / 共24页
c语言程序设计-通讯录.doc_第3页
第3页 / 共24页
c语言程序设计-通讯录.doc_第4页
第4页 / 共24页
c语言程序设计-通讯录.doc_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

c语言程序设计-通讯录.doc

《c语言程序设计-通讯录.doc》由会员分享,可在线阅读,更多相关《c语言程序设计-通讯录.doc(24页珍藏版)》请在冰豆网上搜索。

c语言程序设计-通讯录.doc

本程序基于结构体数组设计出了通讯录管理系统的基本功能,能对成员的学号、姓名、年龄、电话等进行添加、显示、查找、删除、修改等操作,并且能通过姓名、学号、电话来查找、删除、修改通讯录。

首先,将通讯录的学号、姓名、年龄、电话、邮箱、QQ号进行结构体的声明,再定义结构数组以便进行统一处理。

之后设计菜单函数,显示操作项目,并对添加、显示、查找、修改、删除、排序等功能模块进行调用,以实现管理系统的整体功能。

是用户的工作平台,也是用户与系统对话的平台。

像删除、查找、修改等模块都有子菜单,这样使条理更清晰,像删除、修改等操作都会有询问信息,只有用户确认才会进行操作,使程序更加地人性化,并且加入通讯录的容量,使用户可以了解通讯录的存储,总体设计框图如图所示。

主菜单

1

显示通讯录

2

查找通讯录

3

添加通讯录

4

删除通讯录

5

修改通讯录

6

排序通讯录

流程介绍

本程序一共有6个流程,即显示流程、查找流程、添加流程、删除流程、修改流程和排序流程,分别实现上述六种功能,下面介绍一下这六个流程。

(1)显示流程

通过此流程可以对录入的信息进行输出,只有当有录入信息时才会输出,否则显示“没有此学生”。

流程图如图所示。

结束

N

Y

开始

“没有此学生”

是否有学生信息?

显示通讯录信息

2)查找流程

通过此流程可以实现对录入信息的查找,此程序支持三种查找方式,按学号、姓名、电话查找,然后判断是否有此人,有则输出该用户信息,并且显示通讯录使用容量和剩余容量,否则输出“没有此人信息”并进行重新选择。

流程图如图所示。

图3查找功能的流程图

结束

N

Y

“没有此人信息”

判断是否有此人?

输出此人信息

是否继续查找?

Y

N

开始

输入查找人姓名

9姓名

输入查找人电话

9姓名

输入查找人学号

9姓名

(3)添加流程

通过此流程可以实现对信息的添加,首先先对容量进行测试如果没有容量则提示信息已满,若有容量,则显示通讯录使用量和总容量,再对姓名、学号等逐项输入,输入完毕后系统会提示是否继续添加,若是,则继续添加,若否则返回菜单函数。

流程图如图所示。

结束

N

Y

开始

信息已满

判断是否有空位?

显示通讯录容量

输入通讯录

是否继续添加?

Y

N

(4)删除流程

结束

N

Y

没有此人信息

判断是否有此人?

删除此人信息

是否继续删除?

Y

N

开始

输入删除人姓名

9姓名

是否删除?

Y

N

输入删除人学号

输入删除人电话

9姓名

通过此流程可以对录入的信息进行删除。

此程序提供学号、姓名、电话来查找删除人若没有此人,则显示没有此人信息,并返回删除菜单。

若有此人,系统会询问用户是否删除信息,是则删除,否则不删除,并返回删除菜单。

流程图如图所示。

(5)修改流程

通过此流程可以实现对录入信息的修改。

此程序提供学号、姓名、电话三种方式查找待修改人,进行判断是否有此人,若没有,则显示没有此人信息,并返回修改菜单,若有则会逐项进行修改。

系统会在修改完成后询问用户是否进行修改,选否则不修改,并且返回修改菜单。

流程图如图所示。

结束

N

Y

没有此人信息

判断是否有此人?

修改此人信息

是否继续修改?

Y

N

开始

知道姓名?

9姓名

是否修改?

Y

N

知道学号?

9姓名

知道电话?

9姓名

(6)排序流程

通过此函数可以实现对录入信息进行排序。

的功能此程序提供按学号和姓名的排序,此函数的算法即冒泡法排序通过对排序量进行交换,从而达到排序的目的。

流程图如图所示。

结束

Y

N

开始

j

Y

N

交换两人信息

以姓名排序

以学号排序

定义js(通讯录条数)

定义i,j=0(循环变量)

i

比较i与i+1两人信息

i自增

j自增

2.函数介绍

本程序一共由18个函数组成,其中main函数只是调用菜单函数,因此可以算一个。

其中有7个主要函数,直接实现系统功能,其余为辅助函数,辅助主要函数实现对应功能。

下面将一一介绍。

menu()菜单函数,主要函数,输出主菜单,用户的工作平台,连接添加、查找、显示、删除、修改、排序六大模块,起到连接用户和系统的作用。

xianshi(),显示函数,主要函数,主要功能:

显示录入的信息。

chazhao(),查找函数,主要函数,主要功能:

查找录入的信息。

tianjia(),添加函数,主要函数,主要功能:

添加通讯录信息。

shanchu(),删除函数,主要函数,主要功能:

删除录入的信息。

xiugai(),修改函数,主要函数,主要功能:

修改录入的信息。

paixu(),排序函数,主要函数,主要功能:

对录入的信息排序。

choice(),综合功能函数,地位也相当重要,主要功能:

是查找、删除、修改的中间环节,连接这三项的初始化工作和最后操作。

find(),寻位操作函数,是choice()的后续操作,识别查找、删除、修改三种操作,并给出解决方案。

ginput(),缓冲输入函数,输入信息的缓冲区,修改中使用,并不直接修改通讯录信息,当用户确认后才会修改。

hprint(),表头输出函数,负责输出表头。

iprint(),信息输出函数,可以输出某个人的信息

input(),输入函数,无缓冲输入,直接对通讯录进行修改,在添加中使用。

jiaohuan(),交换函数,对送入的两个字符串进行交换。

replace(),取代函数,用后一个人的信息取代前一个人的信息,在删除中用。

turn(),排序函数,冒泡法的主要算法,也是排序流程的主要过程。

panduan(),判断函数,主要功能是判断Y和N的,由于此操作过多,所以单提出来作为函数。

源程序代码

#include

#include

#include

#include

#defineN30

#defineM80

/****************************定义结构体******************************/

typedefstruct

{charnum[M];

charname[M];

intage;

charphonum[M];

charaddress[M];

charqq[M];

}STUDENT;

STUDENTstd[N];

/*****************************声明变量******************************/

voidmenu(void);

voidxianshi(STUDENTs[N]);

voidchazhao(STUDENTs[N]);

voidtianjia(STUDENTs[N]);

voidshanchu(STUDENTs[N]);

voidxiugai(STUDENTs[N]);

voidpaixu();

voidiprint(intn);

voidhprint();

intfind(chars[M],inti,charc[M],intsign);

voidchoice(intsign);

voidprint(intn);

voidreplace(intn);

intpanduan(void);

voidinput(inti);

voidginput(inti);

voidturn(intk);

voidjiaohuan(chars[M],charc[M]);

/****************************主函数********************************/

main()

{

menu();

return0;

}

/******************************主菜单******************************/

voidmenu(void)

{

inta;

system("cls");

printf("姓名:

郑立\n");

printf("学号:

2012904138\n");

printf("专业:

电气工程及其自动化\n");

printf("班级:

12电气1班\n");

printf("*****************************欢迎进入通讯录管理系统*****************************\n\n");//输出主菜单

printf("\t\t\t\t1.显示通讯录\n");

printf("\t\t\t\t2.查找通讯录\n");

printf("\t\t\t\t3.添加通讯录\n");

printf("\t\t\t\t4.删除通讯录\n");

printf("\t\t\t\t5.修改通讯录\n");

printf("\t\t\t\t6.排序通讯录\n");

printf("\t\t\t\t0.退出\n");

printf("请选择:

(0~6)");

scanf("%d",&a);

while(a>6)//判断输入是否正确

{

printf("输入错误,请重新输入:

(0~6)");

scanf("%d",&a);

}

switch(a)

{

case0:

exit

(1);break;

case1:

xianshi(std);break;

case2:

chazhao(std);break;

case3:

tianjia(std);break;

case4:

shanchu(std);break;

case5:

xiugai(std);break;

case6:

paixu();break;

}

}

/******************************显示通讯录******************************/

voidxianshi(STUDENTs[N])

{

inti;

system("cls");

printf("姓名:

郑立\n");

printf("学号:

2012904138\n");

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

当前位置:首页 > 党团工作 > 党团建设

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

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