inmadiu 2023-02-16 12:09 采纳率: 75%
浏览 16
已结题

课程信息查找 改掉goto


void search()          //课程信息查询
{
   int a,num;
   int t=1;
   char type[10],min[10];
   SUB *ptr;
    L1:system("cls");
   printf("\n\n\t\t==================请选择查询方式===================\n");
   printf("\n\t\t\t1---按课程名称查找\n");
   printf("\n\t\t\t2---按课程性质查找\n");
   printf("\n\t\t\t3---按学分查找\n");
   printf("\n\t\t\t4---退出查找\n");
   printf("\n\n\t\t===================================================\n");
   printf("\n\n请选择(1-4):[ ]\b\b");
   scanf("%d",&a);
   switch(a)
   {
        case 1:printf("请输入要查找的课程的名称:");
            scanf("%s",min);
            printf("课程编号  课程名称  课程性质  总学时  授课学时  实验或上机学时  学分  开课学期\n");
            for(ptr=head;ptr;ptr=ptr->next)
                if(strcmp(min,ptr->name)==0)
                {
                 printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);
                 t=0;
                }
            if(t) 
                printf("\t\n未找到!\n");
            t=1;
            system("pause");
            goto L1;
                
       case 2:printf("请输入要查找的课程的性质:");
           scanf("%s",type);
           printf("课程编号  课程名称  课程性质  总学时  授课学时  实验或上机学时  学分  开课学期\n");
           for(ptr=head;ptr;ptr=ptr->next)
               if(strcmp(type,ptr->kind)==0)  
                {
                     printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);
                     t=0;
                }
            if(t) 
                printf("\t\n未找到!\n");
            t=1;
            system("pause");
            goto L1;     
  
      case 3:printf("输入要查找的课程的学分:");
           scanf("%d",&num);
           printf("课程编号  课程名称  课程性质  总学时  授课学时  实验或上机学时  学分  开课学期\n");
           for(ptr=head;ptr;ptr=ptr->next)
               if(ptr->score==num)
                {
                     printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);
                     t=0;
                }
            if(t) 
                printf("\n\t未找到!\n");
            t=1;
            system("pause"); 
            goto L1;
            
        case 4:break;
    }
}

这里的goto查找可以帮忙换成别的吗

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2023-02-16 12:15
    关注

    加个while(1)就行

     
    void search()          //课程信息查询
    {
       int a,num;
       int t=1;
       char type[10],min[10];
       SUB *ptr;
        while(1)
        {
         system("cls");
       printf("\n\n\t\t==================请选择查询方式===================\n");
       printf("\n\t\t\t1---按课程名称查找\n");
       printf("\n\t\t\t2---按课程性质查找\n");
       printf("\n\t\t\t3---按学分查找\n");
       printf("\n\t\t\t4---退出查找\n");
       printf("\n\n\t\t===================================================\n");
       printf("\n\n请选择(1-4):[ ]\b\b");
       scanf("%d",&a);
       switch(a)
       {
            case 1:printf("请输入要查找的课程的名称:");
                scanf("%s",min);
                printf("课程编号  课程名称  课程性质  总学时  授课学时  实验或上机学时  学分  开课学期\n");
                for(ptr=head;ptr;ptr=ptr->next)
                    if(strcmp(min,ptr->name)==0)
                    {
                     printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);
                     t=0;
                    }
                if(t) 
                    printf("\t\n未找到!\n");
                t=1;
                system("pause");
                break;
                    
           case 2:printf("请输入要查找的课程的性质:");
               scanf("%s",type);
               printf("课程编号  课程名称  课程性质  总学时  授课学时  实验或上机学时  学分  开课学期\n");
               for(ptr=head;ptr;ptr=ptr->next)
                   if(strcmp(type,ptr->kind)==0)  
                    {
                         printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);
                         t=0;
                    }
                if(t) 
                    printf("\t\n未找到!\n");
                t=1;
                system("pause");
                break;   
      
          case 3:printf("输入要查找的课程的学分:");
               scanf("%d",&num);
               printf("课程编号  课程名称  课程性质  总学时  授课学时  实验或上机学时  学分  开课学期\n");
               for(ptr=head;ptr;ptr=ptr->next)
                   if(ptr->score==num)
                    {
                         printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);
                         t=0;
                    }
                if(t) 
                    printf("\n\t未找到!\n");
                t=1;
                system("pause"); 
                break;
                
            case 4:exit(0);
        }
    }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。