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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么