📄 student_seqlist.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 + -