用Scala语言写一个简单的woss

2023-04-13by@3065708597-yTipL&@ChatGPT.Model: gpt-3.5
3065708597-yTipL

用Scala语言写一个简单的woss

Avatar
Avatar

由于缺乏对woss的具体了解,我假设woss是一个气象数据采集与处理系统,以下是一个简单的Scala实现:

import scala.io.StdIn.readLine

object Woss {
  case class WeatherData(time: Long, temperature: Double, humidity: Double, pressure: Double)

  def main(args: Array[String]): Unit = {
    var data: List[WeatherData] = List.empty

    while (true) {
      val input = readLine()

      input match {
        case "quit" =>
          println("Goodbye!")
          sys.exit(0)

        case "add" =>
          val time = System.currentTimeMillis()
          val temperature = readLine("Temperature: ").toDouble
          val humidity = readLine("Humidity: ").toDouble
          val pressure = readLine("Pressure: ").toDouble

          data = WeatherData(time, temperature, humidity, pressure) :: data

        case "average" =>
          val temperatureAvg = data.map(_.temperature).sum / data.length
          val humidityAvg = data.map(_.humidity).sum / data.length
          val pressureAvg = data.map(_.pressure).sum / data.length

          println(s"Temperature Average: $temperatureAvg")
          println(s"Humidity Average: $humidityAvg")
          println(s"Pressure Average: $pressureAvg")

        case _ =>
          println("Invalid input!")
      }
    }
  }
}

这个程序使用了一个WeatherData类来存储气象数据,使用了一个List来存储所有的数据。它有三个命令:add用于添加新的气象数据,average用于计算所有数据的平均值并输出,quit用于退出程序。程序会不断循环等待用户输入命令,直到用户输入quit为止。

3065708597-yTipL

用Scala语言写一个简单的电信宽带运营系统

Avatar
Avatar

以下是一个基于Scala的简单电信宽带运营系统实现:

import scala.io.StdIn.readLine

object Telecom {
  case class Customer(name: String, phoneNumber: String, address: String, broadbandPlan: String)

  var customers: List[Customer] = List.empty

  def main(args: Array[String]): Unit = {
    while (true) {
      val input = readLine()

      input match {
        case "quit" =>
          println("Goodbye!")
          sys.exit(0)

        case "add" =>
          val name = readLine("Name: ")
          val phoneNumber = readLine("Phone Number: ")
          val address = readLine("Address: ")
          val broadbandPlan = readLine("Broadband Plan: ")

          customers = Customer(name, phoneNumber, address, broadbandPlan) :: customers
          println("Customer added successfully!")

        case "list" =>
          customers.foreach(println)

        case "search" =>
          val query = readLine("Search: ")
          val results = customers.filter(c => c.name.contains(query) || c.phoneNumber.contains(query))

          if (results.isEmpty) {
            println("No results found!")
          } else {
            results.foreach(println)
          }

        case _ =>
          println("Invalid input!")
      }
    }
  }
}

这个程序使用了一个Customer类来存储客户信息,使用了一个List来存储所有的客户数据。它有三个命令:add用于添加新的客户信息,list用于列出所有客户信息,search用于搜索客户信息。程序会不断循环等待用户输入命令,直到用户输入quit为止。

该程序可以扩展为更复杂的电信宽带运营系统,例如添加更多的客户信息字段,支持更多的操作(例如修改、删除、统计数据等),并且可以使用数据库来存储数据。

3065708597-yTipL

用Scala语言写一个电信宽带运营系统

Avatar
Avatar

以下是一个基于Scala的电信宽带运营系统实现,该系统支持添加、修改、删除客户信息,以及查询所有客户信息和统计数据:

import scala.io.StdIn.readLine

object Telecom {
  case class Customer(name: String, phoneNumber: String, address: String, broadbandPlan: String, monthlyFee: Double)

  var customers: List[Customer] = List.empty

  def main(args: Array[String]): Unit = {
    while (true) {
      val input = readLine()

      input match {
        case "quit" =>
          println("Goodbye!")
          sys.exit(0)

        case "add" =>
          val name = readLine("Name: ")
          val phoneNumber = readLine("Phone Number: ")
          val address = readLine("Address: ")
          val broadbandPlan = readLine("Broadband Plan: ")
          val monthlyFee = readLine("Monthly Fee: ").toDouble

          customers = Customer(name, phoneNumber, address, broadbandPlan, monthlyFee) :: customers
          println("Customer added successfully!")

        case "list" =>
          customers.foreach(println)

        case "search" =>
          val query = readLine("Search: ")
          val results = customers.filter(c => c.name.contains(query) || c.phoneNumber.contains(query))

          if (results.isEmpty) {
            println("No results found!")
          } else {
            results.foreach(println)
          }

        case "statistics" =>
          val totalMonthlyFee = customers.map(_.monthlyFee).sum
          val averageMonthlyFee = totalMonthlyFee / customers.length
          val maxMonthlyFee = customers.map(_.monthlyFee).max
          val minMonthlyFee = customers.map(_.monthlyFee).min

          println(s"Total Monthly Fee: $totalMonthlyFee")
          println(s"Average Monthly Fee: $averageMonthlyFee")
          println(s"Max Monthly Fee: $maxMonthlyFee")
          println(s"Min Monthly Fee: $minMonthlyFee")

        case "update" =>
          val phoneNumber = readLine("Phone Number: ")
          val index = customers.indexWhere(_.phoneNumber == phoneNumber)

          if (index == -1) {
            println("Customer not found!")
          } else {
            val name = readLine("Name: ")
            val address = readLine("Address: ")
            val broadbandPlan = readLine("Broadband Plan: ")
            val monthlyFee = readLine("Monthly Fee: ").toDouble

            val updatedCustomer = Customer(name, phoneNumber, address, broadbandPlan, monthlyFee)
            customers = customers.updated(index, updatedCustomer)

            println("Customer information updated successfully!")
          }

        case "delete" =>
          val phoneNumber = readLine("Phone Number: ")
          val index = customers.indexWhere(_.phoneNumber == phoneNumber)

          if (index == -1) {
            println("Customer not found!")
          } else {
            customers = customers.take(index) ++ customers.drop(index + 1)
            println("Customer information deleted successfully!")
          }

        case _ =>
          println("Invalid input!")
      }
    }
  }
}

该程序使用了一个Customer类来存储客户信息,使用了一个List来存储所有的客户数据。它支持以下操作:

  • add:添加新的客户信息。
  • list:列出所有客户信息。
  • search:搜索客户信息。
  • statistics:统计所有客户信息,包括总月费用、平均月费用、最高月费用和最低月费用。
  • update:根据电话号码更新客户信息。
  • delete:根据电话号码删除客户信息。

该程序可以使用数据库来存储数据,并且可以添加更多的客户信息字段和操作。