⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 student_seqlist.cpp

📁 回顾基础
💻 CPP
字号:
//【例2.2】 学生成绩管理。

#include "SeqList.h"                             //顺序表类
#include "Student.h"                             //学生结构体

double average(SeqList<Student> &stulist)        //求平均值
{
    int n=stulist.length();                      //顺序表长度
    if (n>0)
    {
        double sum=0;
        for (int i=0; i<n; i++)
             sum += stulist.get(i).score;        //此处get(i)返回Student结构类型
        return sum/n;
    }
    return 0.0;                                  //给出0个元素的结果,避免除数为0错误
}

void printGrade(SeqList<Student> &stulist)       //按优、良、中、及格、不及格五个等级统计人数
{
    int n=stulist.length();
    if (n>0)
    {
        int grade[5] = {0};
        for (int i=0; i<n; i++)
        {
             double x= stulist.get(i).score;
             if (x>=90 && x<=100)
                 grade[0]++;
             else if (x>=80 && x<90)
                 grade[1]++;
             else if (x>=70 && x<80)
                 grade[2]++;
             else if (x>=60 && x<70)
                 grade[3]++;
             else if (x>=0)
                 grade[4]++;
        }
        cout<<"优秀"<<grade[0]<<",良好"<<grade[1]<<",中等"<<grade[2]<<",及格"<<grade[3]<<",不及格"<<grade[4]<<endl;
    }
}

int main()
{
    Student group[10]={{"20208301","王红",80},{"20208302","张明",75},{"20208303","李强",90},
                     {"20208304","郑小春",80},{"20208305","陈新诺",60},{"20208306","吴宁",65}}; 
    SeqList<Student> stulist(group,6);                     //由指定数组构造顺序表
    Student stu={"20208307","崔小兵",70};
    stulist.insert(stu);                                   //参数为Student结构类型
    cout<<"学生成绩表("<<stulist.length()<<"人):";
    cout<<stulist;
    printGrade(stulist);
    cout<<"平均成绩:"<<average(stulist)<<endl;
    if (stulist.remove(0, stu))                            //被删除元素在stu结构变量中
        cout<<"删除了"<<stu.name<<endl;
    return 0;
}

/*
程序运行结果如下:
学生成绩表(7人): ((20208301,王红,80), (20208302,张明,75), (20208303,李强,90), (20208304,郑小春,80), (20208305,陈新诺,60), (20208306,吴宁,65), (20208307,崔小兵,65))
优秀1,良好2,中等2,及格2,不及格0
平均成绩:74.2857
删除了王红

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -