Scala编程实验五

1.定义一个sum函数,返回指定区间的值的和?例如,区间[1,4]的和为1+2+3+4=10返回指定区间值的平方的和呢?立方呢?

import scala.io.StdIn
object SumRange {
  def sum(x:Int,y:Int):Int= {
    var num = 0;
    for (i <- x to y) {
      num += i;
    }
    num
  }
  def main(args: Array[String]) {
  val x,y=readInt();
  print(sum(x,y))
}
}

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

import java.io._
class Person {
  var name=""
  var sex=""
  var age=0
  def names=name
  def sexs=sex
  def ages=age
  def name_(newName:String): Unit ={
    this.name=newName
  }
  def sex_(newSex:String): Unit ={
    this.sex=newSex
  }
  def age_(newAge:Int): Unit ={
    this.age=newAge
  }
  def print(): Unit ={
    println(this.name+'\t'+this.sex+'\t'+this.age)
  }
}
//2.创建子类Student
 class Student  extends Person{
    private[this] var _school: String = ""
    private[this] var _studentId: String = ""

    def school: String = _school

    def school_=(value: String): Unit = {
      _school = value
    }

    def studentId: String = _studentId

    def studentId_=(value: String): Unit = {
      _studentId = value
    }

    def printsc(): Unit = {
      println(this.name + '\t' + this.sex + '\t' + this.age + '\t' + this._school + '\t' + this.studentId)
    }
  }
//3。创建主函数调用方法
object Stu {
    def main(args: Array[String]) {
      val person = new Person
      person.name = "W"
      person.sex = "男"
      person.age = 21
      person.print()
      val student = new Student
      student.name = "W"
      student.sex = "男"
      student.age = 21
      student.school = "JXNU"
      student.studentId = "156421561684"
      student.printsc()
      //    println(s"person.name = ${person.name}")
    }
}

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

import scala.io.Source
import java.util.Scanner
object iphone {
  def main(args: Array[String]): Unit = {
    val phone = Source.fromFile("/C:/Users/Administrator/2016phonelocation.txt")
    //    println(phone)//选择文件保存的位置
    val sc = new Scanner(System.in).next()
    // //从键盘读入省份,可以用next() or nextLine()
    val lineIterator = phone.getLines()
    // //处理每一行而不是文件的全部内容。 这可以通过getLines方法实现
    var ChinaUnicom = 0
    var ChinaMobile = 0
    var ChinaTeleCom = 0
    var num = 0
    for (line <- lineIterator) {
      if (line.contains(sc)&&line.contains("中国联通")) ChinaUnicom = ChinaUnicom + 1
      if (line.contains(sc)&&line.contains("中国电信")) ChinaMobile = ChinaMobile + 1
      if (line.contains(sc)&&line.contains("中国移动")) ChinaTeleCom = ChinaTeleCom + 1
    }
    print("该省共有号码段" + (ChinaMobile + ChinaTeleCom + ChinaUnicom) + "个。")
    print("其中,中国电信" + ChinaTeleCom + "个,中国移动" + ChinaMobile + "个,中国联通" + ChinaUnicom + "个。")
    //println(num)
  }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值