本段代码只要实现了超市的购买功能。
1、主函数
package com;
import com.person.Customer;
import com.supermark.LittleSupermarket;
import com.supermark.Merchandise;
import java.util.Scanner;
public class RunLittleSupperMarkeyAppMain {
public static void main(String[] args) {
LittleSupermarket littleSupermarket = new LittleSupermarket();
littleSupermarket.address="世纪大道";
littleSupermarket.superMarketName="超市";
littleSupermarket.parkingCount=200;
littleSupermarket.merchandises=new Merchandise[200];//有200种商品
littleSupermarket.merchandiseSold=new int[littleSupermarket.merchandises.length];
Merchandise[] all = littleSupermarket.merchandises;
for (int i=0;i<all.length;i++){
Merchandise m = new Merchandise();
m.count = 200;
m.id = "ID"+i;
m.name = "商品"+i;
m.purchasePrice = Math.random()*200;
m.soldPrice = (1+Math.random())*200;
all[i] = m;
}
System.out.println("超市开门啦");
boolean open = true;
Scanner scanner = new Scanner(System.in);
while (open){
System.out.println("本店叫做"+littleSupermarket.superMarketName);
System.out.println("本店地址"+littleSupermarket.address);
System.out.println("共有停车位"+littleSupermarket.parkingCount+"个");
System.out.println("今天的营业额"+littleSupermarket.incomingSum);
System.out.println("共有商品"+littleSupermarket.merchandises.length+"种");
Customer customer = new Customer();
customer.name = "顾客编号"+((int)(Math.random()*1000));
customer.money = (1+Math.random())*1000;
customer.isDrivingCar = Math.random()>0.5;
if (customer.isDrivingCar){
if (littleSupermarket.parkingCount>0){
System.out.println("欢迎"+customer.name+"驾车来,本店安排了免费的停车位。车位编号"+littleSupermarket.parkingCount);
littleSupermarket.parkingCount--;
}else{
System.out.println("欢迎下次光临");
continue;
}
}else{
System.out.println("欢迎"+customer.name+"光临");
}
double totalCost=0;
while (true){
System.out.println("本店提供"+all.length+"种商品,欢迎购买");
int index =scanner.nextInt();//输入你选择的是哪种商品
if (index<0){
break;
}
if (index>=all.length){
System.out.println("本店没有这种商品请输入0-"+(all.length-1)+"之间的商品");
continue;
}
Merchandise m =all[index];
System.out.println("您选购的商品名称"+m.name+",单价是"+m.soldPrice+"您是购买多少个");
int numToBuy = scanner.nextInt();
if (numToBuy<=0){
System.out.println("不买看看也好");
continue;
}
if (numToBuy*m.purchasePrice+totalCost>customer.money){
System.out.println("您带的钱不够");
continue;
}
if (numToBuy>m.count){
System.out.println("库存没有那么多");
continue;
}
totalCost += numToBuy*m.soldPrice;//购买商品的花费
m.count -= numToBuy;
littleSupermarket.merchandiseSold[index] += numToBuy;
}
customer.money -=totalCost;
if (customer.isDrivingCar){
littleSupermarket.parkingCount++;
}
System.out.println("顾客"+customer.name+"总共消费"+totalCost);
littleSupermarket.incomingSum += totalCost;
System.out.println("是否还要营业");
open = scanner.nextBoolean();
}
System.out.println("关门了");
System.out.println("总营业额"+littleSupermarket.incomingSum);
for (int i=0;i<littleSupermarket.merchandiseSold.length;i++){
Merchandise m = all[i];
int numSold = littleSupermarket.merchandiseSold[i];
if (numSold>0){
double incomming = m.soldPrice*numSold;
double netIncomming = (m.soldPrice - m.purchasePrice)*numSold;
System.out.println(m.name+"出售了"+numSold+"个。销售额为"+incomming
+"净利润"+netIncomming);
}
}
}
}
2、Merchandise
package com.supermark;
public class Merchandise {
public String name;
public String id;
public int count;
public double soldPrice;//售价
public double purchasePrice;//进价
}
3、LittleSupermarket
package com.supermark;
public class LittleSupermarket {
public String superMarketName;
public String address;
public int parkingCount;
public double incomingSum;
public Merchandise[] merchandises;//商品数量
public int[] merchandiseSold;//与merchandises相对应
}
4、Customer
package com.person;
public class Customer {
public String name;
public double money;
public boolean isDrivingCar;
}
实验结果