通讯录管理(C语言实现)
- 格式:doc
- 大小:32.50 KB
- 文档页数:4
/******头文件(.h)***********/
#include
#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;