教师布置作业给学生和家长-Java

题目:教师,学生,家长。教师布置作业给学生和家长。每当教师布置一个道题时,就要自动通知到所有的学生和家长把该题记下来,然后在布置下一道题。要求程序扩展性,新学生或者家长可以随时加入这个班级,可以随时转学取消作业通知。(提示:模拟天气预报的案例,使用观察者模型)
具体代码如下:
Observer.java

public interface Observer {public void update(String info);
}

Subject.java

public interface Subject {public void registerObserver(Observer o);public void removeObserver(Observer o);public void notifyObservers();
}

Parent.java

public class Parent implements Observer {private TeacherSubject t;//学生的姓名,用来标识不同的学生对象private String name;//构造器用来注册观察者public Parent(String name,TeacherSubject t) {this.name=name;this.t = t;//每新建一个学生对象,默认添加到观察者的行列t.registerObserver(this);;}public void update(String info) {System.out.println("家长"+name+"得到作业:"+info);}
}

StudentObserver.java

public class StudentObserver implements Observer {private TeacherSubject t;//学生的姓名,用来标识不同的学生对象private String name;//构造器用来注册观察者public StudentObserver(String name,TeacherSubject t) {this.name=name;this.t = t;//每新建一个学生对象,默认添加到观察者的行列t.registerObserver(this);;}public void update(String info) {System.out.println("学生"+name+"得到作业:"+info);}
}

TeacherSubject.java

import java.util.ArrayList;
import java.util.List;public class TeacherSubject implements Subject {//用来存放和记录观察者private List<Observer> observers=new ArrayList<Observer>();//记录状态的字符串private String info;public void notifyObservers() {for (int i = 0; i < observers.size(); i++) {Observer observer = (Observer)observers.get(i);observer.update(info);}}public void registerObserver(Observer o) {observers.add(o);}public void removeObserver(Observer o) {int i = observers.indexOf(o);if (i >= 0) {observers.remove(i);}}//布置作业的方法,在方法最后,需要调用notifyObserver()方法,通知所有观察者更新状态public void setHomework(String info){this.info=info;System.out.println("今天的作业是"+info);this.notifyObservers();}
}

TestObserver.java

public class TestObserver {public static void main(String[] args) {TeacherSubject teacher=new TeacherSubject();StudentObserver s=new StudentObserver("张三", teacher);StudentObserver LiSi=new StudentObserver("李四", teacher);StudentObserver WangWu=new StudentObserver("王五", teacher);Parent zparent=new Parent("张大三", teacher);Parent lparent=new Parent("李大四", teacher);teacher.setHomework("第二页第六题");teacher.setHomework("第三页第七题");teacher.setHomework("第五页第八题");}
}

教师布置作业给学生和家长-Java相关推荐

  1. java 面向对象经典例题——教师,学生,家长。教师布置作业给学生和家长。

    题目: 教师,学生,家长.教师布置作业给学生和家长.每当教师布置一个道题时,就要自动通知到所有的学生和家长把该题记下来,然后在布置下一道题.要求程序扩展性,新学生或者家长可以随时加入这个班级,可以随时 ...

  2. Axure高保真学校后台管理作品管理教师管理资源审核学生管理家长管理权限管理资源管理web端后台模板管理教师审核统计分析教育后台管理系统学校后台管理系统校园后台管理系统

    作品介绍:Axure高保真学校后台管理&作品管理&教师管理&资源审核&学生管理&家长管理&权限管理&资源管理&web端后台模板管理&am ...

  3. C++ 老师和学生布置作业问题 类和对象

    C++ 类和对象 老师和学生 题目 教师的日常工作包括布置作业(homework).批改作业(review).其中布置作业需要指定是哪门课程的作业,需要知道课程名称,然后返回课程编号:批改作业需要接收 ...

  4. 超六成受访者 支持禁用微信布置作业

    超六成受访者 支持禁用微信布置作业 近日,"禁用微信布置作业"登上了微博热搜,引发广泛讨论.据教育部网站消息,此前有政协委员提出<关于停止小学老师用手机微信和QQ对学生及家长 ...

  5. 《JavaEE课程设计报告》教师给学生布置作业系统设计报告

    一.题目与要求 开发一个作业管理系统,该系统有两类角色:教师(教师也是管理员)与学生. 教师: (0)可以将一个教学班的学生信息一次导入(也可以单独添加一个学生),用户名和密码默认为学号.注意,按教学 ...

  6. 学生不做作业,如何与家长联系

    当过班主任的都知道,管理好班级不仅是与学生进行沟通,和家长的沟通也是很重要的.有的时候学生经常不做作业,这时候找学生也没有什么用,那就只能找家长了.那么我们应该怎样和家长进行联系呢?今天小编就来给各位 ...

  7. 教师怎样将成绩单独发送给学生和家长?

    在工作学习中,我们经常会遇到怎样将成绩单独发送给学生和家长这样的问题.因此,面对怎样将成绩单独发送给学生和家长我们应该有努力探索的精神.诚挚的心灵,是学生情感的钥匙,高尚的师德,是学生心灵的明镜.对于 ...

  8. 老师们:不能用微信、QQ等方式布置作业了!

    政策还需细化 便利之处应保留 来源:IT时报 作者:丁晓东 "今日作业:1.数学作业课后习题册15~17页:2.语文第5课的课后生字抄写10遍:背诵两首古诗--"孩子在读五年级的张 ...

  9. 学生评教html模板,学生及家长评教评学调查表模板

    [问卷简介]尊敬的家长.亲爱的同学,你们好!为了更加真实.有效地加强家校联系与沟通,全面了解教学情况,我们设计了这份问卷.本问卷采取的是不记名方式,所以请你们认真阅读后选择最恰当的答案.感谢您的支持! ...

最新文章

  1. 量子力学与机器学习相结合,预测高温下的化学反应
  2. Ueditor 自动换行,添加P标签问题
  3. 脑电分析系列[MNE-Python-10]| 信号空间投影SSP数学原理
  4. Windows下一个curl使用
  5. 1.6.2java工业星系_我的世界1.6.4
  6. 从 SPIR-V 到 ISPC:将 GPU 计算转化为 CPU 计算
  7. python数据库实例_Python操作MySQL数据库9个实用实例
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的家校通管理系统
  9. java 循环效率_Java For循环效率测试
  10. git修改commit注释_【Slog】Git之多人同feature的同分支开发
  11. 编译原理完整学习笔记(六):语义分析和中间代码生成
  12. Python+uiautomation 查找微信僵尸粉
  13. [Mac] Newifi mini路由器刷breed+Padavan固件
  14. 直播视频分辨率码率参考设置
  15. Ubuntu桌面卡死、You are in emergency mode
  16. Diligent推出现代治理应对危险的治理赤字问题,并宣布举办首届现代治理峰会
  17. js URL 地址参数格式化
  18. kubernetes(K8S)容器部署,重新启动后,node节点提示notready无法正常工作。
  19. pandas使用to_datetime函数将时间字符串转化为时间对象、使用dt.tz_localize为转化后的时间对象添加时区信息(timezone)
  20. 21岁日本女星惨遭猥亵,只因自拍瞳孔倒影暴露住址? 一张照片是怎么出卖你的?

热门文章

  1. ELK 安装部署(入门必备)
  2. Windows系统软件
  3. 网络安全工程师在面试安全岗位时,哪些内容是加分项?
  4. 微信电脑版聊天图片DAT格式转为普通JPG图片
  5. 骨传导耳机的原理是什么,推荐几款热门的骨传导耳机
  6. 技巧分享-查看所有连接过的无线网密码方案
  7. 前端开发实习生面试总结
  8. (02)Cartographer源码无死角解析-(53) 2D后端优化→位姿图优化理论(SPA)讲解、核型函数调用流程
  9. 如何识别图片中的水果?可以试试这两个办法
  10. c语言中百分号md是什么意思,Python中%是什么意思?python中百分号如何使用?