新建shell脚本,按照下面的要求完成个人成绩管理脚本程序。 mkdir /tmp/2023.5.23 cd /tmp/2023.5.23 vim 姓名.sh
时间: 2023-08-12 15:03:15 浏览: 156
好的,以下是个人成绩管理脚本程序的要求:
1. 输入姓名、语文成绩、数学成绩、英语成绩,将这些信息存储到以姓名命名的文件中(例如:张三.txt)。
2. 输入姓名,能够查询该生的语文、数学、英语成绩,并计算出总分和平均分。
3. 输入所有,能够查询所有学生的语文、数学、英语成绩,并计算出总分和平均分。
4. 输入exit,退出程序。
下面是脚本程序的代码:
```
#!/bin/bash
while true
do
echo "请输入您的选项:"
echo "1. 输入姓名及成绩"
echo "2. 查询个人成绩"
echo "3. 查询所有成绩"
echo "exit. 退出程序"
read option
case $option in
1)
echo "请输入姓名:"
read name
echo "请输入语文成绩:"
read chinese
echo "请输入数学成绩:"
read math
echo "请输入英语成绩:"
read english
echo -e "$name\t$chinese\t$math\t$english" >> "$name.txt"
echo "信息已保存到文件$name.txt"
;;
2)
echo "请输入要查询的姓名:"
read name
if [ -f "$name.txt" ]; then
echo "姓名 语文数学英语 总分 平均分"
sum=0
count=0
while read line
do
echo -ne "$line\t"
score=$(echo $line | awk '{print $2+$3+$4}')
echo -ne "$score\t"
sum=$(echo "$sum+$score" | bc)
count=$(echo "$count+1" | bc)
done < "$name.txt"
avg=$(echo "scale=2;$sum/$count" | bc)
echo -ne "$sum\t$avg\n"
else
echo "未找到姓名为$name的文件!"
fi
;;
3)
echo "姓名 语文数学英语 总分 平均分"
sum=0
count=0
for file in *.txt
do
name=$(echo $file | cut -d '.' -f 1)
echo -ne "$name\t"
while read line
do
score=$(echo $line | awk '{print $2+$3+$4}')
echo -ne "$line\t"
sum=$(echo "$sum+$score" | bc)
count=$(echo "$count+1" | bc)
done < "$file"
echo ""
done
avg=$(echo "scale=2;$sum/$count" | bc)
echo -e "所有学生总分为:$sum\t平均分为:$avg"
;;
exit)
echo "程序已退出!"
exit;;
*)
echo "无效的选项,请重新选择!";;
esac
done
```
注意:在使用之前,需要将脚本中的日期改为当前日期,例如:/tmp/2021.12.31。
阅读全文