#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student
{
char rcord[20];
char name[20];//姓名的字节长度最大为8;
char phone[20];
char qq[20];
};
int num=0;//全局变量
struct student stu[1000];//最大可存1000个名片
void student ();//主菜单
void student1 ();//添加联系人
void student2 ();//显示通讯录
void student3 ();//查找联系人
void student3_1 ();//按姓名查找
void student3_2 ();//按学号查找
void student3_3 ();//按电话查找
void student4 ();//删除联系人
void student4_1 ();//按姓名删除
void student4_2 ();//按学号删除
void student4_3 ();//按电话删除
void main()//主函数
{
student ();
}
void student ()//主界面
{
char a;
system ("cls");
system ("color f4");
printf ("\n\n\n\n\n\n\n");
printf ("\t\t\t 【学生通讯录管理系统】\n");
printf ("================================================================================\n");
printf ("\t\t\t\t**************\n");
printf ("\t\t\t\t*1.添加联系人*\n");
printf ("\t\t\t\t*2.显示通讯录*\n");
printf ("\t\t\t\t*3.查找联系人*\n");
printf ("\t\t\t\t*4.删除联系人*\n");
printf ("\t\t\t\t*0.退出该程序*\n");
printf ("\t\t\t\t**************\n");
printf ("================================================================================\n");
scanf ("%d",&a);
switch (a)
{
case 0: break;
case 1:
{
student1 ();
student ();
break;
}
case 2:
{
student2();
break;
}
case 3:
{
student3();
student ();
break;
}
case 4:
{
student4();
student ();
break;
}
}
}
void student1 ()//添加联系人
{
int i,k;
system ("color 84");
for (i=0;i<=200;i++)
{
system ("cls");
printf ("\n\n\t输入学号\n\t");
scanf ("%s",stu[num].rcord );
printf ("\n\n\t输入姓名\n\t");
scanf ("%s",stu[num].name);
printf ("\n\n\t输入电话\n\t");
scanf ("%s",stu[num].phone);
printf ("\n\n\t输入Q Q\n\t");
scanf ("%s",stu[num].qq);
num++;
printf ("是否继续添加(1是0否)");
scanf("%d",&k);
if (k==1)
printf ("===============================================================================\n");
else
break;
}
}
void student2 ()//显示通讯录
{
system ("cls");
system ("color e0");
int i;
char k;
if (num==0)
printf ("\n\n\n\t\t\t您的通讯录为空!\n");
for (i=0;i<num;i++)
{
printf ("\n学号:%s\n姓名:%s\n电话:%s\nQ Q:%s\n",stu[i].rcord,stu[i].name,stu[i].phone,stu[i].qq);
printf ("================================================================================\n");
}
printf ("按任意键返回主菜单");
scanf ("%s",&k);
student ();
}
void student3 ()//查找联系人
{
int i;
system ("cls");
system ("color 40");
printf ("\n\n\n\n\n\n**************************************\n");
printf ("\t\t1按姓名查找\n");
printf ("\t\t2按学号查找\n");
printf ("\t\t3按电话查找\n");
printf ("**************************************\n");
printf ("请选择:(按其他数字键返回!)");
scanf ("%d",&i);
switch (i)
{
case 1:
{
student3_1 ();
break;
}
case 2:
{
student3_2 ();
break;
}
case 3:
{
student3_3 ();
break;
}
}
}
void student3_1 ()//按姓名查找
{
int k,n;
char name[20];
printf ("请输入姓名:");
scanf ("%s",&name);
for (k=0;k<num;k++)
{
if (strcmp(stu[k].name,name)==0)
{
printf ("\n\t学号:%s\n",stu[k].rcord);
printf ("\n\t姓名:%s\n",stu[k].name);
printf ("\n\t电话:%s\n",stu[k].phone);
printf ("\n\tQ Q:%s\n",stu[k].qq);
}
}
printf ("是否继续查找(1是0否)");
scanf ("%d",&n);
if (n==1)
student3 ();
else
student ();
}
void student3_2 ()//按学号查找
{
int k,n;
char rcord[20];
printf ("请输入学号:");
scanf ("%s",&rcord);
for (k=0;k<num;k++)
{
if (strcmp(stu[k].rcord,rcord)==0)
{
printf ("\n\t学号:%s\n",stu[k].rcord);
printf ("\n\t姓名:%s\n",stu[k].name);
printf ("\n\t电话:%s\n",stu[k].phone);
printf ("\n\tQ Q:%s\n",stu[k].qq);
}
}
printf ("是否继续查找(1是0否)");
scanf ("%d",&n);
if (n==1)
student3 ();
else
student ();
}
void student3_3 ()//按电话查找
{
int k,n;
char phone[20];
printf ("请输入电话:");
scanf ("%s",&phone);
for (k=0;k<num;k++)
{
if (strcmp(stu[k].phone,phone)==0)
{
printf ("\n\t学号:%s\n",stu[k].rcord);
printf ("\n\t姓名:%s\n",stu[k].name);
printf ("\n\t电话:%s\n",stu[k].phone);
printf ("\n\tQ Q:%s\n",stu[k].qq);
}
}
printf ("是否继续查找(1是0否)");
scanf ("%d",&n);
if (n==1)
student3 ();
else
student ();
}
void student4 ()//删除联系人
{
int i;
system ("cls");
system ("color 60");
printf ("\n\n\n\n\n\n**************************************\n");
printf ("\t\t1按姓名删除\n");
printf ("\t\t2按学号删除\n");
printf ("\t\t3按电话删除\n");
printf ("**************************************\n");
printf ("请选择:(按其他数字键返回!)");
scanf ("%d",&i);
switch (i)
{
case 1:
{
student4_1 ();
break;
}
case 2:
{
student4_2 ();
break;
}
case 3:
{
student4_3 ();
break;
}
}
}
void student4_1 ()//按姓名删除
{
int i,k,n,a;
char name[20];
printf ("请输入姓名:");
scanf ("%s",&name);
for (k=0;k<num;k++)
{
if (strcmp(stu[k].name,name)==0)
{
printf ("\n\t学号:%s\n",stu[k].rcord);
printf ("\n\t姓名:%s\n",stu[k].name);
printf ("\n\t电话:%s\n",stu[k].phone);
printf ("\n\tQ Q:%s\n",stu[k].qq);
printf ("确定要删除给联系人!(1是0否)");
scanf ("%d",&i);
if (i==1)
{
for (a=k;a<num-1;a++)
stu[a]=stu[a+1];
num--;
}
break;
}
}
printf ("是否继续删除(1是0否)");
scanf ("%d",&n);
if (n==1)
student4 ();
else
student ();
}
void student4_2 ()//按学号删除
{
int i,k,n,a;
char rcord[20];
printf ("请输入学号:");
scanf ("%s",&rcord);
for (k=0;k<num;k++)
{
if (strcmp(stu[k].rcord,rcord)==0)
{
printf ("\n\t学号:%s\n",stu[k].rcord);
printf ("\n\t姓名:%s\n",stu[k].name);
printf ("\n\t电话:%s\n",stu[k].phone);
printf ("\n\tQ Q:%s\n",stu[k].qq);
printf ("确定要删除给联系人!(1是0否)");
scanf ("%d",&i);
if (i==1)
{
for (a=k;a<num-1;a++)
stu[a]=stu[a+1];
num--;
}
}
}
printf ("是否继续删除(1是0否)");
scanf ("%d",&n);
if (n==1)
student4 ();
else
student ();
}
void student4_3 ()//按电话删除
{
int i,k,n,a;
char phone[20];
printf ("请输入电话:");
scanf ("%s",&phone);
for (k=0;k<num;k++)
{
if (strcmp(stu[k].phone,phone)==0)
{
printf ("\n\t学号:%s\n",stu[k].rcord);
printf ("\n\t姓名:%s\n",stu[k].name);
printf ("\n\t电话:%s\n",stu[k].phone);
printf ("\n\tQ Q:%s\n",stu[k].qq);
printf ("确定要删除给联系人!(1是0否)");
scanf ("%d",&i);
if (i==1)
{
for (a=k;a<num-1;a++)
stu[a]=stu[a+1];
num--;
}
}
}
printf ("是否继续删除(1是0否)");
scanf ("%d",&n);
if (n==1)
student4 ();
else
student ();
}