#!/bin/awk -f
BEGIN { FS="," }
FNR == 1 { next }
FILENAME ~ /\/?names.csv$/ { names[$1] = $NF; next }
FILENAME ~ /\/?marks.csv$/ { marks[$1] = $NF; next }
FILENAME ~ /\/?CGP.csv$/ { gpas[$1] = $NF; next }
END {
i = 1
for (sn in names) {
order[i++] = sn
if (marks[sn] == 0) { marks[sn] = ""; results[sn] = "AB" }
else if (gpas[sn] == 0) results[sn] = "F"
else results[sn] = gpas[sn]
}
if (sort == "yes") {
rank="\n\t\t\t
Rank | \n"
n = length(order)
for (i in order) {
max = i
for (j = i; j <= n; j++) {
sn1 = order[max]; sn2 = order[j]
if (results[sn1] == results[sn2]) {
if (marks[sn1] < marks[sn2]) max = j
}
else if (results[sn1] == "AB") max = j
else if (results[sn1] == "F") {
if (results[sn2] != "AB") max = j
}
else if (gpas[sn1] < gpas[sn2]) max = j
}
if (max != i) { t = order[i]; order[i] = order[max]; order[max] = t }
}
}
print("\n\
\n\
\n" rank\
" Seat No. | \n\
Name | \n\
Total Marks | \n\
GPA | \n\
\n\
\n\
")
for (i in order) {
sn = order[i]
if (results[sn] == "AB") {
print("\t\t")
} else if (results[sn] == "F") {
print("\t\t
")
} else if (gpas[sn] >= 9) {
print("\t\t
")
} else {
print("\t\t
")
}
if (sort == "yes") printf("\t\t\t%s | \n", i)
printf("\t\t\t%s | \n", sn)
printf("\t\t\t%s | \n", names[sn])
printf("\t\t\t%s | \n", marks[sn])
printf("\t\t\t%s | \n", results[sn])
print("\t\t
")
}
print("\t")
print("
")
}