马戏团节目管理(慕课网Java练习)

任务描述

一、语言环境

实现语言 Java语言
环境要求及开发工具 JDK、Eclipse

二、程序整体要求

1。划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。
2、类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
3、要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释
4、程序运行效果参考效果图要求,文字大小、颜色也不做统一要求
5、结合演示效果,完成需求分析中的所有内容

三、需求分析

1.  整个项目由三个环节组成:
    -表演菜单展示
    -选择表演者进行表演
    -选择是否继续观看表演
2.  使用面向对象思想编程
     对封装、继承和多态的使用
     注意编码规范
     注意循环的使用 

四、详细设计

  1.抽象父类:        - 动物(Animal)
      属性:昵称(name)、年龄(age)          
      抽象方法:描述喜好(love)
  2. 接口         -  表演(IAct)           
    抽象方法:描述技能(skill)、描述表演(act)            
    说明: 每个表演者的表演信息是通过调用act()方法输出的              
  3. 实现类         
       - 棕熊(Bear)
        继承自Animal实现IAct

       - 狮子(Lion)
         继承自Animal实现IAct
         新增属性:颜色(color)、性别(sex)

       - 猴子(Monkey)
        继承自Animal实现IAct
        新增属性:品种(Type)

      - 鹦鹉(Parrot)
        继承自Animal实现IAct
        新增属性:品种(type)

      - 小丑(Clown)
        实现IAct
        属性:名字(name)、艺龄(years)
        新增方法:着装特点(dress)

五、实现效果

菜单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、代码实现

Animal父类

public abstract class Animal {
 private String name;
 private int age;
 Animal(){
  
 }
 Animal(String name,int age){
  this.setName(name);
  this.setAge(age);
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
public void setAge(int age) {
  this.age = age;
 }
 public abstract void love();
 
}

Bear类

/**
 * 继承自Animal类的Bear类
 * 接口IAct
 * @author Fairy
 *
 */
public class Bear extends Animal implements IAct {
public Bear(String name,int age) {
  // TODO Auto-generated constructor stub
  super(name, age);
 }
 @Override
 public void love() {
  // TODO Auto-generated method stub
  System.out.println("爱好:喜欢卖萌");
 }
 @Override
 public void act() {
  // TODO Auto-generated method stub
  System.out.println("表演者:"+this.getName());
  System.out.println("年龄:"+this.getAge()+"岁");
  skill();
  love();
 }
 @Override
 public void skill() {
  // TODO Auto-generated method stub
  System.out.println("技能:挽着花篮,打着雨伞,自立走秀");
 }
 }

Lion类

/**
 * 继承自Animal类的Lion类
 * 接口IAct
 * 特有属性有性别和毛色
 * @author Fairy
 *
 */
 public class Lion extends Animal implements IAct {
 private String sex;
 private String color;
 public Lion(String name,int age,String color,String sex) {
  super(name, age);
  this.setSex(sex);
  this.setColor(color);
 }
 @Override
 public void love() {
  // TODO Auto-generated method stub
  System.out.println("爱好:喜欢吃各种肉类");
 }
 @Override
 public void act() {
  // TODO Auto-generated method stub
  System.out.println("表演者:"+this.getName());
  System.out.println("年龄:"+this.getAge()+"岁");
  skill();
  love();
 }
 @Override
 public void skill() {
  // TODO Auto-generated method stub
  System.out.println("技能:擅长钻火圈");
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public String getColor() {
  return color;
 }
 public void setColor(String color) {
  this.color = color;
 }
 }

Monkey类

/**
  * 继承自Animal类的Monkey类
  * 接口IAct
  * 特有属性有品种
 * @author Fairy
 *
 */
 public class Monkey extends Animal implements IAct {
 private String Type;
 public Monkey(String name,int age,String type) {
  super(name, age);
  this.setSpecies(type);
 }
 @Override
 public void love() {
  // 爱好
  System.out.println("爱好:喜欢模仿人的动作");
 }
 @Override
 public void act() {
  // 表演
  System.out.println("表演者:"+this.getName());
  System.out.println("年龄:"+this.getAge()+"岁");
  skill();
  love();
 }
 @Override
 public void skill() {
  // TODO Auto-generated method stub
  System.out.println("技能:骑独轮车过独木桥");
 }
 public String getSpecies() {
  return Type;
 }
 public void setSpecies(String type) {
  this.Type = type;
 }
 }

Parrot类

/**
 *  继承自Animal类的Parrot类
 *  接口IAct
 *  特有属性为品种
 * @author Fairy
 *
 */
 public class Parrot extends Animal implements IAct {
 private String Type;
 
 public Parrot(String name,int age,String type) {
  super(name, age);
  this.setType(type);
 }
 @Override
 public void love() {
  // 爱好
  System.out.println("爱好:喜欢吃坚果和松子");
 }
 @Override
 public void act() {
  // 表演
  System.out.println("表演者:"+this.getName());
  System.out.println("年龄:"+this.getAge()+"岁");
  skill();
  love();
 }
 @Override
 public void skill() {
  // TODO Auto-generated method stub
  System.out.println("技能:擅长模仿");
 }
 public String getType() {
  return Type;
 }
 public void setType(String type) {
  Type = type;
 }
 }

Clown类

/**
 * 小丑类
 * 特有属性有:昵称和艺龄
 * 接口IAct
 * @author Fairy
 *
 */
 public class Clown implements IAct {
 private String name;
 private int actAge;
 
 public Clown(String name,int actAge) {
  this.setName(name);
  this.setActAge(actAge);
 }
 @Override
 public void act() {
  // TODO Auto-generated method stub
  System.out.println("表演者:"+this.getName());
  System.out.println("艺龄:"+this.getActAge()+"岁");
  dress();
  skill();


 }
 @Override
 public void skill() {
  // TODO Auto-generated method stub
  System.out.println("技能:脚踩高跷,进行杂技魔术表演");
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getActAge() {
  return actAge;
 }
 public void setActAge(int actAge) {
  this.actAge = actAge;
 }
 //新增方法:着装特点
 public void dress() {
  System.out.println("着装:身穿五彩服装,头上戴着彩色的帽子,脸上画着夸张的彩妆");
 }
 }
 

IAct接口

public interface IAct {
 abstract void act();
 abstract void skill();
}

Show类,实现

/**
 * 项目作业  菜单包括:提示语“欢迎来到太阳马戏团”
 *      选择表演者提示语
 *      1、棕熊
 *      2、狮子
 *      2、猴子
 *      2、鹦鹉
 *      2、小丑
 * @author Fairy
 *
 */
 public class Show {
 /**
  * 展示菜单方法
  */
 public void displayMenu() {
  System.out.println("*************"+"欢迎来到太阳马戏团"+"****************");
  System.out.println("****************"+"请选择表演者"+"*******************");
  System.out.println("                   1--棕熊");
  System.out.println("                   2--狮子");
  System.out.println("                   3--猴子");
  System.out.println("                   4--鹦鹉");
  System.out.println("                   5--小丑");
  System.out.println("***********************************************");
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 Show show=new Show();
  IAct actor=null;
  int k=1;
  int n;
  Scanner scanner=new Scanner(System.in);
  while(k==1) {
    show.displayMenu();
    try{
    n=scanner.nextInt();
    }catch ( java.util.InputMismatchException e) {
     System.out.println("输入有误,请按照提示的整数输入!");
     scanner.next();
     continue;
    }
    switch (n) {
  case 1:
    actor=new Bear("Bill", 1);
    actor.act();
      break;
  case 2:
    actor=new Lion("Lain",2,"灰色","公狮");
    actor.act();
      break;
  case 3:
    actor=new Monkey("Tom", 1, "金丝猴");
    actor.act();
      break;
  case 4:
    actor=new Parrot("Rose", 1, "牡丹鹦鹉");
    actor.act();
      break;
  case 5:
    actor=new Clown("Kahle",5);
    actor.act();
      break;
  default:
    System.out.println("输入有误,请重新输入");
      continue;
   }
   System.out.println("******"+"是否继续观看(0/1)"+"******");
   k=scanner.nextInt();
   Boolean b=true;
   while(b) {
    System.out.println("******"+"是否继续观看(0/1)"+"******");
    k=scanner.nextInt();
    switch (k) {
    case 1:
     b=false;
     break;
     case 0:
     System.out.println("*********"+"欢迎下次光临"+"*********");
     System.exit(0);
     break;
     default:
     System.out.println("输入有误,请重新输入");
     scanner.next();
     continue;
                  }
               }
            }
         }
     }

来记录自己写过的项目,从小积累到大!
一步一个脚印!加油!!有错误的地方还希望各位大佬能够指正!!
谢谢~~~

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值