宿題を出して生徒の平均成績を調べる

実験の説明

一連のデータを与えて、スパークプログラミング実験により各生徒の平均点を実現し、その実施形式は、生徒番号:、名前:、中国語、数学:、英語:、平均点:の順となる。

実験条件:

Idea ソフトウェア (できれば最新バージョンではない) をインストールし、scala プラグインを idea に挿入します。実験手順:
アイデアに scala プラグインをインストールします:
最初のステップ、
画像の説明を追加してください

2番目のステップは、

画像の説明を追加してください
最後に、アイデアに scala プラグインをインストールすることにしました。その後、実験してみます。

次のステップはファイルを作成することです: ファイル —> 新規 —> プロジェクト —> Maven —>…. プロンプトに従うだけです。

データブロックscore1.txtファイル:

生徒名 中国語 数学 英語
2001501 李暁明 88 91 86
2001502 張立 75 81 65
2001503 劉承東 62 71 58 2001504 郝剛 79 85 83 2001505 劉暁暁 75 62 53 200150 6 王燕
88 91 93
2001507李源81 78 83 2001508 張東東70 83 68 2001509 李建77 80 85 2001510 王暁燕72 78 71




api.scala 部分:

object api{
    
    


  def main(args: Array[String]): Unit = {
    
    
    import scala.io.Source

    val  inputfile = Source.fromFile("C:\\Users\\leglon\\IdeaProjects\\che1\\src\\main\\Scala\\score1.txt") //测试样例文件的路径
    val lines = inputfile.getLines
    val Data = lines.map{
    
    _.split(" ")}
    val originalData = Data.toList
    val header = originalData.head
    val courseNames=header.drop(2)
    val courseNum = courseNames.length
    def statistic(lines:List[Array[String]])={
    
    
      for(i<-2 to courseNum+1) yield{
    
    
        val temp = lines map {
    
    
          elem => elem (i).toDouble}
        (temp.max, temp.min, temp.sum)
        def printResult(thersult: Seq[(Double,Double,Double)]): Unit={
    
    
          (courseNames zip thersult) foreach {
    
    
            case (course,result)=>println(f"${
      
      
              course + ":}%-10s${
      
      result._1}%5.2f${
      
      result._2}%8.2f${
      
      result._3}%8.2f"

              def getFailureInEnglish(): Unit = {
    
    
              }

              val allResult = statistic ( val allSudents)
              println("课程 平均成绩 最低分 最高分")
              printResult(allResult)

Student.scala セクション:

class student {
    
    
  var  id:Int= _
  var  name:String= _
  var chinese:Float= _
  var math:Float= _
  var english:Float= _
  def getAverageGrade={
    
    
    ((chinese+math+english)/3)
      .formatted("%.2f")
  }
  def this(id:Int,name:String,chinese:Float,math:Float,english:Float){
    
    
    this()
    this.id=id
    this.name=name
    this.chinese=chinese
    this.math=math
    this.english=english
  }

  override def toString="学号:"+this.id+",姓名:"+this.name+",语文"+this.chinese+
    ",数学:"+this.math+",英语:"+this.english+",平均成绩:"+getAverageGrade
}
object student{
    
    
  def main (arge:Array[String]): Unit = {
    
    
    val s1 = new student(id = 2001501, name = "李小明", chinese = 88, math = 91, english = 86)
    val s2 = new student(id = 2001502, name = "张丽", chinese = 75, math = 81, english = 65)
    val s3 = new student(id = 2001503, name = "刘成东", chinese = 62, math = 71, english = 58)
    val s4 = new student(id = 2001504, name = "饶刚", chinese = 79, math = 85, english = 83)
    val s5 = new student(id = 2001505, name = "刘小小", chinese = 75, math = 62, english = 53)
    val s6 = new student(id = 2001506, name = "王艳", chinese = 88, math = 91, english = 93)
    val s7 = new student(id = 2001507, name = "李远", chinese = 81, math = 78, english = 83)
    val s8 = new student(id = 2001508, name = "张东东", chinese = 70, math = 83, english = 68)
    val s9 = new student(id = 2001509, name = "李健", chinese = 70, math = 80, english = 85)
    val s10 = new student(id = 2001510, name = "王小燕", chinese = 72, math = 78, english = 71)
    val a = Array(s1, s2, s3, s4, s5, s6, s7, s8, s9, s10)
    a.map(println)
  }
  }

実験結果:

画像の説明を追加してください

おすすめ

転載: blog.csdn.net/qq_62127918/article/details/130422739