A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 万琪 金牌黑马   /  2013-7-6 14:29  /  1502 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 万琪 于 2013-7-6 15:49 编辑

7月4日活动答案标准



*          题目:200%原创,考察基础分析

*
*          请结合代码用OOP思想描述下列事物:
*
*          老师在黑板上画了一个圆,问学生们:已知半径是3,求圆的面积是多少?
*
*          (PS:提示!老师类,粉笔类,圆,黑板类,学生类
*
*          要求:
*
*          1:适当建立对象
*
*          2:对象间关系明确,(谁拥有数据,谁就拥有操作数据的方法。)
*
*          3:功能完整,结构清晰,独立完成
*
*          4:再次强调,本题考查程序逻辑,描述必须符合事物发展规律
*
*          5:根据完成情况,即功能相应给分


PS:做完直接把代发回复上来,结果截图,文字,,谢谢配合,打包者无分
根据已提交的兄弟的答案,题目还是有一定深度的,请三思后再提交










答案样例
  1. // ###############答案示例:################################################

  2. /*
  3. * 问题分析:
  4. *
  5. * 对象/方法/属性
  6. *
  7. * 老师类/操作粉笔,提问,回答/答案
  8. *
  9. * 粉笔类/画圆
  10. *
  11. * 园/计算方程/常量PI,半径r
  12. *
  13. * 黑板类/保留,显示/数据
  14. *
  15. * 学生类/回答问题
  16. */

  17. // ###################################################################

  18. // 老师类
  19. class Teacher {
  20.         // 答案
  21.         private double asea;
  22.         public Yuan te;
  23.         {
  24.                 System.out.println("老师说:开始上课了!");
  25.         }

  26.         void toYuan(int r) {
  27.                 te = new Pen().dreaw(r);
  28.                 System.out.println("老师画了一个半径为" + r + "的圆");
  29.                 Black.setBd(te);// 画上黑板
  30.         }

  31.         void toQue() {
  32.                 System.out.println("老师问:已知半径是,求圆的面积是多少?");
  33.                 // 老师知道答案了
  34.                 asea = te.getArea();
  35.         }

  36.         void techQue() {
  37.                 System.out.println("很好,答案是" + asea + "你答对了吗?");
  38.         }
  39. }

  40. // 粉笔类
  41. class Pen {
  42.         // 画圆
  43.         public Yuan dreaw(int r) {
  44.                 return new Yuan(r);
  45.         }
  46. }

  47. // 圆类
  48. class Yuan {
  49.         public static final double PI = 3.14;
  50.         private int r;

  51.         Yuan(int r) {
  52.                 this.r = r;
  53.         }

  54.         // (得分点)谁拥有数据,谁就拥有操作数据的方法。
  55.         // 求面积
  56.         public double getArea() {
  57.                 return r * r * PI;
  58.         }
  59. }

  60. // 黑板
  61. class Black {
  62.         // 可显示的数据
  63.         static Object obj;

  64.         // 单例设计模式
  65.         static public Black bd = new Black();

  66.         // 得到信息
  67.         static void setBd(Object obj) {
  68.                 Black.obj = obj;
  69.         }
  70.         private Black(){}
  71.         // 展示信息
  72.         static Object toShow() {
  73.                 return obj;
  74.         }
  75. }

  76. // 学生类
  77. class Students {
  78.         void toAns() {
  79.                 if (!(Black.toShow() instanceof Yuan)) {
  80.                         System.out.println("学生说:我们不会做啊!");
  81.                         return;
  82.                 }
  83.                 Yuan my = (Yuan) Black.toShow();
  84.                 System.out.println("学生说:面积是" + my.getArea() + "吗?");
  85.         }
  86. }

  87. // 事物发展过程
  88. public class Test04 {
  89.         public static void main(String[] args) {
  90.                 Teacher to = new Teacher();
  91.                 // 半径为三的圆
  92.                 to.toYuan(3);
  93.                 to.toQue();
  94.                 new Students().toAns();
  95.                 to.techQue();
  96.         }
  97. }

  98. /*
  99. * 控制台:
  100. *
  101. * 老师说:开始上课了!
  102. *
  103. * 老师画了一个半径为3的圆
  104. *
  105. * 老师问:已知半径是,求圆的面积是多少?
  106. *
  107. * 学生说:面积是28.26吗?
  108. *
  109. * 很好,答案是28.26你答对了吗?
  110. */
复制代码
评分标准:
1,谁拥有数据,谁就拥有操作数据的方法。 3分以上
2,黑板类使用单例。4分以上
3,各类间关系清晰,描述符合实际,5~6 分
4,描述严重失实  1分
5,谁拥有数据但未拥有方法  2分


因为都是版主们手工出题,所以难免有遗漏,欢迎指正。

评分

参与人数 1技术分 +1 黑马币 +10 收起 理由
Sword + 1 + 10 辛苦了,你们都是好样的!

查看全部评分

5 个回复

倒序浏览
提交答案时,没学到单例,看到黑板使用单例,恍然大悟,继续努力
回复 使用道具 举报
提交答案时,没学到单例,看到黑板使用单例,恍然大悟,继续努力
回复 使用道具 举报
你的单例设计的明显可以通过new创建嘛,不严谨..获取那个单例的方法也只能直接用bd,还是用个方法好点吧..而且我觉得学生类设计成直接是学生们的类有点别扭……嘿嘿,勿喷哈
回复 使用道具 举报
看完了答案,感觉有一些别扭,既然没有用到,那么黑板这个类定义出来的意义何在呢?
回复 使用道具 举报
呃...
老师不用说那么多话吧?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马