Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 创建一个成绩计算脚本,计算每个预科期中和期末科目的平均成绩_Linux_Bash_Sh - Fatal编程技术网

Linux 创建一个成绩计算脚本,计算每个预科期中和期末科目的平均成绩

Linux 创建一个成绩计算脚本,计算每个预科期中和期末科目的平均成绩,linux,bash,sh,Linux,Bash,Sh,我想创建一个linux脚本,允许用户输入他/她有多少主题。脚本应为每个主题的平均值。所有科目都有3个学期。预科。期中考试和期末考试。脚本还应获得预科考试的平均成绩。期中考试、期末考试和总平均成绩(预科+期中考试+期末考试/3) 是的,给你: #!/bin/bash declare -A matrix #terms num_rows=3 #subjects read -p "Enter the number of subects:" num_columns declare -A subj_arr

我想创建一个linux脚本,允许用户输入他/她有多少主题。脚本应为每个主题的平均值。所有科目都有3个学期。预科。期中考试和期末考试。脚本还应获得预科考试的平均成绩。期中考试、期末考试和总平均成绩(预科+期中考试+期末考试/3)

是的,给你:

#!/bin/bash
declare -A matrix
#terms
num_rows=3
#subjects
read -p "Enter the number of subects:" num_columns

declare -A subj_array
for ((i=1;i<=num_columns;i++)) do
        read -p "Enter the name of subject ${i}:" subj_name
        subj_array[$i+1]=${subj_name}
    for ((j=1;j<=num_rows;j++)) do
        if [[ $j == "1" ]] ; then
        read -p "Enter prelim marks for subject ${subj_name}: " jj
        elif [[ $j == "2" ]]; then 
        read -p "Enter midterm marks for subject ${subj_name}: " jj
        else
        read -p "Enter final marks for subject ${subj_name}: " jj
        fi
        matrix[$j,$i]=$jj
    done
done

f1="%$((${#num_rows}+1))s"
f2=" %9s"

printf "$f1" ''
for ((i=1;i<=num_rows;i++)) do
    printf "$f2" $i
done
echo

for ((j=1;j<=num_columns;j++)) do
    printf "$f1" $j
    for ((i=1;i<=num_rows;i++)) do
        printf "$f2" ${matrix[$i,$j]}
    done
    echo
done


for ((i = 1; i <= $num_columns; i++)); do
    sum_per_subj=0
    for ((j = 1; j <= $num_rows; j++)); do
    sum_per_subj=$(echo $sum_per_subj+${matrix[$j,$i]} | bc)
    done

    echo "Subject ${subj_array[$i+1]} Average is":
    printf '%.4f\n' $(echo $sum_per_subj / $num_columns | bc -l)
done

    overall_sum=0;
for ((i = 1; i <= $num_rows; i++)); do
    sum_per_term=0
    for ((j = 1; j <= $num_columns; j++)); do
    sum_per_term=$(echo $sum_per_term+${matrix[$i,$j]} | bc)
    done
    overall_sum=$(echo $overall_sum+${sum_per_term} | bc)


            if [[ $i == "1" ]] ; then
    echo "Term prelim Average is":
        elif [[ $i == 2 ]]; then 
    echo "Term mideterm Average is":
        else
    echo "Term final Average is":
        fi
    printf '%.4f\n' $(echo $sum_per_term / $num_rows | bc -l)
done
 echo "overall Average is":
    printf '%.4f\n' $(echo $overall_sum / $num_rows | bc -l)
#/bin/bash
声明-矩阵
#条件
行数=3
#科目
read-p“输入子项的数量:”num_列
declare-A subc_数组
对于((i=1;i
Enter number of subject: 3
Enter subject Name: Math
Enter Prelim Grade For Math: 89
Enter Midterm Grade For Math:89 
Enter Final Grade For Math:89
Math Average is: 89
Enter subject Name: English
Enter Prelim Grade For English: 90
Enter Midterm Grade For English:90 
Enter Final Grade For English:90
English Average is: 90
Enter subject Name: Science
Enter Prelim Grade For Science: 91
Enter Midterm Grade For Science:91 
Enter Final Grade For Science:91
Science Average is: 91
Prelim Average is: 90
Midterm Average is:90
Final Average is:90
Overall Average is:90
#!/bin/bash
declare -A matrix
#terms
num_rows=3
#subjects
read -p "Enter the number of subects:" num_columns

declare -A subj_array
for ((i=1;i<=num_columns;i++)) do
        read -p "Enter the name of subject ${i}:" subj_name
        subj_array[$i+1]=${subj_name}
    for ((j=1;j<=num_rows;j++)) do
        if [[ $j == "1" ]] ; then
        read -p "Enter prelim marks for subject ${subj_name}: " jj
        elif [[ $j == "2" ]]; then 
        read -p "Enter midterm marks for subject ${subj_name}: " jj
        else
        read -p "Enter final marks for subject ${subj_name}: " jj
        fi
        matrix[$j,$i]=$jj
    done
done

f1="%$((${#num_rows}+1))s"
f2=" %9s"

printf "$f1" ''
for ((i=1;i<=num_rows;i++)) do
    printf "$f2" $i
done
echo

for ((j=1;j<=num_columns;j++)) do
    printf "$f1" $j
    for ((i=1;i<=num_rows;i++)) do
        printf "$f2" ${matrix[$i,$j]}
    done
    echo
done


for ((i = 1; i <= $num_columns; i++)); do
    sum_per_subj=0
    for ((j = 1; j <= $num_rows; j++)); do
    sum_per_subj=$(echo $sum_per_subj+${matrix[$j,$i]} | bc)
    done

    echo "Subject ${subj_array[$i+1]} Average is":
    printf '%.4f\n' $(echo $sum_per_subj / $num_columns | bc -l)
done

    overall_sum=0;
for ((i = 1; i <= $num_rows; i++)); do
    sum_per_term=0
    for ((j = 1; j <= $num_columns; j++)); do
    sum_per_term=$(echo $sum_per_term+${matrix[$i,$j]} | bc)
    done
    overall_sum=$(echo $overall_sum+${sum_per_term} | bc)


            if [[ $i == "1" ]] ; then
    echo "Term prelim Average is":
        elif [[ $i == 2 ]]; then 
    echo "Term mideterm Average is":
        else
    echo "Term final Average is":
        fi
    printf '%.4f\n' $(echo $sum_per_term / $num_rows | bc -l)
done
 echo "overall Average is":
    printf '%.4f\n' $(echo $overall_sum / $num_rows | bc -l)