首页 > 编程语言 >实验 2 Scala 编程初级实践

实验 2 Scala 编程初级实践

时间:2024-02-14 14:55:05浏览次数:29  
标签:Scala students Double 编程 value 初级 Student var new

参考博客——

https://www.cnblogs.com/kt-xb/p/12297023.html

 

Linux——

 进入Scala所在目录,创建文件夹mycode

 赋予文件夹权限

 chmod -R 777 文件夹所在目录

 创建test.scala ,输入代码,执行文件

代码内容——

import scala.io.StdIn
object test
{
    def main(args: Array[String])
    {
        var Sum=0.0
        println("请输入n")
        var n:Long=StdIn.readLine().toLong
        var i=1.0
        while(Sum<n)
        {
            var mid=(i+i)/i
            Sum=Sum+(i+1)/i
            i=i+1
        }
        println("**************************")
        println("计算级数为:",Sum)
    }
}

 

第一题结束

后边路流程与最后两步相同

 所需代码

case class Point(var x:Double ,var y:Double) extends Drawable{
    def shift(X:Double ,Y:Double){
        x += X
        y += Y
    }
}
trait Drawable{
    def draw(){println(this.toString)}
}
abstract class Shape(var location:Point)//location是shape的一个可变字段
{
    def moveTo(newLocation:Point)
    {
        location = newLocation
    }
    def zoom(scale:Double)
}
class Line(beginPoint:Point,var endPoint:Point)extends Shape(beginPoint) with Drawable{
    override def draw()
    {
        println(s"Line:(${location.x},${location.y}--(${endPoint.x},${endPoint.y})")
    }
    override def moveTo(newLocation:Point)
    {
        endPoint.shift(newLocation.x-location.x,newLocation.y-location.y)
        location = newLocation
    }
     override def zoom(scale:Double)
     {
        val midPoint=Point((endPoint.x+location.x)/2,(endPoint.y+location.y)/2)
        location.x=midPoint.x+scale*(location.x-midPoint.x)
        location.y=midPoint.y+scale*(location.y-midPoint.y)
        endPoint.x=midPoint.x+scale*(endPoint.x-midPoint.x)
        endPoint.y=midPoint.y+scale*(endPoint.y-midPoint.y)
     }
  
}
class Circle(center:Point,var radius:Double)extends Shape(center) with Drawable
{
    override def draw()
    {
        println(s"Circle center:(${location.x},${location.y}),R=$radius")
    }
    override def zoom(scale :Double)
    {
        radius = radius*scale
    }
}
object test2
{
    def main(args:Array[String])
    {
        val p = new Point(10,30)
        p.draw
        val line1 = new Line(Point(0,0),Point(20,20))
        line1.draw
        line1.moveTo(Point(5,5))
        line1.draw
        line1.zoom(2)
        line1.draw
        val circle = new Circle(Point(10,10),5)
        circle.draw
        circle.moveTo(Point(30,20))
        circle.draw
        circle.zoom(0.5)
        circle.draw
    }
}

 import scala.collection.mutable.ArrayBuffer

    object test3 {   def main(args: Array[String]): Unit = {     var students:ArrayBuffer[Student] = new ArrayBuffer[Student]()     students.append(new Student(301610, "male", 80, 64, 78))     students.append(new Student(301611, "female", 65, 87, 58))     students.append(new Student(301612, "female", 44, 71, 77))     students.append(new Student(301613, "female", 66, 71, 91))     students.append(new Student(301614, "female", 70, 71, 100))     students.append(new Student(301615, "male", 72, 77, 72))     students.append(new Student(301616, "female", 73, 81, 75))     students.append(new Student(301617, "female", 69, 77, 75))     students.append(new Student(301618, "male", 73, 61, 65))     students.append(new Student(301619, "male", 74, 69, 68))     students.append(new Student(301620, "male", 76, 62, 76))     students.append(new Student(301621, "male", 73, 69, 91))     students.append(new Student(301622, "male", 55, 69, 61))     students.append(new Student(301623, "male", 50, 58, 75))     students.append(new Student(301624, "female", 63, 83, 93))     students.append(new Student(301625, "male", 72, 54, 100))     students.append(new Student(301626, "male", 76, 66, 73))     students.append(new Student(301627, "male", 82, 87, 79))     students.append(new Student(301628, "female", 62, 80, 54))     students.append(new Student(301629, "male", 89, 77, 72))     println(students.length)     println(students(1).toString)         getData(students)     getDataMale(students)     getDataFeMale(students)   }   def getData(value: ArrayBuffer[Student]): Unit ={     var Mathaverage:Double=0;     var MathSum:Double = 0;     var MathMin:Double = value(0).Math;     var MathMax:Double = 0;         var Englishaverage:Double=0;     var EnglishSum:Double = 0;     var EnglishMin:Double = value(0).English;     var EnglishMax:Double = 0;         var Physicsaverage:Double=0;     var PhysicsSum:Double = 0;     var PhysicsMin:Double = value(0).Physics;     var PhysicsMax:Double = 0;         var number = value.length;     for (i <- 0 until value.length){       //三科总数       MathSum = value(i).Math+MathSum       EnglishSum = value(i).English+EnglishSum       PhysicsSum = value(i).Physics+PhysicsSum       //最大和最小       if(value(i).Math>MathMax){         MathMax=value(i).Math;       }       if(value(i).English>EnglishMax){         EnglishMax=value(i).English;       }       if(value(i).Physics>PhysicsMax){         PhysicsMax=value(i).Physics;       }       if(value(i).Math<MathMin){         MathMin=value(i).Math;       }       if(value(i).English<EnglishMin){         EnglishMin=value(i).English;       }       if(value(i).Physics<PhysicsMin){         PhysicsMin=value(i).Physics;       }     }     //平均值     Mathaverage=MathSum/number     Englishaverage=EnglishSum/number     Physicsaverage=PhysicsSum/number     println("course\t average\t min\t max \t")     println("Math:\t   "+Mathaverage+"\t\t"+MathMin+"\t "+MathMax)     println("English:\t"+Englishaverage+"\t"+EnglishMin+"\t "+EnglishMax)     println("Physics:\t"+Physicsaverage+"\t"+PhysicsMin+"\t "+PhysicsMax)   }       def getDataMale(value: ArrayBuffer[Student]): Unit = {     var Mathaverage: Double = 0;     var MathSum: Double = 0;     var MathMin: Double = value(0).Math;     var MathMax: Double = 0;         var Englishaverage: Double = 0;     var EnglishSum: Double = 0;     var EnglishMin: Double = value(0).English;     var EnglishMax: Double = 0;         var Physicsaverage: Double = 0;     var PhysicsSum: Double = 0;     var PhysicsMin: Double = value(0).Physics;     var PhysicsMax: Double = 0;         var number = 0;         for (i <- 0 until value.length) {       if (value(i).gender.equals("male")) {         number = number + 1         //三科总数         MathSum = value(i).Math + MathSum         EnglishSum = value(i).English + EnglishSum         PhysicsSum = value(i).Physics + PhysicsSum         //最大和最小         if (value(i).Math > MathMax) {           MathMax = value(i).Math;         }         if (value(i).English > EnglishMax) {           EnglishMax = value(i).English;         }         if (value(i).Physics > PhysicsMax) {           PhysicsMax = value(i).Physics;         }         if (value(i).Math < MathMin) {           MathMin = value(i).Math;         }         if (value(i).English < EnglishMin) {           EnglishMin = value(i).English;         }         if (value(i).Physics < PhysicsMin) {           PhysicsMin = value(i).Physics;         }       }         }     //平均值     Mathaverage=MathSum/number     Englishaverage=EnglishSum/number     Physicsaverage=PhysicsSum/number     println("course\t average\t min\t max \t(Male)")     Mathaverage=Mathaverage.toInt     Englishaverage=Englishaverage.toInt     Physicsaverage=Physicsaverage.toInt     println("Math:\t   "+Mathaverage+"\t\t"+MathMin+"\t "+MathMax)     println("English:\t   "+Englishaverage+"\t\t"+EnglishMin+"\t "+EnglishMax)     println("Physics:\t   "+Physicsaverage+"\t\t"+PhysicsMin+"\t "+PhysicsMax)   }       def getDataFeMale(value: ArrayBuffer[Student]): Unit ={     var Mathaverage:Double=0;     var MathSum:Double = 0;     var MathMin:Double = value(1).Math;     var MathMax:Double = 0;         var Englishaverage:Double=0;     var EnglishSum:Double = 0;     var EnglishMin:Double = value(1).English;     var EnglishMax:Double = 0;         var Physicsaverage:Double=0;     var PhysicsSum:Double = 0;     var PhysicsMin:Double = value(1).Physics;     var PhysicsMax:Double = 0;         var number = 0;         for (i <- 0 until value.length){       if(value(i).gender.equals("female")){         number=number+1         //三科总数         MathSum = value(i).Math+MathSum         EnglishSum = value(i).English+EnglishSum         PhysicsSum = value(i).Physics+PhysicsSum         //最大和最小         if(value(i).Math>MathMax){           MathMax=value(i).Math;         }         if(value(i).English>EnglishMax){           EnglishMax=value(i).English;         }         if(value(i).Physics>PhysicsMax){           PhysicsMax=value(i).Physics;         }         if(value(i).Math<MathMin){           MathMin=value(i).Math;         }         if(value(i).English<EnglishMin){           EnglishMin=value(i).English;         }         if(value(i).Physics<PhysicsMin){           PhysicsMin=value(i).Physics;         }       }     }     //平均值     Mathaverage=MathSum/number     Englishaverage=EnglishSum/number     Physicsaverage=PhysicsSum/number     println("course\t average\t min\t max \t(FeMale)")     Mathaverage=Mathaverage.toInt     Englishaverage=Englishaverage.toInt     Physicsaverage=Physicsaverage.toInt     println("Math:\t   "+Mathaverage+"\t\t"+MathMin+"\t "+MathMax)     println("English:\t   "+Englishaverage+"\t\t"+EnglishMin+"\t "+EnglishMax)     println("Physics:\t   "+Physicsaverage+"\t\t"+PhysicsMin+"\t "+PhysicsMax)   } } class Student(id1:Int,gender1:String,Math1:Double,English1:Double,Physics1:Double){   var id:Int = id1   var gender:String = gender1   var Math:Double = Math1   var English:Double = English1   var Physics:Double = Physics1       override def toString = s"Student($id, $gender, $Math, $English, $Physics)" }

标签:Scala,students,Double,编程,value,初级,Student,var,new
From: https://www.cnblogs.com/yansans/p/18015201

相关文章

  • Scala与spark的关系
    Spark集群是基于ApacheSpark的分布式计算环境,用于处理大规模数据集的计算任务。ApacheSpark是一个开源的、快速而通用的集群计算系统,提供了高级的数据处理接口,包括SparkSQL、SparkStreaming、MLlib(机器学习库)和GraphX(图计算库)。Spark的一个主要特点是能够在内存中进行数据处......
  • 第五章:面向对象编程
    1.面向对象概述软件开发方法:面向过程和面向对象面向过程:关注点在实现功能的步骤上PO:ProcedureOriented。代表语言:C语言面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。例如开汽车:启动、踩离合、挂挡、松......
  • 编程手|美国大学生数学建模竞赛_经验分享
    坚持就是胜利,完赛就是成功!一、前言含金量/认可度从认可度来看美国大学生数学建模竞赛(MCM/ICM),是唯一的国际性数学建模竞赛,由美国数学及其应用联合会主办,2024年大赛吸引了来自美国、中国、澳大利亚、加拿大、英国、印度等多个国家与地区的高校等全球众多高校在内队伍参赛。......
  • 考研失败如何快速找到编程工作?
    考研成绩马上就要出来了,但是按照往年的录取情况,以及自己的考试表现来预估的话,相信大部分人心里早已有了答案。能上岸的同学还好,接下来几年继续自己的求学之后就好。但对于不能上岸的同学来说,已经到了不得不为自己将来考虑的时候了。那么问题来了,之前一直在忙考研的事情,就业的知......
  • scratch编程作品-龙年发大财
    作品介绍:龙年欢歌而来,带着满满的希望与勃勃生机。愿小虎鲸Scratch资源站激发您编程之路的无限灵感,让每一天都充满探索与创造的喜悦。在这吉祥如意的年份里,愿您的每一份耕耘都换来丰收的喜悦,每一个梦想都渐渐成为现实。愿您的心灵如同翱翔天际的龙,自由自在,无惧挑战。愿您的生活绚......
  • Java并发编程-CompletableFuture(上)
    大家好,我是小高先生,这篇文章我将和大家一起学习Java并发编程中很重要的一个类-CompletableFuture。 在Java的并发编程领域,Future接口一直扮演着关键的角色,它定义了一组与异步任务执行相关的方法,包括获取异步任务的结果、取消任务执行以及检查任务是否已完成等。然而,随着业务场......
  • Java并发编程-CompletableFuture(下)
    大家好,我是小高先生,书接上文,我们继续来学习CompletableFuture。上文我们讲了基础装Future是如何升级为神装CompletableFuture以及如何购买CompletableFuture,接下来我们一起来学习如何在战斗中使用CompletableFuture。CompletableFuture的基本使用CompletableFuture的实战案例C......
  • A030 《花样摩天轮》编程 源码
    一、课程介绍本节课将复习函数的相关知识,结合while、动画实现一个转动的摩天轮。二、单词卡park[pɑːrk]公园box[bɑːks]箱子draw[drɔː]画三、小试牛刀3.1源码操作编写代码,画出一棵松树。importturtlep=turtle.Pen()turtle.bgpic('trunk.gif')deftree(x,......
  • 新年恭喜发财-scratch编程作品
    程序说明:《新年-恭喜发财》是一个基于Scratch平台制作的动画贺卡项目。该项目通过编程和艺术设计,展现了浓厚的中国新年(2024年为龙年)氛围,以及传统的恭喜发财祝福。动画中包含有喜庆的一家人、鞭炮、福字、灯笼等春节元素,以及寓意吉祥和财富的动画效果。此项目不仅可用于学习编程,还......
  • 滑块解锁-scratch编程作品
    程序说明:《滑块解锁》是一款基于Scratch平台制作的益智类小游戏。游戏中存在多个黄色滑块阻挡红色滑块通往出口的路径。玩家需要通过逻辑思考和精确操作,滑动黄色滑块以开辟道路,使红色滑块顺利从出口脱出。随着游戏关卡的递进,难度逐渐增加,为玩家带来更大的挑战。滑块解锁源码免......