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

📄 student_linkedlist.cpp

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

#include <iostream.h>
#include "SinglyLinkedList.h"                         //单链表类
#include "Student.h"                                  //例2.2的学生结构

double average(SinglyLinkedList<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(SinglyLinkedList<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[]={{"20208301","王红",80},{"20208302","张明",75},{"20208303","李强",90},
                     {"20208304","郑小春",80},{"20208305","陈新诺",60},{"20208306","吴宁",65}}; 
    SinglyLinkedList<Student> stulist(group,6);            //由指定数组构造单链表
    Student stu={"20208307","崔小兵",70};
    stulist.insert(stu);                                   //参数为Student结构类型
    cout<<"学生成绩表("<<stulist.length()<<"人):";
    stulist.print();
    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 + -