困意总是多 2022-12-06 19:56 采纳率: 100%
浏览 62
已结题

设计学生成绩管理系统.

代码设计
某班有学生 n 人,需完成 m 门课程学习。现要求设计学生成绩管理系统,满足以下要求:
●学生信息仅包括学号,课程成绩为实型数据。
●成绩录入:输入 n 个学生 m 门课程成绩存放与数组中。
◆成绩排序:按照总分对学生进行排序并输出,输出信息包括学号、各科成绩及总分。●成绩查询:输入学号,查询该学生各门课程成绩及总分并输出。
·统计:统计不及格[0-60)、合格[60-70)、中等[70-80)、良好[80-90)、优秀[90-100]各分数段人数并输出

  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2022-12-06 21:27
    关注
    /*
    ●学生信息仅包括学号,课程成绩为实型数据。
    ●成绩录入:输入 n 个学生 m 门课程成绩存放与数组中。
    ◆成绩排序:按照总分对学生进行排序并输出,输出信息包括学号、各科成绩及总分。●成绩查询:输入学号,查询该学生各门课程成绩及总分并输出。
    ·统计:统计不及格[0-60)、合格[60-70)、中等[70-80)、良好[80-90)、优秀[90-100]各分数段人数并输出
    */
    #include <iostream>
    using namespace std;
    
    typedef struct _student
    {
        int id;
        double *score;
        double total;
    }student;
    int main()
    {
        int n,m,i,j;
        cout<<"输入班级人数及课程数量:";
        cin>>n>>m;
        student *stu = new student[n];
        cout<<"输入所有人的学号和各科目成绩:"<<endl;
        for(i=0;i<n;i++)
        {
            cout<<"输入第"<<i+1<<"个学生学号:";
            cin>>stu[i].id;
            stu[i].score = new double[m];
            stu[i].total = 0;
            for(j=0;j<m;j++)
            {
                cout<<"输入第"<<i+1<<"个学生第"<<j+1<<"门课程成绩:";
                cin>>stu[i].score[j];
                stu[i].total += stu[i].score[j];
            }
        }
        //排序
        for(i=0;i<n-1;i++)
        {
            for(j=0;j<n-i-1;j++)
            {
                if(stu[j].total < stu[j+1].total)
                {
                    student t = stu[j];
                    stu[j] = stu[j+1];
                    stu[j+1] = t;
                }
            }
        }
        //输出排名后信息
        for(i=0;i<n;i++)
        {
            cout<<"学生"<<i+1<<"的信息:"<<endl;
            cout<<"学号:"<<stu[i].id<<endl;
            for(j=0;j<n-i-1;j++)
                cout<<"第"<<j+1<<"门课成绩:"<<stu[i].score[j]<<endl;
            cout<<"总分:"<<stu[i].total<<endl;
        }
        //按学号查询
        int id;
        cout<<"请输入需要查询的学号:";
        cin>>id;
        for(i=0;i<n;i++)
        {
            if(stu[i].id == id)
            {
                for(int j=0;j<n-i-1;j++)
                    cout<<"第"<<j+1<<"门课成绩:"<<stu[i].score[j]<<endl;
                cout<<"总分:"<<stu[i].total<<endl;
                break;
            }
        }
        if(i==n)
            cout<<"查无此人"<<endl;
        //统计每门课分数段
        for(i=0;i<m;i++)
        {
            int r[5] = {0};
            for(j=0;j<n;j++)
            {
                if(stu[j].score[i] < 60)
                    r[4]++;
                else if(stu[j].score[i] < 70)
                    r[3]++;
                else if(stu[j].score[i] < 80)
                    r[2]++;
                else if(stu[j].score[i] < 90)
                    r[1]++;
                else
                    r[0]++;
            }
            cout<<"第"<<i+1<<"门课统计:"<<endl;
            cout<<"优秀:"<<r[0]<<"人"<<endl;
            cout<<"良好:"<<r[1]<<"人"<<endl;
            cout<<"中等:"<<r[2]<<"人"<<endl;
            cout<<"合格:"<<r[3]<<"人"<<endl;
            cout<<"不及格:"<<r[4]<<"人"<<endl;
        }
    
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月6日