参考博客——
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