通讯录管理(C语言实现)

  • 格式:doc
  • 大小:32.50 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/******头文件(.h)***********/

#include /*I/O函数*/

#include /*标准库函数*/

#include /*字符串函数*/

#include

#define M 50 /*定义常数表示记录数*/

typedef struct /*定义数据结构*/

{

char name[20]; /*姓名*/

char units[30]; /*单位*/

char tele[10]; /*电话*/

}ADDRESS;

/******以下是函数原型*******/

int enter(ADDRESS t[]); /*输入记录*/

void list(ADDRESS t[],int n); /*显示记录*/

void search(ADDRESS t[],int n); /*按姓名查找显示记录*/

int delete1(ADDRESS t[],int n); /*删除记录*/

int add(ADDRESS t[],int n); /*插入记录*/

void sort(ADDRESS t[],int n); /*按姓名排序*/

int find(ADDRESS t[],int n,char *s) ; /*查找函数*/

//void print(ADDRESS temp); /*显示指定的一条记录*/

int menu_select(); /*主菜单函数*/

/******主函数开始*******/

void main()

{

// int i;

ADDRESS adr[M]; /*定义结构体数组*/

int length; /*保存记录长度*/

for(;;)/*无限循环*/

{

switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ {

case 0:length=enter(adr);break;/*输入记录*/

case 1:list(adr,length);break; /*显示全部记录*/

case 2:search(adr,length);break; /*查找记录*/

case 3:length=delete1(adr,length);break; /*删除记录*/

case 4:length=add(adr,length); break; /*插入记录*/

case 5:sort(adr,length);break; /*按姓名排序*/

case 6:exit(0); /*如返回值为6则程序结束*/

}

}

}

/*菜单函数,函数返回值为整数,代表所选的菜单项*/

menu_select()

{

char s[80];

int c;

printf("press any key enter menu......\n");/*提示压任意键继续*/

getch(); /*读入任意字符*/

printf("********************MENU*********************\n\n");

printf(" 0. 保存联系人信息\n");

printf(" 1. 列出所有联系人信息\n");

printf(" 2. 按姓名查找联系人\n");

printf(" 3. 删除联系人\n");

printf(" 4. 添加联系人\n");

printf(" 5. 将联系人排序后保存\n");

printf(" 6. 退出\n");

printf("***********************************************\n");

do{

printf("\n Enter you choice(0~11):"); /*提示输入选项*/

scanf("%s",s); /*输入选择项*/

c=atoi(s); /*将输入的字符串转化为整型数*/

}while(c<0||c>11); /*选择项不在0~11之间重输*/

return c; /*返回选择项,主程序根据该数调用相应的函数*/

}

/*输入记录*/

int enter(ADDRESS t[])

{

int n,i=0;

printf("请输入数字:\n");

scanf("%d",&n);

for(i=0;i

{

printf("请输入姓名:\n");

scanf("%s",t[i].name);

printf("请输入单位:\n");

scanf("%s",t[i].units);

printf("请输入电话:\n");

scanf("%s",t[i].tele);

}

return(n);

}

/*显示全部记录*/

void list(ADDRESS t[],int n)

{

int i;

printf("\n姓名\t单位\t电话\n");

for(i=0;i

printf("%s\t%s\t%s\n",t[i].name,t[i].units,t[i].tele); }

/*查找函数*/

int find(ADDRESS t[],int n,char *s)

{

int i=0;

for(i=0;i

if(strcmp(t[i].name,s)==0)

return i;

return -1;

}

/*按姓名查找显示记录*/

void search(ADDRESS t[],int n)

{

int j;

char name[20], *s;

s=name;

printf("请输入姓名:\n");

scanf("%s",name);

j=find(t,n,s);

if(j==-1)

printf("要找的学生不存在!!!\n");

else

{

printf("\n姓名\t单位\t电话\n");

printf("%s\t%s\t%s\n",t[j].name,t[j].units,t[j].tele);

}

}

/*删除记录*/

int delete1(ADDRESS t[],int n)

{

int num=n,k,i=0;

char name1[20];

printf("请输入姓名:\n");

scanf("%s",name1);

for(k=0;k

{

if(strcmp(t[k].name,name1)==0)i=k;

break;

}

for(k=i;k

t[k]=t[k+1];

num--;

return num;