宠物超市
作者:互联网
需求:
【练习面向对象】编写一个宠物超市
乌龟
按大小定价
大(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