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误输入判断等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 C 语言编写的电话簿程序的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_CONTACTS 100 struct Contact { char name[30]; char phone_number[15]; }; struct Contact phone_book[MAX_CONTACTS]; int num_contacts = 0; void add_contact() { if (num_contacts < MAX_CONTACTS) { printf("请输入联系人姓名:"); scanf("%s", phone_book[num_contacts].name); printf("请输入联系人电话号码:"); scanf("%s", phone_book[num_contacts].phone_number); printf("联系人已成功添加!\n"); num_contacts++; } else { printf("电话簿已满,无法添加新联系人!\n"); } } void search_contact() { char name[30]; printf("请输入要查找的联系人姓名:"); scanf("%s", name); int i; for (i = 0; i < num_contacts; i++) { if (strcmp(name, phone_book[i].name) == 0) { printf("%s 的电话号码是:%s\n", phone_book[i].name, phone_book[i].phone_number); return; } } printf("联系人未找到!\n"); } void delete_contact() { char name[30]; printf("请输入要删除的联系人姓名:"); scanf("%s", name); int i; for (i = 0; i < num_contacts; i++) { if (strcmp(name, phone_book[i].name) == 0) { int j; for (j = i; j < num_contacts-1; j++) { strcpy(phone_book[j].name, phone_book[j+1].name); strcpy(phone_book[j].phone_number, phone_book[j+1].phone_number); } num_contacts--; printf("联系人已成功删除!\n"); return; } } printf("联系人未找到!\n"); } void display_contacts() { if (num_contacts > 0) { printf("电话簿中的联系人:\n"); int i; for (i = 0; i < num_contacts; i++) { printf("%s:%s\n", phone_book[i].name, phone_book[i].phone_number); } } else { printf("电话簿是空的!\n"); } } int main() { while (1) { printf("\n电话簿操作选项:\n"); printf("1. 添加联系人\n"); printf("2. 查找联系人\n"); printf("3. 删除联系人\n"); printf("4. 显示所有联系人\n"); printf("5. 退出程序\n"); int choice; printf("请输入您的选择:"); scanf("%d", &choice); switch (choice) { case 1: add_contact(); break; case 2: search_contact(); break; case 3: delete_contact(); break; case 4: display_contacts(); break; case 5: printf("感谢使用电话簿!\n"); exit(0); default: printf("无效的选择,请重试!\n"); } } return 0; } ``` 该程序使用一个名为 `phone_book` 的结构体数组来存储联系人的姓名和电话号码。程序提供了以下操作选项: 1. 添加联系人:输入联系人姓名和电话号码,将它们添加到电话簿中。 2. 查找联系人:输入联系人姓名,查找并显示其电话号码。 3. 删除联系人:输入联系人姓名,将其从电话簿中删除。 4. 显示所有联系人:显示电话簿中所有联系人的姓名和电话号码。 5. 退出程序:退出程序。 您可以根据需要修改该程序,以更好地适应您的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值