实验二 Scala程序设计进阶

1、构造Person类。包括姓名(name),性别(sex)和年龄(age)。提供所有属性的set和get函数,提供print函数打印其信息;构造Student类继承Person类,并增加学校(school),学号(studentID)。并对其进行测试。

package com.spark.core.wc

object Test {
    def main(args: Array[String]): Unit = {
        //测试Person类
        val person = new Person
        person.setName("哇哈哈")
        person.setAge(20)
        person.setSex("男")
        person.print()

        //测试student类
        val student = new Student
        student.setSchool("jxnu")
        student.setStudentID("10086")
        student.setAge(18)
        student.setName("小王")
        student.setSex("男")
        student.print()
    }

}

class Person {
    var name=""
    var sex=""
    var age=0
    def getName(): String ={
        return name
    }
    def setName(name:String): Unit ={
        this.name = name
    }
    def getSex(): String ={
        return sex
    }
    def setSex(sex:String): Unit ={
        this.sex = sex
    }
    def getAge(): Int ={
        return age
    }
    def setAge(age:Int): Unit ={
        this.age = age
    }
    def print(): Unit ={
        println("name="+name + ",sex="+sex + ",age=" + age)
    }
}
class Student extends Person {
    var school=""
    var studentID=""
    def getSchool(): String ={
        return school
    }
    def setSchool(school:String): Unit ={
        this.school = school
    }
    def getStudentID(): String ={
        return studentID
    }
    def setStudentID(studentID:String): Unit ={
        this.studentID = studentID
    }
    override def print(): Unit = {
        println("name="+name + ",sex="+sex + ",age=" + age +
                ",school=" + school + ",studentID=" + studentID)
    }
}

2、根据数据文件2016phonelocation,编写程序实现功能:运行程序,用户输入任意省份,输出这个省份号码段的个数,电信、移动、联通各占多少个。

实验二 Scala程序设计进阶_第1张图片

package com.spark.core.wc

import java.util.Scanner
import scala.io.Source

object Test2_2 {
    def main(args: Array[String]): Unit = {
        val datas = Source.fromFile("datas/2016phonelocation.txt")

        val sc = new Scanner(System.in)
        val province = sc.next()

        var Y = 0
        var D = 0
        var L = 0
        var sum = 0
        for (elem <- datas.getLines()) {
            val data = elem.split(",")
            if (data(2) == province){
                sum += 1
                if (data(4) == "中国移动") Y += 1
                else if (data(4) == "中国电信") D += 1
                else if (data(4) == "中国联通") L += 1
            }
        }
        println(province + "省的号码共有" + sum + "个")
        println("其中,中国移动有" + Y + "个,中国电信有" + D + "个,中国联通有" + L + "个")
    }

}

你可能感兴趣的:(Spark,算法,scala,spark)