比较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");