1.任务描述
编写一个超市购物程序,在一家超市有牙刷、毛巾、水杯、苹果和香蕉五种商品,商品价格如下表所示。
编号 | 商品名称 | 价格 |
---|---|---|
1 | 牙刷 | 8.8元 |
2 | 毛巾 | 10.0元 |
3 | 水杯 | 18.8元 |
4 | 苹果 | 12.5元 |
5 | 香蕉 | 15.5元 |
用户输入商品序列号进行商品购买,用户输入购买数量后计算出所需要花费的钱,一次购买结束后,需要用户输入“Y”或“N”,“Y”代表继续购买,“N”代表购物结束。
2.运行结果
任务运行结果如图2-3所示。
3.先定义物品类Product,物品类具有序号id,名字name,价格age三个基本属性。
class Product {
private int id;
private String name;
private float age;
public Product(int id,String name,float age){
this.id=id;
this.name=name;
this.age=age;
}
public float getAge(){
return age;
}
public int getId(){
return id;
}
public String getName(){
return name;
}
@Override
public String toString() {
return id+"."+name+"的价格为:"+age+"元";
}
}
4.在定义商城类Mall,商城类具有添加物品Add的功能和展示物品show的功能。
class Mall {
//添加商品
static List<Product>pro=new ArrayList<>();
public static void Add(){
pro.add(new Product(1,"牙刷",8.8f));
pro.add(new Product(2,"毛巾",10.0f));
pro.add(new Product(3,"水杯",18.8f));
pro.add(new Product(4,"苹果",12.5f));
pro.add(new Product(5,"香蕉",15.5f));
}
public static List<Product> getPro() {
return pro;
}
//展示商品
public static void show(){
System.out.println("--------------黑马小商城--------------");
for(int i=0;i<pro.size();i++){
System.out.println(pro.get(i).toString());
}
}
}
5.最后是人物类Person,Person只具有购物shopping的功能。
class Person {
public static void shopping(){
while(true){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你需要购买商品的序列号:");
int id=sc.nextInt();
String name = Mall.getPro().get(id).getName();
System.out.println("请输入你需要购买的"+name+"的数量:");
int order=sc.nextInt();
int age= (int) Mall.getPro().get(id).getAge();
System.out.println("你需要购买"+name+order+"支"+"需要花费"+order*age+"元");
System.out.println("需要继续购买请输入Y,否则输入N:");
char c=sc.next().charAt(0);
if('N' == c){
System.out.println("期待你的下次光临!");
break;
}
}
}
}
6.最后执行类TestProduct.
public class TestProduct {
public static void main(String[] args) {
Mall.Add();
Mall.show();
Person.shopping();
}
}
以上就是该小程序所有的功能。下面是效果图
--------------黑马小商城--------------
1.牙刷的价格为:8.8元
2.毛巾的价格为:10.0元
3.水杯的价格为:18.8元
4.苹果的价格为:12.5元
5.香蕉的价格为:15.5元
请输入你需要购买商品的序列号:
1
请输入你需要购买的毛巾的数量:
2
你需要购买毛巾2支需要花费20元
需要继续购买请输入Y,否则输入N:
Y
请输入你需要购买商品的序列号:
2
请输入你需要购买的水杯的数量:
2
你需要购买水杯2支需要花费36元
需要继续购买请输入Y,否则输入N:
N
期待你的下次光临!