BvxiE 2022-01-05 21:00 采纳率: 100%
浏览 28
已结题

二级菜单只可以部分实现,该如何更改?运行无误

中心代码,

typedef struct
{
    int num;
    char name[20];
    float score_y,score_s,score_w,score_z,sum;
}STU;


void input(STU*a,int*n)
{
    STU *p;
    int i=1;
    float sum=0;
    system("cls");
    printf("\n请输入学生人数(1-80):");
    scanf("%d",n);
    printf("\n请输入学生信息:学号 姓名 成绩(语文 数学 英语 专业):");
    for(p=a;p<a+(*n);p++)
    {
        printf("\n%d:",i++);//学生编号
        scanf("%d %s %f %f %f %f",&p->num,p->name,&p->score_y,&p->score_s,&p->score_w,&p->score_z);
        p->sum=p->score_y+p->score_s+p->score_w+p->score_z;
    }
    printf("\n按任意键返回!");
    getch();
}


void find_stud(STU*a,int n)
{
    int k=0;
    int m;
    STU*p;
    STU stu[SIZE];
    printf("\n请输入要查询的学号:");
    scanf("%f",&m);
    for(p=a;p<a+n;p++)
    {
        if(m==p->num)
        {
            k=1;//找到匹配项,则给k赋值为1
            printf("已找到,是:%d %s %.1f %.1f %.1f %.1f\n",p->num,p->name,p->score_s,p->score_w,p->score_z);
            break;
        }
    }
    if(!k)
        printf("找不到查询成绩!\n");
    printf("\n按任意键返回!");
    getch();
}
void find_name(STU *a,int n)
{
    int k=0;
    char m;
    STU*p;
    STU stu[SIZE];
    printf("\n请输入要查询的姓名:");
    scanf("%s",&m);
    for(p=a;p<a+n;p++)
    {
        if(m==p->name)
        {
            k=1;//找到匹配项,则给k赋值为1
            printf("已找到,是:%d %s %.1f %.1f %.1f %.1f\n",p->num,p->name,p->score_y,p->score_s,p->score_w,p->score_z);
            break;
        }
    }
    if(!k)
        printf("找不到查询的成绩!\n");
    printf("\n按任意键返回!");
    getch();
}
void find(STU*a,int n)
{
    int i,num;
    STU stu[SIZE];
    system("cls");
    menu1();
    scanf("%d",&i);
    switch(i)
    {
    case 1:find_stud(stu,num);break;
    case 2:find_name(stu,num);break;
    case 3:printf("退出系统\n");exit(0);
    default:printf("重新输入\n");
    }
    getch();
}
void sort_p(STU *a,int n)
{
    int i,j;
    STU t;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if((a[j].sum)<(a[j+1].sum))
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    printf("\n成绩升序排序结果:\n");
    for(i=0;i<n;i++)
    {
        printf("%10d %s %.1f %.1f %.1f %.1f\n",a[i].num,a[i].name,a[i].score_y,a[i].score_s,a[i].score_w,a[i].score_z);
    }
    printf("\n\n按任意键返回!");
    getch();
}
void sort_d(STU *a,int n)
{
    int i,j;
    STU t;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if((a[j].sum)<(a[j+1].sum))
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    printf("\n成绩降序排序结果:\n");
    for(i=10;i>0;i--)
    {
        printf("%d %s %.1f %.1f %.1f %.1f\n",a[i].num,a[i].name,a[i].score_y,a[i].score_s,a[i].score_w,a[i].score_z);
    }
    printf("\n\n按任意键返回!");
    getch();
}
void sort_y(STU *a,int n)
{
    int i,j;
    STU t;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if((a[j].score_y)<(a[j+1].score_y))
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    printf("\n语文成绩排序结果:\n");
    for(i=10;i>0;i--)
    {
        printf("%d %s %.1f\n",a[i].num,a[i].name,a[i].score_y);
    }
    printf("\n\n按任意键返回!");
    getch();
}
void sort_s(STU *a,int n)
{
    int i,j;
    STU t;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if((a[j].score_s)<(a[j+1].score_s))
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    printf("\n数学成绩排序结果:\n");
    for(i=10;i>0;i--)
    {
        printf("%d %s %.1f\n",a[i].num,a[i].name,a[i].score_s);
    }
    printf("\n\n按任意键返回!");
    getch();
}
void sort_w(STU *a,int n)
{
    int i,j;
    STU t;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if((a[j].score_w)<(a[j+1].score_w))
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    printf("\n英语成绩排序结果:\n");
    for(i=10;i>0;i--)
    {
        printf("%d %s %.1f\n",a[i].num,a[i].name,a[i].score_w);
    }
    printf("\n\n按任意键返回!");
    getch();
}
void sort_z(STU *a,int n)
{
    int i,j;
    STU t;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if((a[j].score_z)<(a[j+1].score_z))
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    printf("\n专业成绩排序结果:\n");
    for(i=10;i>0;i--)
    {
        printf("%d %s %.1f\n",a[i].num,a[i].name,a[i].score_z);
    }
    printf("\n\n按任意键返回!");
    getch();
}
void sort(STU*a,int n)
{
    int z,num,sum;
    STU stu[SIZE];
    system("cls");
    menu2();
    scanf("%d",&z);
    switch(z)
    {
        case 1:sort_p(stu,sum);break;
        case 2:sort_d(stu,sum);break;
        case 3:sort_d(stu,num);break;
        case 4:sort_d(stu,num);break;
        case 5:sort_d(stu,num);break;
        case 6:sort_d(stu,num);break;
        case 7:printf("退出系统\n");exit(0);
        default:printf("重新输入\n");
    }
    getch();
}


  • 写回答

1条回答 默认 最新

  • 关注

    你代码具体有什么问题?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分