任务
- 1.按行读取文本文件
- 2.计算
- (1)每个同学的总分
- (2)每个同学的平均分
- (3)每个科目的最高分
- 3.组装数据对象
- 4.分析数据
package score
/*
任务
1.读取文件
2.计算
(1)每个同学的总分
(2)每个同学的平均分
(3)每个科目的最高分
*/
object score01 {
def main(args: Array[String]): Unit = {
// println("(300, 100, 80), println( * 3) )
// 1. 从文件中读取数据
val lines = scala.io.Source.fromFile("score.txt").getLines()
lines.next() // 跳过第一行
while (lines.hasNext) {
val line = lines.next()
val arr = line.split(",")
val name = arr(0)
val yuwen = arr(1)
println(s"$name, $yuwen")
}
}
}
保存结果
package score
/*
任务
1.读取文件
2.计算
(1)每个同学的总分
(2)每个同学的平均分
(3)每个科目的最高分
*/
object score01 {
case class Stu(name: String, yuwen: Double, shuxue: Double, yingyu: Double)
def main(args: Array[String]): Unit = {
// 0. 创建一个可变list
val stuList = scala.collection.mutable.ListBuffer[Stu]()
// 1. 读入文件数据
val lines = scala.io.Source.fromFile("score.txt").getLines()
lines.next() // 跳过第一行
while (lines.hasNext) {
val line = lines.next()
// 字符串拆分
val li = line.split(",")
stuList += Stu(li(0), li(1).toDouble, li(2).toDouble, li(3).toDouble)
}
// 打印班级结果
println("班级结果")
stuList.foreach(stu => {
val total = stu.yuwen + stu.yingyu + stu.shuxue
val avg = total / 3
println(s"${stu.name}, 总分: ${total}, 平均: ${avg}")
})
}
}
eg:
package score
/*
任务
1.读取文件
2.计算
(1)每个同学的总分
(2)每个同学的平均分
(3)每个科目的最高分
*/
object score01 {
case class Stu(name: String, yuwen: Double, shuxue: Double, yingyu: Double)
def main(args: Array[String]): Unit = {
// 0. 创建一个可变list
val stuList = scala.collection.mutable.ListBuffer[Stu]()
// 1. 读入文件数据
val lines = scala.io.Source.fromFile("score.txt").getLines()
lines.next() // 跳过第一行
while (lines.hasNext) {
val line = lines.next()
// 字符串拆分
val li = line.split(",")
stuList += Stu(li(0), li(1).toDouble, li(2).toDouble, li(3).toDouble)
}
// 打印班级结果
println("班级结果")
stuList.foreach(stu => {
val total = stu.yuwen + stu.yingyu + stu.shuxue
val avg = total / 3
println(s"${stu.name}, 总分: ${total}, 平均: ${avg}")
})
while (lines.hasNext) {
val line = lines.next()
val li = line.split(",")
stuList += Stu(li(0), li(1).toDouble, li(2).toDouble, li(3).toDouble)
}
// 1. 录入班级结果
println("开始录入")
// 2. 统计结果,并写入文件
val fileWriter = new java.io.FileWriter("score_result.txt")
fileWriter.write("=== 三好学生成绩 ===\r\n")
stuList.foreach(stu => {
val total = stu.yuwen + stu.yingyu + stu.shuxue
val avg = total / 3
fileWriter.write(s"${stu.name}, 总分: ${total}, 平均分: ${avg}\r\n")
})
// 计算最高分
fileWriter.write("语文最高分:" + stuList.map(_.yuwen).max + "\r\n")
fileWriter.write("数学最高分:" + stuList.map(_.shuxue).max + "\r\n")
fileWriter.write("英语最高分:" + stuList.map(_.yingyu).max + "\r\n")
// 关闭流
fileWriter.close()
println("success!!!")
}
}