发布时间 : 星期六 文章通讯录C语言程序设计报告书更新完毕开始阅读312c4fea551810a6f5248627
}
}while(yes_no!='1'&&yes_no!='0'); /*如果输入的不是'1'或'0'则重新输入*/ if(yes_no=='0') /*如果输入'0'则退出输入函数*/ {
i++; break; } } } 流程图:
The_Size:
首先定义两个字符数组形参,一个整型变量.
首先利用strlen比较两个字符数组的长度,如果前者长于后者,整型变量赋值为1如果前者短于后者,整型变量赋值为-1,如果两者长度相等,则再利用strcmp比较两个字符数组的大小,如果前者大于后者,则整型变量赋值为1,如果前者小于后者,则整型变量赋值为-1,如果两者大小相等,则整型变量赋值为0.最后返回整型变量的值.
源代码:
int The_Size(char a[],char b[]) /*比较两个ID的大小*/ {
int j,t;
if((j=strlen(a)-strlen(b))>0) t=1;
13
if((j=strlen(a)-strlen(b))<0) t=-1; if((j=strlen(a)-strlen(b))==0) { if(strcmp(a,b)>0) t=1; if(strcmp(a,b)<0) t=-1; if(strcmp(a,b)==0) t=0; }
return t; }
流程图:
Data_Show:
首先调用The_Size函数再利用冒泡法对通讯录的信息根据编号进行排列.然后再对信息进行输出,输出完一条信息后按空格停止打印,按其他任意键继续打印下一条.然后输出通讯录中信息的条数,最后提示是否回到主菜单
源代码:
void Data_Show() /*数据输出函数*/ { int j,k; char m;
struct friend t; printf(\
********************************************************************\\n\
printf(\ No. Name Sex Phone Address Zip_Code \\n\ printf(\
14
********************************************************************\\n\ for(j=0;j { if(The_Size(friends[k].num,friends[k+1].num)==1) { t=friends[k]; friends[k]=friends[k+1]; friends[k+1]=t;}}} for(j=0;j { printf(\ds[j].sex,friends[j].phone,friends[j].address,friends[j].post_num); m=getch(); if(m==' ') break;} printf(\ 流程图: 15 main: 调用Menu_Selec函数打印出主菜单.利用switch实现对菜单功能的选择.利用do-while来实现功能选择是输入不正确的纠错. 源代码: void main() { char choose,yes_no; Data_load(); do { Menu_Select(); choose=getch(); switch(choose) { case '1': Data_Input(); break; /*输入*/ case '2': Data_Show(); break; /*显示*/ case '3': Data_Search(); break; /*查找*/ case '4': Data_Alter(); break; /*修改*/ case '5': Data_Insert(); break; /*插入*/ case '6': Data_Delete(); break; /*删除*/ case '7': Data_Save(); break; /*保存*/ case '0': Exit(); break; /*退出*/ default : printf(\); } if(choose=='0') break; printf(\); do { yes_no=getch(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); if(yes_no=='N'||yes_no=='n') { Exit(); break; } }while(yes_no!='Y'||yes_no!='y'); 16