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

上传人:聆听****声音 文档编号:955370 上传时间:2023-04-29 格式:DOC 页数:26 大小:177KB
下载 相关 举报
c语言程序设计-通讯录Word格式.doc_第1页
第1页 / 共26页
c语言程序设计-通讯录Word格式.doc_第2页
第2页 / 共26页
c语言程序设计-通讯录Word格式.doc_第3页
第3页 / 共26页
c语言程序设计-通讯录Word格式.doc_第4页
第4页 / 共26页
c语言程序设计-通讯录Word格式.doc_第5页
第5页 / 共26页
c语言程序设计-通讯录Word格式.doc_第6页
第6页 / 共26页
c语言程序设计-通讯录Word格式.doc_第7页
第7页 / 共26页
c语言程序设计-通讯录Word格式.doc_第8页
第8页 / 共26页
c语言程序设计-通讯录Word格式.doc_第9页
第9页 / 共26页
c语言程序设计-通讯录Word格式.doc_第10页
第10页 / 共26页
c语言程序设计-通讯录Word格式.doc_第11页
第11页 / 共26页
c语言程序设计-通讯录Word格式.doc_第12页
第12页 / 共26页
c语言程序设计-通讯录Word格式.doc_第13页
第13页 / 共26页
c语言程序设计-通讯录Word格式.doc_第14页
第14页 / 共26页
c语言程序设计-通讯录Word格式.doc_第15页
第15页 / 共26页
c语言程序设计-通讯录Word格式.doc_第16页
第16页 / 共26页
c语言程序设计-通讯录Word格式.doc_第17页
第17页 / 共26页
c语言程序设计-通讯录Word格式.doc_第18页
第18页 / 共26页
c语言程序设计-通讯录Word格式.doc_第19页
第19页 / 共26页
c语言程序设计-通讯录Word格式.doc_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

1流程介绍

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

(1)显示流程

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

流程图如图2所示。

结束

N

Y

开始

“没有此学生”

是否有学生信息?

显示通讯录信息

图2显示功能的流程图

(2)查找流程

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

流程图如图3所示。

图3查找功能的流程图

“没有此人信息”

判断是否有此人?

输出此人信息

是否继续查找?

输入查找人姓名

9姓名

输入查找人电话

输入查找人学号

(3)添加流程

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

流程图如图4所示。

信息已满

判断是否有空位?

显示通讯录容量

输入通讯录

是否继续添加?

图4添加功能的流程图

(4)删除流程

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

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

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

流程图如图5所示。

没有此人信息

删除此人信息

是否继续删除?

输入删除人姓名

是否删除?

输入删除人学号

输入删除人电话

图5删除功能的流程图

(5)修改流程

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

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

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

流程图如图6所示。

修改此人信息

是否继续修改?

知道姓名?

是否修改?

知道学号?

知道电话?

图6修改功能的流程图

(6)排序流程

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

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

流程图如图7所示。

图7排序功能的流程图

j<

js-2?

交换两人信息

以姓名排序

以学号排序

定义js(通讯录条数)

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

i<

is-j-1?

比较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的,由于此操作过多,所以单提出来作为函数。

四设计总结

通过这次课程设计,我自学了结构体那部分,并且成功运用在程序中,这样提高了自身的自学水平。

并且对于以前学过的知识都是一个很好的巩固。

通过这次课程设计,我也知道了养成良好的变成习惯很重要,这样在编程中思路会更加清晰,而且错误也会更容易找。

通过这次课程设计,我学会了调试程序,并且通过调试发现了一些问题,这使我受益匪浅。

程序中出错是一件很平常的事,但找错是一件很困难的事,通过找错,我对C语言的运行有了更深的了解,同时改出错的喜悦不亚于编出程序。

这次课设虽然结束了,但对我做的通讯录管理系统的完善并没有结束。

分的函数太多,这在读代码上会造成困难,同时也会造成程序的繁杂,不能一目了然地看出来。

还有一些功能还有待完善,比如添加功能的学号不唯一,删除没有全部删除,修改不能只修改某一项等等,还有一项预想的保存功能没能编出来,这些都是我以后要继续完善的。

参考文献

[1]谭浩强.C语言程序设计教程,第三版.高等教育出版社,2006

附录

源程序代码

#include<

stdio.h>

string.h>

stdlib.h>

conio.h>

#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\n"

//输出主菜单

\t\t\t\t1.显示通讯录\n"

\t\t\t\t2.查找通讯录\n"

\t\t\t\t3.添加通讯录\n"

\t\t\t\t4.删除通讯录\n"

\t\t\t\t5.修改通讯录\n"

\t\t\t\t6.排序通讯录\n"

\t\t\t\t0.退出\n"

请选择:

(0~6)"

scanf("

%d"

&

a);

while(a>

6)//判断输入是否正确

{

printf("

输入错误,请重新输入:

scanf("

}

switch(a)

{

case0:

exit

(1);

break;

case1:

xianshi(std);

case2:

chazhao(std);

case3:

tianjia(std);

case4:

shanchu(std);

case5:

xiugai(std);

case6:

paixu();

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

voidxianshi(STUDENTs[N])

inti;

******************************显示通讯录******************************\n\n"

hprint();

for(i=0;

std[i].age!

=0;

i++)

iprint(i);

if(i==0)

\n\n\t\t\t无学生信息\n\n"

else

\n已添加%d条\n还剩%d条"

i,N-i);

pause"

menu();

/**********************查找通讯录**********************/

voidchazhao(STUDENTs[N])

intsign=1,flag;

******************************查找通讯录******************************\n"

\t\t\t1.按学号查找\n"

printf("

\t\t\t2.按姓名查找\n"

\t\t\t3.按电话查找\n"

\t\t\t0.返回\n"

(0~3)"

choice(sign);

\n是否继续查找?

(Y/N)"

//继续添加

flag=panduan();

if(flag==1)

chazhao(std);

system("

/***********************添加通讯录********************/

voidtianjia(STUDENTs[N])

inti,flag;

******************************添加通讯录******************************\n\n"

;

{

if(i==N)//判断是否有空位

{

printf("

通讯录已满!

"

break;

}

if((s[i].age!

=0))//寻找空位

continue;

\n容量:

%d/%d\n\n"

i+1,N);

input(i);

\n是否继续添加?

flag=panduan();

if(flag==1)

tianjia(std);

else

{

system("

menu();

}

/****************************删除通讯录******************************/

voidshanchu(STUDENTs[N])

intflag,sign=2;

******************************删除通讯录******************************\n\n"

for(;

\t\t1.按学号删除\n"

\t\t2.按姓名删除\n"

\t\t0.返回\n"

请选择(0~2)"

choice(sign);

printf("

//继续删除?

flag=panduan();

if(flag==1)//判断

shanchu(std);

/****************************修改通讯录******************************/

voidxiugai(STUDENTs[N])

intflag,js=0,sign=3;

system("

printf("

****************************修改通讯录******************************\n\n"

printf("

\t\t\t1.知道学号?

\n"

\t\t\t2.知道姓名?

printf("

\t\t\t3.知道电话?

请选择(0~3)"

choice(sign);

xiugai(std);

/***************************排序通讯录*****************************/

voidpaixu()

{

inti,j;

***************************排序通讯录*****************************\n\n"

\t\t1.按学号排序\n"

\t\t2.按姓名排序\n"

do

j);

if(j==0)

elseif(j==1||j==2)

turn(j);

break;

printf("

输入错误,请重新输入(0~2)"

}while(j>

2);

hprint();

for(i=0;

iprint(i);

system("

/****************综合功能函数**************/

voidchoice(intsign)

inti,j,flag,js=0;

charc[M];

do{

scanf("

if(j==0)

menu();

elseif(j==1)

{

if(sign==1)

printf("

请输入查找人的学号:

if(sign==2)

请输入删除人的学号:

if(sign==3)

请输入修改人的学号:

scanf("

%s"

c);

hprint();

for(i=0;

N;

{

flag=find(std[i].num,i,c,sign);

if(flag==1)//判断是否有记录

js++;

}

if(js==0)

{

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2