scala学习2

课程名称Spark大数据分析实验室名称                     
实验名称Scala程序设计进阶
指导老师成绩

一、实验任务及结果

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

class Person(name: String, sex: String, age: Int) {
  var Name: String = name
  var Sex: String = sex
  var Age: Int = age

  def setName(name: String): Unit ={
    Name = name
  }

  def setSex(sex: String): Unit ={
    Sex = sex
  }

  def setAge(age: Int): Unit = {
    Age = age
  }

  def getName(): String ={
    return Name
  }

  def getSex(): String ={
    return Sex
  }

  def getAge(): Int = {
    return Age
  }

  def print(): Unit = {
    println("name: " + name, "sex: " + sex, "age: " + age.toString)
  }
}

class Student( name: String, sex: String, age: Int, school: String, studentID: String ) extends Person(name, sex, age){
  var School: String = school
  var StudentID: String = studentID
  def setSchool(school: String): Unit ={
    School = school
  }
  
  def setStudentID(id: String): Unit ={
    StudentID = id
  }
  
  def getSchool(): String = {
    return School
  }
  
  def getStudentID: String = {
    return StudentID
  }
  
  override def print(): Unit = {
    super.print()
    println("school: " + School + "StudentID" + StudentID)
  }
}

object Test {
  def main(args: Array[String]): Unit = {
    val person = new  Person("zhangsan", "boy", 18)
    println(person.getName(), person.getAge(), person.getSex())
    person.setName("lisi"); person.setSex("girl"); person.setAge(19)
    person.print()

    val student = new Student("wangwu", "boy", 11, "Tsinghua", "12345")
    println(student.getName(), student.getAge(), student.getSex(), student.getSchool(), student.getStudentID)
    student.setSchool("Peking"); student.setStudentID("5454"); student.setSex("girl")
    student.print()
  }
}

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

import scala.io.{Source, StdIn}
object count{
  def checkProvince(province: String)={
    val data = for(line <- Source.fromFile("2016phonelocation.txt").getLines)
      yield line
    var num =Array(0,0,0,0)
    for (line <- data){
      val value = line.split(',')
      if (value(2) == province){
        value(4) match {
          case "中国电信" => num(0) = num(0) + 1
          case "中国移动" => num(1) = num(1) + 1
          case "中国联通" => num(2) = num(2) + 1
          case "虚拟运营商" => null
        }
      }
    }
    num(3) = num(0) + num(1) + num(2)
    println("号码总个数为" + num(3), "电信:" + num(0),"移动:"+ num(1), "联通"+ num(2))
  }

  def main(args: Array[String]): Unit = {
    var province: String = " "
    province = StdIn.readLine()
    checkProvince(province)
  }
  }

在这里插入图片描述

二、实验总结及问题
1、学会使用什么做什么事情;
学会使用类与继承,模式匹配,映射等语法
2、在实验过程中遇到了什么问题?是如何解决的?

3、还有什么问题尚未解决?可能是什么原因导致的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值