编写一个shell脚本,要求:运行脚本以后输入学生的姓名,学号,以及三门课的成绩。该信息存在数组中。输出学生的平均成绩,以及不及格的成绩。请写出详细代码
时间: 2024-12-24 17:30:21 浏览: 5
在Shell脚本中,我们可以使用`read`命令获取用户输入,然后通过数组来存储和计算学生的信息。下面是一个简单的示例,假设不及格的分数是60分以下:
```bash
#!/bin/bash
# 初始化数组
declare -a student_info=("name" "student_id" "grade_math" "grade_physics" "grade_chemistry")
# 提示用户输入信息并存储在数组中
for i in "${student_info[@]}"; do
echo "请输入学生的$i:"
read ${i:-}
done
# 计算总分和课程数
total_grade=0
num_courses=${#student_info[@]}
courses_passed=$((num_courses + 1)) # 假设所有课程都计入总数
# 遍历成绩并计算总分
for ((index=3; index<${#student_info[@]}; index+=2)); do
grade="${student_info[$index]}"
if ((grade >= 60)); then
total_grade=$((total_grade + grade))
courses_passed=$((courses_passed - 1))
fi
done
# 计算平均成绩
average_grade=$((total_grade / courses_passed))
# 输出信息
echo "学生的平均成绩是: $average_grade 分"
if [[ $average_grade < 60 ]]; then
echo "有不及格的科目!"
else
echo "所有科目都及格!"
fi
阅读全文