通讯录C语言程序设计报告书 联系客服

发布时间 : 星期六 文章通讯录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