@冰冰的190619小作业
Shell实现录入学生名字和成绩,显示成绩单以及总分数和平均数
#!/bin/bash
#实现学生成绩的录入及总分数和平均数的计算
#首先定义一个函数,通过循环实现多次录入
decide=n
i=0
until [ ${decide} = y ]
do
echo -n "请输入学生名字:"
read name[i]
echo -n "请输入他的成绩:"
read score[i]
#对成绩做一个判断,如果成绩小于0或者大于100则跳过本次循环重新输入
if [ ${score[i]} -lt 0 -o ${score[i]} -gt 100 ];then
echo "成绩有误请重新输入"
continue
fi
#let n=i+1
#echo "第${n}个学生====>"${name[i]} ${score[i]}
let i=i+1
#判断是否输入完毕
echo -n "是否输入完毕:是请输入“y”/否请输入仍意键:"
read decide
done
#遍历名字数组和成绩数组,进行总分数和平均数的计算。
sum=0
echo "成绩单:"
for((j=0;j<${#name[@]};j++))
do
let shiwei[j]=${score[j]}/10
case ${shiwei[j]} in
10|9)
echo ${name[j]} ${score[j]} "优秀"
;;
8|7|6)
echo ${name[j]} ${score[j]} "还行"
;;
5|4|3|2|1|0)
echo ${name[j]} ${score[j]} "不及格"
;;
esac
#求和计算
let sum=sum+${score[j]}
done
#平均数计算
let length=${#name[@]}
let avg=sum/${length}
echo "分数和:${sum},平均数:${avg}"
下面是执行结果:
bingbing01@ubuntu:~/Documents$ ./Test.sh
请输入学生名字:zhangsan
请输入他的成绩:101
成绩有误请重新输入
请输入学生名字:zhangsan
请输入他的成绩:-5
成绩有误请重新输入
请输入学生名字:zhangsan
请输入他的成绩:100
是否输入完毕:是请输入“y”/否请输入仍意键:s
请输入学生名字:lisi
请输入他的成绩:65
是否输入完毕:是请输入“y”/否请输入仍意键:s
请输入学生名字:wangwu
请输入他的成绩:30
是否输入完毕:是请输入“y”/否请输入仍意键:y
成绩单:
zhangsan 100 优秀
lisi 65 还行
wangwu 30 不及格
分数和:195,平均数:65
bingbing01@ubuntu:~/Documents$