用结构体数组写的通讯录

来源:互联网 发布:小麦淘商城 知乎 编辑:程序博客网 时间:2024/06/01 07:55
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

struct student
{
 int num;
 char name[30];
 char tel[30];
}  ;
   struct student stu[50]={{0,"",""}};   //(定义一个结构体数组,并进行部分初始化。)

void create()
{
 static int i;
 for(i=0;i<50;i++)
 {
  if(stu[i].num == 0 )  //(寻找一个空的数组元素stu[i]方便于新通讯的写入。)
  {
   printf("请输入该同学的学号:\n");
   scanf("%d",&stu[i].num);
   printf("请输入该同学的姓名:\n");
      scanf("%s",stu[i].name);
   printf("请输入该同学的电话:\n");
   scanf("%s",stu[i].tel);
   break;
  }
 }
}





void delate()
{
 static int j;
 char x[30];
 printf("请输入您想要删除的通讯录的同学姓名:");
 scanf("%s",x);
 for(j=0;j<50;j++)
  { 
   if(strcmp(stu[j].name,x)==0)  //(找到目标操作数组元素stu[j]。)
   break;
                }
 
 if(j==49)   //(当要删除的同学在最后一个元素就不能用下面的方法(用后面的数组元素复制到前一个数组元素)来操作。)
  {
   stu[j].num=0;
   strcpy(stu[j].name,'\0');
   strcpy(stu[j].tel,'\0');
  }
 for(j;j<49;j++)
  {
   stu[j].num=stu[j+1].num;
   strcpy(stu[j].name,stu[j+1].name);
   strcpy(stu[j].tel,stu[j+1].tel);
  }

}




void update()
{
 static int b;
 char z[30];
 printf("请输入您想更改的通讯录的同学姓名:\n");
 scanf("%s",z);
 for(b=0;b<50;b++)
  { 
   if(strcmp(stu[b].name,z)==0)
   break;
                }
 
 printf("您想将该同学的学号更改为:\n");
 scanf("%d",&stu[b].num);
 printf("您想将该同学的姓名更改为:\n");
 scanf("%s",stu[b].name);
 printf("您想将该同学的电话更改为:\n");
 scanf("%s",stu[b].tel);
}





void scr()
{
 static c;
 char y[30]; 
 printf("请您输入您想查看访问的通讯录的同学姓名:");
 scanf("%s",y);
 for(c=0;c<50;c++)
  { 
   if(strcmp(stu[c].name,y)==0)
   break;
                }
 printf("%d\t,%s\t,%s\n",stu[c].num,stu[c].name,stu[c].tel);
}


void printlist()
{
 int k;
 for(k=0;k<50;k++)
  {
   printf("%d\t,%s\t,%s\n",stu[k].num,stu[k].name,stu[k].tel);
  }

}




int main()
{
 
 char a; 
 printf("************   欢迎来到苏嵌154班(南通)通讯录!  **************************   ");
 printf("\n");
 while(1)
  {
   printf("请输入您想要的操作:  c:添加新同学的通讯信息;\n d:删除某位同学的通讯信息;\n u:改正某位同学的通讯信息;\n s:查看访问某位同学的通讯信息 \n;  p  :输出该通讯录所有同学的通讯信息;\n e : 退出\n");
   printf("\n");
   scanf("%d",&a);
 
  switch(a)
   {
    case 'c':create();
      break;
    case 'd':delate();
      break;
    case 'u':update();
      break;
    case 's':scr();
      break;
    case 'p':printlist();
      break;
    case 'e':exit(1);
      break;
    default:
      printf("输入有误,请您重新输入!\n");
      break;
   }
  }
 

}

原创粉丝点击