禾粥 2021-09-15 13:06 采纳率: 100%
浏览 128
已结题

学生成绩管理系统实验

1.将10个学生信息(有学号,姓名,性别,年龄,数学成绩,英语成绩,数据成绩,操作成绩)存入到磁盘文件中
2.将磁盘文件中的所有学生记录读入内存中一块静态顺序空间中(使用数组申请),求出所有学生数学的平均成绩
3.将磁盘文件中的所有学生记录读入内存中一块动态申请的顺序空间中(使用函数malloc或new申请),求出所有学生各门课程的平均成绩
编了半天,啥也不是,孩子脑子不太行,求大佬解救

  • 写回答

5条回答 默认 最新

  • 禾粥 2021-09-15 21:00
    关注

    #include<stdio.h>
    #include<stdlib.h>
    struct student_type{
    char id[5];
    char name[8];
    char sex[3];
    int age;
    int math;
    int eng;
    int ds;
    int os;
    };
    void static_read(char *filename)
    {
    FILE *fp;
    int i;
    struct student_type s[10];
    int msum=0;
    if((fp=fopen(filename,"r"))==NULL)
    {
    printf("文件打开失败");
    }
    else
    {
    printf("使用静态顺序空间读取文件内容,结果如下: \n");
    for(i=0;i<10;i++)
    {
    fscanf(fp,"%s %s %s %d %d %d %d %d",s[i].id,s[i].name,s[i].sex,&s[i].age,&s[i].math,&s[i].eng,&s[i].ds,&s[i].os);
    msum+=s[i].math;
    }
    printf("所有学生数学的平均成绩为: ");
    printf("%.1f\n\n",msum/10.0);
    fclose(fp);
    }
    }
    void dynamic_read(char *filename)
    {
    FILE *fp;
    int i;
    int msum=0,esum=0,dsum=0,osum=0;
    struct student_type *p;
    if((fp=fopen(filename,"r"))==NULL)
    {
    printf("文件打开失败");
    }
    else
    {
    p=(struct student_type *)malloc(sizeof(struct student_type)*10);
    printf("使用malloc()函数申请空间读取文件内容,结果如下: \n");
    printf("学号\t姓名\t性别\t年龄\t数学\t英语\t数据结构\t操作系统\n");
    for(i=0;i<10;i++,p++)
    {
    fscanf(fp,"%s %s %s %d %d %d %d %d",p->id,p->name,p->sex,&p->age,&p->math,&p->eng,&p->ds,&p->os);
    printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->age,p->math,p->eng,p->ds,p->os);
    msum+=p->math;
    esum+=p->eng;
    dsum+=p->ds;
    osum+=p->os;
    }
    fclose(fp);
    printf("各门课程的平均分: \n");
    printf("数学:%.1f\n英语:%.1f\n数据结构:%.1f\n操作系统:%.1f\n",msum/10.0,esum/10.0,dsum/10.0,osum/10.0);
    }
    }
    int main()
    {
    char *fn="stu_list.in";
    static_read(fn);
    dynamic_read(fn);
    return 0;
    }
    可能还有问题,孩子脑子已经不太行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 已采纳回答 9月25日
  • 创建了问题 9月15日