2021-07-11有基础学c语言一周,用c语言写个电话簿

电话簿要求:含有姓名、电话、重要等级;有添加,查询,显示,删除,修改,关闭等功能。
一般来说这种类型的要用结构体写,但是还没学到结构体,所以我先用全局变量的数组。
全局变量及头文件:

   #include <stdio.h>
   #include<getch.h>
   #include<string.h>
   char vip[100],x;//用于储存重要等级
   char tel[100][10];//用于储存电话
   char name[100][12];//用于储存姓名
   void anygo(void)

 添加功能:
void add(void)
  {
      int i = 0;
     while(i<100)
     {         if(0 == name[i][0])  //  用名字的第一个字符作为标志位判断有无数据
             break;
          i++;
      }
      printf("请输入姓名:\n");
      scanf("%s",name[i]);
      printf("请输入电话:\n");
      scanf("%s",tel[i]);
     printf("请输入级别:\n");
      getchar();
      scanf("%c",&vip[i]);
      printf("添加联系人成功:%s %s %c\n",name[i],tel[i],vip[i]);
      if(i==101)
          printf("满了\n");
 
  }
 

删除功能:

void sc(void)
  {
      printf("请输入要删除人的姓名或电话:");
     char x[12]={};
      scanf("%s",x);
      getchar();
      int i,j=1; 
      for(i=0;i<100;i++)
      {
         if(!strcmp(x,name[i]))//strstr用于模糊查询,strcmp用于景区内查询
          {
             name[i][0]=0;
 				j=0;\\判断有没有查到人
 				printf("删除成功\n");
            break;
         }
 

 
     }
    if(j)
          printf("查无此人\n");//如果j没有置0表示电话簿内没有此人信息
          
 }


查询功能

void cx (void)
  {
    printf("请输入要查询人姓名或电话\n");
     char x[12]={};
     scanf("%s",x);
    getchar();
     int i,j=1;
     for(i=0;i<100;i++)
    {
         if(strstr(name[i],x)||strstr(tel[i],x))//模糊查询
          {
              printf("已找到联系人:");
            printf("%s %s %c\n",name[i],tel[i],vip[i]);
           j=0;//判断标志位

       }
   }

    if(j)
       printf("找不到此人\n");
 
 }

显示功能:

 void xs(void)
 {
     int i;
     for(i=0;i<100;i++)
    {
    if(name[i][0])
   {
        printf("%s %s %c\n",name[i],tel[i],vip[i]);

    }
    }
    if(i==100)
         printf("显示完毕\n");
 }

修改功能:

void xg(void)
 {
    int i=0,j=1;
    printf("请输入要修改的名字");
     char x[10];
     scanf("%s",x);
     getchar();
     for(i=0;i<100;i++)
     {
        if(!strcmp(x,name[i])&&name[i][0]!=0)
        {
             printf("已找到请输入修改内容\n");
             j=0;
             printf("请输入姓名:");
             scanf("%s",name[i]);
             printf("请输入电话:");
             scanf("%s",tel[i]);
             printf("请输入级别:");
             getchar();
             scanf("%c",&vip[i]);
             printf("修改联系人成功:%s %s %c\n",name[i],tel[i],vip[i]);
             break;
         }
    if(j)
         printf("查无此人\n");
 }

主函数:

int main(int argc,const char* argv[])
 {
     for(;;)
     {
 
         printf("a:添加\n");
         printf("b:删除\n");
         printf("c:查询\n");
         printf("d:修改\n");
         printf("e:显示\n");
         printf("其他任意键退出\n");
         scanf("%c",&x);
         switch(x)
         {
             case 'a':add();
            break;
             case 'b':sc();
             break;
             case 'c':cx();
             break;
             case 'd':xg();
             break;
             case 'e':xs();
             break;
             default:return 0;
             break;
         }
     }
  }


基本上的功能有了然后就是一些优化了,比如清屏和\n误输入判断等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值