【发布时间】:2023-04-11 09:20:02
【问题描述】:
我正在尝试设置一个程序来帮助我为班级中的学生评分。我已经将它设置为创建一个学生类,然后通过数组从文件中读取(我在 Ruby 中不太熟悉的东西)。我的编程经验是在 java 中,所以如果有可以解释的错误,我深表歉意。提前感谢您的帮助。
class Student
def initialize(str_LastName, str_FirstName, arr_Score)
@str_LastName = str_LastName
@str_FirstName = str_FirstName
@arr_Score = arr_Score
str_Grade = ""
int_OutOf = 415
end
def get_LastName
str_LastName
end
def get_FirstName
str_FirstName
end
def get_Grade
str_Grade
end
def set_TotalScore()
sum = 0
arr_Score.each do |item|
sum += item
end
arr_Score[12] = sum
end
def set_Grade
if arr_Score[12]/int_OutOf >= 0.9
str_Grade = "A"
elsif arr_Score[12]/int_OutOf >= 0.8
str_Grade = "B"
elsif arr_Score[12]/int_OutOf >= 0.7
str_Grade = "C"
elsif arr_Score[12]/int_OutOf >= 0.6
str_Grade = "D"
else
str_Grade = "F"
end
end
end
def main
file_name = "Grades"
arr_students = Array.new(31)
arr_scores = Array.new(12)
int_i = 0
file_io = open(file_name).readlines.each do |line|
array = line.split(",").map(&:strip)
student = Student.new(array[0],array[1],array[2..-2]) #the final element in the array is for the final score
arr_students[int_i] = student
puts "read #{arr_students[int_i]}"
end
file_name = "Graded"
file_io = open(file_name,"a+")
arr_students.each do |student|
set_TotalScore
set_Grade
file.io_write(student)
puts "write #{student}"
end
end
main if __FILE__==$0
【问题讨论】:
-
忘了提一下,Grades 文本文件的格式是每行 1 个学生,分数后面跟着名字,我将最后的数组槽保留为 0,以便我可以将其设置为最终得分。
-
问题是什么?