?? student_linkedlist.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 + -