没有合适的资源?快使用搜索试试~ 我知道了~
请根据观察者模式,用Java语言设计并实现气象站程序。其中,部分代码已经写好,包括: • 观察者接口 • 主题接口 • 显示板接口 • 测试程序 请在此框架下,继续完成CurrentConditionsDisplay、ForecastDisplay、StatisticsDisplay等显示板类, 以及气象数据类(WeatherData), 使程序最终运行结果如下图所示(XXXX为本人学号): Currents conditions:80.0F degress and 65.0% humidity (by 1508060330) Avg/Max/Min:temperature = 80.0/80.0/80.0/ (by 1508060330) Forecast (by 1508060330):improving weather on the way Currents conditions:82.0F degress and 70.0% humidity (by 1508060330) Avg/Max/Min:temperature = 81.0/82.0/80.0/ (by 1508060330) Forecast (by 1508060330):watch out for cooler,rainy weather Currents conditions:78.0F degress and 90.0% humidity (by 1508060330) Avg/Max/Min:temperature = 80.0/82.0/78.0/ (by 1508060330) Forecast (by 1508060330):more of the same
资源推荐
资源详情
资源评论








package cn.edu.qust.dp.object;
import java.util.ArrayList;
import java.util.List;
import cn.edu.qust.dp.Interface.DisplayElement;
import cn.edu.qust.dp.Interface.Observer;
import cn.edu.qust.dp.Interface.Subject;
public class StatisticsDisplay implements Observer, DisplayElement {
//具体的观察者
private List<Float> statistics;
private float Avg;
private float Max;
private float Min;
private Subject weatherData;
public StatisticsDisplay(Subject weatherData){
//指定气象站并注册
this.weatherData = weatherData;
weatherData.registerObserver(this);
statistics = new ArrayList<>();
}
@Override
public void display() {
//找出最值
Max = Min = statistics.get(0);
for(int i = 0;i < statistics.size();i++){
if (statistics.get(i) > Max){
Max = statistics.get(i);
}
if (statistics.get(i) < Min){
Min = statistics.get(i);
}
}
Avg = 0;
for(int i = statistics.size()-1; i >= 0; i--){
Avg += statistics.get(i);
}
Avg = Avg/statistics.size();
System.out.println("Avg/Max/Min:"
+ "temperature = "
+ Avg + "/"
+ Max + "/"
+ Min + "/"
+ " (by 1508060330)");
}
@Override
public void update(float temp, float humidity, float pressure) {
//控制缓存三天天气
if(statistics.size() > 3){
//删除旧元素
statistics.remove(0);
}
//添加新元素
statistics.add(temp);
//更新后显示
display();
}
}
资源评论

Amarao
- 粉丝: 344
- 资源: 41

上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
已下载
下载帮助

资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
