Как распечатать сценарий, чтобы рассчитать взвешенную оценку для каждого учащегося, который появляется в файле данных - PullRequest
0 голосов
/ 10 ноября 2019

Как мне распечатать мой сценарий, чтобы рассчитанная взвешенная оценка для каждого учащегося, которая появилась в файле данных? Внизу я отформатировал свой сценарий, кроме аспекта печати. ​​

BEGIN {
    FS=","
}

$4~/[0-9]/ {

    EARN[STUDENT$2]+=$4
    POSSIBLE[STUDENT$2]+=$5
    STUDENTS[STUDENT]++
    CATEGORIES[$2]++
}
END {
 #      for (ASSIGNMENT in EARN) {
  #             print ASSIGNMENT,EARN[ASSIGNMENT]/POSSIBLE[ASSIGNMENT]
  #     }
    for (STUDENT in STUDENTS) {
           Homework=(EARN[STUDENT"Homework"]/POSSIBLE[STUDENT"Homework"])*0.10
           Lab=(EARN[STUDENT"Lab"])*0.30
           Quiz=(EARN[STUDENT"Quiz"]/POSSIBLE[STUDENT"Quiz"])*0.20
           Total=HOMEWORK+LAB+QUIZ
            LETTER="A"
            }
            if (TOTAL <= 90) {
                    LETTER="B"
            }
            if (LETTER <= 80) {
                    LETTER="C"
            }
            if (LETTER <= 70) {
                    LETTER="D"
            }
            if (LETTER <= 60){
                    LETTER="E"
            }

}

1 Ответ

1 голос
/ 10 ноября 2019

Похоже, вы запускаете код awk. Поскольку вы не показывали никаких примеров, поэтому, увидев только ваш код, я произвел редактирование кода. Добавлена ​​строка перед последним появлением } в коде (см. 2-ую последнюю строку этого кода), которая создаст выходной файл с именем output_file, вы также можете изменить его в соответствии с вашими потребностями).

BEGIN {
    FS=","
}

$4~/[0-9]/ {

    EARN[STUDENT$2]+=$4
    POSSIBLE[STUDENT$2]+=$5
    STUDENTS[STUDENT]++
    CATEGORIES[$2]++
}
END {
 #      for (ASSIGNMENT in EARN) {
  #             print ASSIGNMENT,EARN[ASSIGNMENT]/POSSIBLE[ASSIGNMENT]
  #     }
    for (STUDENT in STUDENTS) {
           Homework=(EARN[STUDENT"Homework"]/POSSIBLE[STUDENT"Homework"])*0.10
           Lab=(EARN[STUDENT"Lab"])*0.30
           Quiz=(EARN[STUDENT"Quiz"]/POSSIBLE[STUDENT"Quiz"])*0.20
           Total=HOMEWORK+LAB+QUIZ
            LETTER="A"
            }
            if (TOTAL <= 90) {
                    LETTER="B"
            }
            if (LETTER <= 80) {
                    LETTER="C"
            }
            if (LETTER <= 70) {
                    LETTER="D"
            }
            if (LETTER <= 60){
                    LETTER="E"
            }
            print STUDENT OFS LETTER > "output_file"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...