C语言分治思维,需用函数如第二张图

题目:现有N个学生M门课程的学生成绩信息需要存储和处理。其中,学生信息包含学号、姓名、各科成绩等信息。使用分治思维对问题进行设计,建议使用菜单界面进行功能布局。

至少完成以下功能:

(1)从文件中读取学生的学号、姓名及成绩等信息:

(2)计算各学生成绩的平均分和总分:

(3)统计各分数段的学生人数及所占的百分比并输出。

(4)将N个学生的学号、姓名及M门课程的成绩、总分、平均分写到文件存储。

img

img

基于GPT:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
struct student
{
    char name[30];
    int num;
    int score1;
    int score2;
    int score3;
}stu[MAX];
int n=0;

void ReadFile()
{
    FILE* fp;
    fp=fopen("score.txt","r");
    if(fp==NULL)
    {
        printf("打开文件失败\\n");
        exit(0);
    }
    while(fscanf(fp,"%d%s%d%d%d",&stu[n].num,stu[n].name,&stu[n].score1,&stu[n].score2,&stu[n].score3)!=EOF)
    {
        n++;
    }
    printf("读取文件成功\\n");
    fclose(fp);
}

void cal1()
{
    int i,sum=0,ave;
    for(i=0;i<n;i++)
    {
        sum+=stu[i].score1+stu[i].score2+stu[i].score3;
    }
    ave=sum/(n*3);
    printf("总分为%d,平均分为%d\\n",sum,ave);
}

void cal2()
{
    int i,a=0,b=0,c=0,d=0;
    float pa,pb,pc,pd;
    for(i=0;i<n;i++)
    {
        if(stu[i].score1<60||stu[i].score2<60||stu[i].score3<60)
        {
            d++;
        }
        else if((stu[i].score1+stu[i].score2+stu[i].score3)/3>=90)
        {
            a++;
        }
        else if((stu[i].score1+stu[i].score2+stu[i].score3)/3>=80)
        {
            b++;
        }
        else if((stu[i].score1+stu[i].score2+stu[i].score3)/3>=60)
        {
            c++;
        }
    }
    pa=1.0*a/n,pb=1.0*b/n,pc=1.0*c/n,pd=1.0*d/n;
    printf("90分以上人数为%d,占比为%.2f%%\\n",a,pa*100);
    printf("80~89分人数为%d,占比为%.2f%%\\n",b,pb*100);
    printf("60~79分人数为%d,占比为%.2f%%\\n",c,pc*100);
    printf("不及格人数为%d,占比为%.2f%%\\n",d,pd*100);
}

void WriteFile()
{
    FILE *fp;
    fp=fopen("result.txt","w");
    if(fp==NULL)
    {
        printf("打开文件失败\\n");
        exit(0);
    }
    int i,j,sum;
    for(i=0;i<n;i++)
    {
        sum=stu[i].score1+stu[i].score2+stu[i].score3;
        fprintf(fp,"%d %s %d %d %d %d %d %d\\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,sum,sum/3);
    }
    printf("写入文件成功\\n");
    fclose(fp);
}

int main()
{
    printf("请选择功能:\\n");
    printf("1. 从文件中读取学生的学号、姓名及成绩等信息\\n");
    printf("2. 计算各学生成绩的平均分和总分\\n");
    printf("3. 统计各分数段的学生人数及所占的百分比并输出\\n");
    printf("4. 将N个学生的学号、姓名及M门课程的成绩、总分、平均分写到文件存储\\n");
    int choice;
    scanf("%d",&choice);
    switch(choice)
    {
        case 1:
            ReadFile();
            break;
        case 2:
            cal1();
            break;
        case 3:
            cal2();
            break;
        case 4:
            WriteFile();
            break;
        default:
            printf("输入有误\\n");
            break;
    }
    return 0;
}


你都问GPT了,直接让他给你代码啊,还来CSDN提问问代码,得到的依旧是GPT代码