关闭

ruby 文件

273人阅读 评论(0) 收藏 举报
分类:
$A="A"
$B="B"
$C="C"
$D="D"
class Employee
  def initialize(empNo,empName,empScore)
    @empNo=empNo
    @empName=empName
    @empScore=empScore
  end


  def empno
    return @empNo
  end


  def empname
    return @empName
  end


  def empscore
    return @empScore
  end


  def getLevel(empScore)
    case @empScore
      when   90..100 then  @level=$A
      when  80...90  then  @level=$B
      when  65...80  then  @level=$C
      else
        @level=$D
    end
  end


  def level
    return @level
  end
end


# 排序过程
def bubble_sort(arr)
    1.upto(arr.length-1) do |i|
      (arr.length-i).times do |j|
        if arr[j].empscore.to_f<arr[j+1].empscore.to_f
          arr[j],arr[j+1] = arr[j+1],arr[j]
        end
      end
    end
  arr
end




$emps = Array.new


isexist = true
while isexist
  puts "请输入员工信息的路径:"
  filename = gets
  if File.exist?(filename.chop!) then
    file=File.new(filename)
    file.readlines.each do |line|
      tem = line.to_s.split("_")
      emp = Employee.new(tem[0],tem[1],tem[2].to_f)
      emp.getLevel(tem[2].to_f)
      $emps << emp
    end
    isexist = false
  end
end


  bubble_sort($emps)
  targetFile = "result.log"
  file = File.new(targetFile,'w')
  file.puts("排序结果")
  file.puts("工号  姓名  分数  等级")
  $emps.each do |i|
    file.puts "#{i.empno}   #{i.empname}    #{i.empscore}  #{i.level}"
  end



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2484次
    • 积分:93
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档