使用Scala语言实现实例:班长选举(要求候选人四人,投票人50人 )
时间: 2024-12-12 21:24:32 浏览: 16
在Scala中,我们可以使用case class定义一个简单的班级结构,并创建一个选举类来进行班长的选举。这里是一个简单的示例:
```scala
// 定义候选人和选票case class
case class Candidate(name: String)
case class Vote(candidate: Candidate)
// 创建候选人的列表
val candidates = List(
Candidate("张三"),
Candidate("李四"),
Candidate("王五"),
Candidate("赵六")
)
// 创建投票人的列表
val voters = (1 to 50).map(_ => scala.util.Random.shuffle(candidates)) // 每个投票人随机选择一个候选人
// 投票函数
def vote(votersList: List[Vote]): Unit = {
val tallyMap = candidates.map(_.name -> 0) // 初始化每个候选人的得票数
votersList.foreach { vote =>
tallyMap(vote.candidate.name) += 1
}
println(s"选举结果:${tallyMap.maxBy(_._2)._1} 获得了 ${tallyMap.maxBy(_._2)._2} 票")
}
// 进行投票并打印结果
vote(voters)
```
在这个例子中,我们首先定义了`Candidate`和`Vote`两个case class,然后模拟了50个投票人对四个候选人进行随机投票的过程。最后,我们统计每个候选人的得票数,并找出得票最多的那个人作为班长。
阅读全文