其他分享
首页 > 其他分享> > 宠物超市

宠物超市

作者:互联网

需求:

【练习面向对象】编写一个宠物超市

乌龟     按大小定价         大(TORTOISE_BIG):¥50,对应的name属性值是猪鼻龟         小(TORTOISE_SMALL):¥30,对应的name属性值是金钱龟   金鱼     按品种定价         品种A(GOLDFISH_A):¥10,对应的name属性值是红龙眼金鱼         品种B(GOLDFISH_B):¥20,对应的name属性值是紫龙睛金鱼     要求: 1、定义宠物抽象类;     属性:name     方法:calcPrice 2、定义乌龟(Tortoise)、金鱼类(GoldFish),继承抽象类,实现抽象方法(本宠物总价计算:单价 * 数量)   3、定义客户类(Customer) :name,phone   4、定义超时入口类(Test),根据提示,用户选择宠物、对应宠物种类、输入购买数量,最后列出用户购买清单及总价 展示效果:

*********欢迎来到PET超市********
请输入您的姓名:
yixiaobai
请输入您的联系电话:
123456
-------------------------------
请选择要购买的宠物(1.金鱼 2.乌龟 0.退出):
9
输入不合法
请选择要购买的宠物(1.金鱼 2.乌龟 0.退出):
1
请选择种类(1.红龙眼金鱼 2.紫龙睛金鱼):
99
种类输入有误
请选择要购买的宠物(1.金鱼 2.乌龟 0.退出):
1
请选择种类(1.红龙眼金鱼 2.紫龙睛金鱼):
2
请输入购买数量:
6
请选择要购买的宠物(1.金鱼 2.乌龟 0.退出):
2
请选择(1.猪鼻龟 2.金钱龟):
1
请输入购买数量:
2
请选择要购买的宠物(1.金鱼 2.乌龟 0.退出):
0
---------------------------------
客户【yixiaobai】,您选择的宠物如下:
宠物名称 数量 宠物总价
-----------------
猪鼻龟 2 100
紫龙睛金鱼 6 120
----------------------------
总价为:220元!
***********谢谢惠顾************

代码实现

public abstract class PETclass {
    /**
     * 宠物抽象类
     * 属性:name
     * 方法:calcPrice
     */
    String name;
    int num;

    public PETclass(String name, int num) {
        this.name = name;
        this.num = num;
    }

    //宠物总价
    public int calcPrice(String name,int num){
        int price = 0;
        return price * num;
    }

}
public class Tortoise extends PETclass {
    public Tortoise(String name, int num) {
        super(name, num);
    }
    /**
     * 乌龟类
     * 继承宠物抽象类
     */

    //重写calcPrice方法
    @Override
    public int calcPrice(String name, int num) {
        if(name == "猪鼻龟"){
            return 50 * num;
        }
        else if(name == "金钱龟"){
            return 30 * num;
        }
        return 0;
    }
}
public class GoldFish extends PETclass {
    public GoldFish(String name, int num) {
        super(name, num);
    }
    /**
     * 金鱼类
     * 继承宠物抽象类
     */

    @Override
    public int calcPrice(String name, int num) {
        if(name == "红龙眼金鱼"){
            return 10 * num;
        }
        else if(name == "紫龙睛金鱼"){
            return 20 * num;
        }
        return 0;
    }
}
public class Customer {
    /**
     * 客户类
     */
    String name;
    String phone;
//构造方法
    public Customer(String name, String phone) {
        this.name = name;
        this.phone = phone;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "Customer{" +
                "name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class PetTest {
    /**
     * 宠物超市测试类
     */
    public static void main(String[] args) {
        System.out.println("*********欢迎来到PET超市********");
        //购买宠物的总金额
        int totals = 0;
        //存储购买的每个种类宠物的种类、数量、金额
        HashMap<PETclass,Integer> map = new HashMap<>();
        Scanner sc = new Scanner(System.in);
        String name;
        String phone;
        System.out.println("请输入您的姓名:");
        name = sc.nextLine();
        System.out.println("请输入您的联系电话:");
        phone = sc.nextLine();
        Customer c1 = new Customer(name,phone);
        System.out.println("-------------------------------");
        int pet1;
        do {
            System.out.println("请选择要购买的宠物(1.金鱼  2.乌龟  0.退出):");
            pet1 = sc.nextInt();
            if(pet1 != 1 && pet1 != 2 && pet1 != 0){
                System.out.println("输入不合法");
                continue;
            }
            if(pet1 == 1){
                 System.out.println("请选择种类(1.红龙眼金鱼 2.紫龙睛金鱼):");
            }
            else if(pet1 == 2){
                System.out.println("请选择(1.猪鼻龟  2.金钱龟):");
            }
            else if(pet1 == 0)
                break;
                int kind = sc.nextInt();
                if(kind != 1 && kind != 2){
                    System.out.println("种类输入有误");
                    continue;
                }
                System.out.println("请输入购买数量:");
                int num = sc.nextInt();
                PETclass pet = null;
                if(pet1 == 1 && kind == 1){
                    pet = new GoldFish("红龙眼金鱼",num);
                }
                else if(pet1 == 1 && kind == 2){
                    pet = new GoldFish("紫龙睛金鱼",num);
                }
                else if(pet1 == 2 && kind == 1){
                    pet = new Tortoise("猪鼻龟",num);
                }
                else if(pet1 == 2 && kind == 2){
                    pet = new Tortoise("金钱龟",num);
                }
            int total = pet.calcPrice(pet.name,num);
            totals += total;
            map.put(pet,total);

        }while (pet1 != 0);
        System.out.println("---------------------------------");
        System.out.println("客户【" + c1.name + "】,您选择的宠物如下:");
        System.out.println("宠物名称\t数量\t宠物总价");
        System.out.println("-----------------");
        for (Map.Entry<PETclass,Integer>entry : map.entrySet()) {
            System.out.println(entry.getKey().name + "\t" + entry.getKey().num + "\t" + entry.getValue());
        }
        System.out.println("----------------------------");
        System.out.println("总价为:" + totals + "元!");
        System.out.println("***********谢谢惠顾************");

    }
}

 

标签:String,宠物,System,超市,num,println,name
来源: https://www.cnblogs.com/yixiaobaitest/p/16026237.html