关闭

ruby

286人阅读 评论(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,sortedFlag)
  if sortedFlag == "s"
    puts "你选择了升序"
    1.upto(arr.length-1) do |i|
      (arr.length-i).times do |j|
        if arr[j].empscore>arr[j+1].empscore
          arr[j],arr[j+1] = arr[j+1],arr[j]
        end
      end
    end
  else
    puts "你选择了降序"
    1.upto(arr.length-1) do |i|
      (arr.length-i).times do |j|
        if arr[j].empscore<arr[j+1].empscore
          arr[j],arr[j+1] = arr[j+1],arr[j]
        end
      end
    end
  end
  arr
end




$emps = Array.new
isendFlag = true
while isendFlag
  puts "输入员工工号:"
  empNo = gets()
  puts "输入员工姓名:"
  empName = gets
  puts "输入该员工的成绩(输入0到100之间的数或不能为空):"
  empScore = gets
  empScore = empScore.to_f
  while (empScore < 0 || empScore >100)
    puts "输入该员工的成绩(输入0到100之间的数或不能为空):"
    empScore = gets
    empScore = empScore.to_f
  end
  emp=Employee.new(empNo.chop!,empName.chop!,empScore)
  emp.getLevel(empScore)
  $emps << emp
  puts "是否继续输入员工信息(Y/N):"
  isGoon = gets
  isGoon.chop!
  if isGoon == "N" or isGoon == "n"
    isendFlag = false
  end
end
puts "总共输入#{$emps.size}个员工的信息,详细如下:"
puts "工号  姓名  分数  等级"
$emps.each do |i|
   print "#{i.empno}   #{i.empname}    #{i.empscore}  #{i.level}"
  print "\n"
end


while true
  puts "希望按升序(s)还是降序(j)或退出(exit):"
  sortedFlag = gets
  sortedFlag.chop!
  if sortedFlag == "exit"
    break
  end
  bubble_sort($emps,sortedFlag)
  puts "排序结果:"
  puts "工号  姓名  分数  等级"
  $emps.each do |i|
    print "#{i.empno}   #{i.empname}    #{i.empscore}  #{i.level}"
    print "\n"
  end
end

0
0

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