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 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?