$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
$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