c语言程序设计-通讯录Word文档格式.doc
- 文档编号:466909
- 上传时间:2023-04-29
- 格式:DOC
- 页数:24
- 大小:535.76KB
c语言程序设计-通讯录Word文档格式.doc
《c语言程序设计-通讯录Word文档格式.doc》由会员分享,可在线阅读,更多相关《c语言程序设计-通讯录Word文档格式.doc(24页珍藏版)》请在冰点文库上搜索。
输入查找人学号
(3)添加流程
通过此流程可以实现对信息的添加,首先先对容量进行测试如果没有容量则提示信息已满,若有容量,则显示通讯录使用量和总容量,再对姓名、学号等逐项输入,输入完毕后系统会提示是否继续添加,若是,则继续添加,若否则返回菜单函数。
信息已满
判断是否有空位?
显示通讯录容量
输入通讯录
是否继续添加?
(4)删除流程
没有此人信息
删除此人信息
是否继续删除?
输入删除人姓名
是否删除?
输入删除人学号
输入删除人电话
通过此流程可以对录入的信息进行删除。
此程序提供学号、姓名、电话来查找删除人若没有此人,则显示没有此人信息,并返回删除菜单。
若有此人,系统会询问用户是否删除信息,是则删除,否则不删除,并返回删除菜单。
(5)修改流程
通过此流程可以实现对录入信息的修改。
此程序提供学号、姓名、电话三种方式查找待修改人,进行判断是否有此人,若没有,则显示没有此人信息,并返回修改菜单,若有则会逐项进行修改。
系统会在修改完成后询问用户是否进行修改,选否则不修改,并且返回修改菜单。
修改此人信息
是否继续修改?
知道姓名?
是否修改?
知道学号?
知道电话?
(6)排序流程
通过此函数可以实现对录入信息进行排序。
的功能此程序提供按学号和姓名的排序,此函数的算法即冒泡法排序通过对排序量进行交换,从而达到排序的目的。
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的,由于此操作过多,所以单提出来作为函数。
源程序代码
#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"
学号:
2012904138\n"
专业:
电气工程及其自动化\n"
班级:
12电气1班\n"
printf("
*****************************欢迎进入通讯录管理系统*****************************\n\n"
//输出主菜单
printf("
\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.知道电话?
printf("
请选择(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)
{
printf("
没有此人记录\n"
system("
if(sign==1)
chazhao(std);
if(sign==2)
shanchu(std);
if(sign==3)
xiugai(std);
}
break;
}
elseif(j==2)
{
printf("
请输入查找人的姓名:
请输入删除人的姓名:
请输入修改人的姓名:
scanf("
hprint();
for(i=0;
{
flag=find(std[i].name,i,c,sign);
if(flag==1)
js++;
}
if(js==0)
{
printf("
}
break;
}
elseif(j==3)
if(sign==1)
printf("
请输入查找人的电话:
if(sign==2)
请输入删除人的电话:
if(sign==3)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 通讯录