这篇是在前面四篇的基础上继续完善学生信息管理系统的功能。
(1)http://blog.csdn.net/wjf_1997/article/details/78474118
(2)http://blog.csdn.net/wjf_1997/article/details/78502039
(3)http://blog.csdn.net/wjf_1997/article/details/78513086
(4)http://blog.csdn.net/wjf_1997/article/details/78513201
实现功能:查找 和 成绩排名
一、功能描述
查找功能:find_stu_info()– 通过姓名查找该学生的相关信息
排名功能:show_stu_grade_info() – 显示成绩排名的情况
二、代码
2.1 find_stu_info()
find_stu_info(){
echo "请输入学生的姓名:"
read stuName
stringLine_one=`grep $stuName $DBStudentInfoPath`
stringLine_two=`grep $stuName $DBStudentGradeInfoPath`
echo "查询的学生信息:"
echo "$stringLine_one"
echo "$stringLine_two"
show_stu_info;
show_stugrade_info;
}
2.2 show_stu_grade_info()
show_stu_grade_info(){
echo "======================总成绩(相同专业)============================"
awk 'BEGIN{FS=OFS=","}{
namearrays[$1]=$2
arrays[$1]+=$4
}
END{for(studentno in arrays)
print studentno,namearrays[studentno],"总成绩:"arrays[studentno]}' $DBStudentGradeInfoPath
echo "======================学科排名10(相同专业)============================"
echo "名次 姓名 总成绩"
for course in $(cut -d, -f3 $DBStudentGradeInfoPath |sort -n | uniq )
do
echo "$course:"
grep "$course" $DBStudentGradeInfoPath | sort -t, -k4 -n -r|
awk 'BEGIN{FS=","}{if(NR<=10)print NR "\t" $2 "\t" $4}'
echo ""
done
echo "=======================总成绩排名20(相同专业)=========================="
echo "名次 姓名 总成绩"
awk 'BEGIN{FS=","}{arr[$2]+=$4}
END{for(i in arr)print i "," arr[i]}' $DBStudentGradeInfoPath |sort -t, -k2 -n -r|
awk 'BEGIN{FS=","}{if(NR<=20)print NR "\t" $1 "\t" $2}'
echo ""
}