Shell实现录入学生名字和成绩,输出成绩等级及计算总分数和平均数

@冰冰的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$ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值