用Scala语言写一个简单的woss
由于缺乏对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为止。
用Scala语言写一个简单的电信宽带运营系统
以下是一个基于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为止。
该程序可以扩展为更复杂的电信宽带运营系统,例如添加更多的客户信息字段,支持更多的操作(例如修改、删除、统计数据等),并且可以使用数据库来存储数据。
用Scala语言写一个电信宽带运营系统
以下是一个基于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:根据电话号码删除客户信息。该程序可以使用数据库来存储数据,并且可以添加更多的客户信息字段和操作。