#include #include #define N 100 typedef
struct
//定义结构组 { char num[N];
char name[20];
char tele[15];
char add[20];
char emal[15]; }STUDENT; STUDENT stu[N] ; int Menu();
//声明函数 int Key(); int Get(STUDENT stu[N]); void Show(STUDENT stu[],int n); int Del(STUDENT stu[],int n); int find(STUDENT stu[],int n); int find2(STUDENT stu[],int n);
void Search(STUDENT stu[],int n); void Search2(STUDENT stu[],int n); void Modify(STUDENT stu[],int n); void Sort(STUDENT stu[],int n); int Add(STUDENT stu[],int n); int Exit();
/****************************************其它函************************************/ int Menu() {int a; printf(\"\\t ****************************************************\\n\"); printf(\"\\t ***********
*************\\n\\n\"); printf(\"\\t ********* ☆欢迎亲使用本电话簿管理程序☆
*********\\n\\n\"); printf(\"\\t ***********
*************\\n\"); printf(\"\\t ****************************************************\\n\\n\");
printf(\"*******************************主菜**********************************\\n\"); printf(\"\\t\\t\\t
0.输入信息\\n\"); printf(\"\\t\\t\\t
1.显示信息\\n\"); printf(\"\\t\\t\\t
2.删除信息\\n\"); printf(\"\\t\\t\\t
3.按人名查找信息\\n\"); printf(\"\\t\\t\\t
4.按电话号码查找信息\\n\"); printf(\"\\t\\t\\t
5.修改信息\\n\"); printf(\"\\t\\t\\t
6.添加信息\\n\"); printf(\"\\t\\t\\t
7.按人名排序信息\\n\");
数
单 printf(\"\\t\\t\\t
8.退出信息\\n\"); do
{printf(\"\\t\\t\\t 请输入0-8\\n\"); scanf(\"%d\",&a);} while(a8); return a;}
int Key()
//口令验证函数 {char keyput[20]; int keynum=3; for(keynum=3;keynum>0;keynum--) {
if(keynum==0)
return(0);
printf(\"请正确输入口令(201314) (你还有%d次机会):\",keynum);
scanf(\"%s\",keyput);
if(!strcmp(keyput,\"201314\"))
return(1);
} }
int Get(STUDENT stu[N])
//输入信息
{int i,n;
printf(\"\\n请输入要加入用户的人数 \\n\");
scanf(\"%d\",&n);
printf(\"其输入信息 \\n\");
for(i=0;i
{printf(\"请输入编号:\\n\");
scanf(\"%s\",stu[i].num); printf(\"\\n请输入姓名\\n:\");
scanf(\"%s\",stu[i].name);
printf(\" \\n请输入电话:\\n\"); scanf(\"%s\",stu[i].tele); printf(\" \\n请输入地址:\\n\"); scanf(\"%s\",stu[i].add); printf(\" \\n请输入emal:\\n\"); scanf(\"%s\",stu[i].emal); printf(\"编号:%s\\n姓名:%s\\n电话:%s\\n位:%s\\nemal:%s\\n\",stu[i].num,stu[i].name,stu[i].tele,stu[i].add,stu[i].emal); }
return n; }
void Show(STUDENT stu[],int n)
//显示信息
{int i;
工
作
单for(i=0;i
find(STUDENT stu[],int n)
//人名查找函数
{int i;
char
s[20];
printf(\"请输入的姓名\\n\");
scanf(\"%s\",s);
for(i=0;i
if(strcmp(s,stu[i].name)==0)return i;
return i;
}
int
find2(STUDENT stu[],int n)
//电话号码查找函数
{int i;
char
s[20];
printf(\"请输入的电话号码\\n\");
scanf(\"%s\",s);
for(i=0;i
if(strcmp(s,stu[i].tele)==0)return i;
return i;
}
int Del(STUDENT stu[],int n)
//删除信息 {int i,j,ch; i=find(stu,n); if(i>n-1)
{printf(\"没有找到要删除的记录,是否重新输入1/0\\n\"); scanf(\"%d\",&ch); if(ch==1)n=Del(stu,n);} else
{printf(\"编号:
%s\\n
姓
名
:
%s\\n
电
话
:
%s\\n位:%s\\nemal:%s\\n\",stu[i].num,stu[i].name,stu[i].tele,stu[i].add,stu[i].emal); printf(\"是否确定要删除:%d是%2d否\\n\",1,0);}
scanf(\"%d\",&ch);
if(ch==1)
{for(j=i+1;j
{strcpy(stu[j-1].name,stu[j].name);
strcpy(stu[j-1].tele,stu[j].tele);
strcpy(stu[j-1].add,stu[j].add);
strcpy(stu[j-1].emal,stu[j].emal);}
n--;
工作单
工作单
printf(\"删除成功\\n\");}
return n; }
void Search(STUDENT stu[],int n)
//按人名查找信息 {int i,ch; i=find(stu,n); if(i>n-1)
{printf(\"没有找到要查找的信息,是否重新输入1/0\\n\");
scanf(\"%d\",&ch); if(ch==1)Search(stu,n);}
else
printf(\"编号:
%s\\n
姓
名
:
%s\\n
电
话
:
%s\\n位:%s\\nemal:%s\\n\",stu[i].num,stu[i].name,stu[i].tele,stu[i].add,stu[i].emal);}
void Search2(STUDENT stu[],int n)
//按电话号码查找信息 {int i,ch; i=find2(stu,n); if(i>n-1)
{printf(\"没有找到要查找的信息,是否重新输入1/0\\n\");
scanf(\"%d\",&ch); if(ch==1)Search2(stu,n);}
else
printf(\"编号:%s\\n姓名:%s\\n电话:%s\\n位:%s\\nemal:%s\\n\",stu[i].num,stu[i].name,stu[i].tele,stu[i].add,stu[i].emal);}
void Modify(STUDENT stu[],int n)
//修改信息 {int i,ch; i=find(stu,n); if(i>n-1)
{printf(\"没有找到要修改的信息,是否重新输入1/0\\n\");
scanf(\"%d\",&ch); if(ch==1)Modify(stu,n);}
else
{printf(\"编号:
%s\\n
姓
名
:
%s\\n
电
话
:
%s\\n位:%s\\nemal:%s\\n\",stu[i].num,stu[i].name,stu[i].tele,stu[i].add,stu[i].emal);
printf(\"是否确定要修改:%d是%2d否\\n\",1,0);}
scanf(\"%d\",&ch);
if(ch==1)
{printf(\"编号:\\n\");
scanf(\"%s\",stu[i].num);
printf(\"\\n姓名\\n:\");
scanf(\"%s\",stu[i].name);
printf(\" \\n电话:\\n\");
scanf(\"%s\",stu[i].tele);
工
作
单
工
作
单
工
作
单
printf(\" \\n工作单位:\\n\");
scanf(\"%s\",stu[i].add);
printf(\" \\nemal:\\n\");
scanf(\"%s\",stu[i].emal);
printf(\"修改成功\\n\");}}
int Add(STUDENT stu[],int n)
//添加信息
{int i,j;
if(N
printf(\"储存已满\");
else
{printf(\"请输入要插入的位置\\n\"); scanf(\"%d\",&i);
for(j=n-1;j>=i;j--)
{strcpy(stu[j+1].name,stu[j].name);
strcpy(stu[j+1].tele,stu[j].tele);
strcpy(stu[j+1].add,stu[j].add);
strcpy(stu[j+1].emal,stu[j].emal);
}
printf(\"其输入要插入的信息 \\n\");
printf(\"编号:\\n\");
scanf(\"%s\",stu[i].num);
printf(\"\\n请输入姓名:\\n\");
scanf(\"%s\",stu[i].name);
printf(\" \\n请输入电话:\\n\");
scanf(\"%s\",stu[i].tele); printf(\" \\n请输入工作单位:\\n\"); scanf(\"%s\",stu[i].add); printf(\" \\n请输入emal:\\n\"); scanf(\"%s\",stu[i].emal);
printf(\"添加成功\"); n++;}
return n;
}
void Sort(STUDENT stu[],int n) {STUDENT tmp; int i,j; for (i=0;i0) {tmp=stu[j]; stu[j]=stu[j+1];
stu[j+1]=tmp;} for (i=0;i
int Exit()
//退出通讯录 {int n; n=-1; printf(\"************************************************************************\"); return n;}
int main()
//主函数 {int go; go=Key(); if(go==1) {int length,m=0;
while(m>=0)
{switch (Menu())
{ case 0:length=Get(stu);break;
case 1:Show(stu,length);break;
case 2:length=Del(stu,length);break;
case 3:Search(stu,length);break;
case 4:Search2(stu,length);break;
case 5:Modify(stu,length);break;
case 6:length=Add(stu,length);break;
case 7:Sort(stu,length);break;
case 8:m=Exit();break;
default:printf(\"输入错误,请重新输入\\n\"); }
}return 0;} else printf(\"三次密码错误,程序不能运行!\"); }
欢
迎
再
次
工作单
使用